Настройка CYMON

Всем привет!

Вчера (21.05.2020) подключался к вебинару CYONE Domino Mониторинг, где рассказывал о своем опыте работы с этим продуктом. В чате от участников вебинара поступил запрос на мои настройки статус панели сервера и я пообещал выложить это в блог. В общем, эта статья посвящена этим настройкам :)

Возможности мониторинга достаточно широкие и можно часами копаться в настройках ZABBIX'a. Я не претендую, что все сделал правильно, поэтому если вы решите, что можно лучше, то смело пишите в комментариях - сделаем мир лучше вместе!

В нашей инфраструктуре сейчас достаточно большое количество серверов, но грубо их можно разделить на следующие типы:

  • Сервер приложений
  • Сервер почтовый
  • Сервер шлюз
  • Сервер traveler
У нас сейчас нет доступа через web, но как только мы введем в эксплуатацию FByte.Facade (модуль, позволяющий быстро вебифицировать приложения и входящий в состав FByte.Platform - фреймворка для быстрой разработки сложных приложений), то появится новый тип - Сервер web-доступа.

Я это к тому, что у нас контрольные панели проверки для серверов приложений, почты и шлюзов не отличаются. Вот в панели для сервера traveler есть дополнительные метрики, связанные с JVM, но их сегодня опустим.

Настройки сервера

Название параметра Описание Warning Critical
NRPC service is running Тут все просто - жив или уже мертв. Метрика возвращает 1, если все ок, и DOWN - если капут. DOWN
Server.AvailabilityIndex Синтетический параметр, который нужно подстраивать под мощности вашего железа, но в тоге он позволяет увидеть момент, когда сервер перестает отвечать на запросы пользователей. 50 30
System.PctCombinedCpuUtil Параметр отображает среднюю загрузку CPU сервера. 60 85
Platform.LogicalDisk.1.AvgQueLen.Avg
Platform.LogicalDisk.2.AvgQueLen.Avg
Platform.LogicalDisk.3.AvgQueLen.Avg
Platform.LogicalDisk.4.AvgQueLen.Avg
Platform.LogicalDisk.5.AvgQueLen.Avg
Platform.LogicalDisk.6.AvgQueLen.Avg
Очередь к дискам сервера. В этом примере их 6 штук 0,6 0,8
DAOS.Engine.Catalog.Digit Статус DAOS. В последней версии мониторинга он умеет сам запускать tell daos resync, но я пока не убрал эту метрику - на всякий случай 1 0
AdminP.Pending.Approval
AdminP.Name.Move.Requests
Количество запросов в admin4.nsf, которые требуют внимания со стороны администратора. 1 10
Database.Database.BufferPool.PercentReadsInBuffer Процент прочтения записей из буфера 90 80
Database.Dbcache.Effectiveness Эффективность работы кэша 90 75
Database.NAMELookupCacheHitRate Скорость выборки значений из names.nsf в процентах 80 90
Mail.Waiting Количество писем в mail.box сервера, ожидающие отправки 10 20
Mail.Hold Количество писем в mail.box, которые сервер ПОКА не смог доставить 5 10
Mail.Dead Количество писем в mail.box, которые сервер не смог доставить 1 5
NAB.SaveConflict.Count Количество конфликтных документов в names.nsf 1 5
NAB.Users.Expired Количество учетных записей, у которых истек срок действия сертификата 1 5
NAB.Users.OLDHTTPPassword Количество учетных записей, у которых HTTP пароль старого формата, неустойчивого ко взлому 1 5
NAB.Users.IDAttached Количество учетных записей, у которых ID файл прикреплен к документу 1 10
NAB.Servers.IDAttached Количество серверных документов, у которых ID файл прикреплен к документу 1 10
Replica.Cluster.SecondsOnQueue Длина очереди в кластерной репликации 3 10
Agent.Daily.AccessDenials Количество неудачных, из-за нехватки прав, попыток на запуск агентов 1 1
Agent.Daily.AccessDenials Количество запусков агентов, завершившихся ошибкой 1 1
Update.DeferredList
Update.PendingList
Длина очереди на обновление видов у индексера 20 50

Тем, кому лень вбивать этот набор метрик самостоятельно - можете скачать этот файл и импортировать его в grafana как дашборд. Там скопируйте панельку и можете поменять в настройках группу и хост. операцию повторять, пока не закончатся сервера или лицензии :)

Всем удачи! Пишите, если возникнут вопросы :)

Комментарии

  1. Я был участником вебинара и меня сильно заинтересовала ваша реплика, по поводу изменения параметра размера кэша на каждую БД. По умолчанию он 300 Kb, я так понимаю не имеет значения большая БД или нет. В нашей инфраструктуре есть БД по 500к записей. Могу только предполагать хватает ли кэша 300Kb для таких БД, поскольку точно не знаю, а что именно хранится в кэше БД(Таблица UNID, Deletion Stubs, элементы дизайна).
    И еще вопрос по поводу параметров для Cymon, я например не вижу здесь Server.Trans.PerMinute - вкусовщина конечно, но по-моему чрезвычайно важный показатель.

    ОтветитьУдалить
  2. Работа с кэшем - это магия, которую я пока не понял до конца, честно говоря. И посмотреть на этот кэш возможности я не нашел - максимум, до чего я пока докопался, так это при работающем domino запускать из консоли nsd.exe, а затем в папке IBM_TECHNICAL_SUPPORTS открыть в блокноте файлик nsd...bla-bla-bla и по фразе NSF DB Cache найти список баз, которые попали в кэш.

    Как следует из этой статьи (https://support.hcltechsw.com/csm?id=kb_article&sys_id=0ed7a8ac1b6df30083cb86e9cd4bcb84)
    у базы 7 статусов. Надо стремится к тому, чтобы у самых нагруженных были 6.
    И, не надо стремиться, чтобы в кэш попало максимальное количество баз - важно, чтобы туда попали самые нагруженные. При этом, с течением времени Домино сам удалит не востребованные файлы и оставит самые востребованные.

    Я игрался с параметрами NSF_Buffer_Pool_Size и NSF_DbCache_Maxentries, а потом давал команду Dbcache Flush, чтобы пересобрать кэш и конце концов, я пришел к более или менее оптимальным значениям эффективности, но у меня все равно чувство, что я в казино бросал кости, а не решал инженерную задачу :)

    ОтветитьУдалить
  3. Насчет количества транзакций - это, безусловно, важная метрика. И я ее отслеживаю на отдельном графике. В предложенном варианте идут метрики, которые должны сигнализировать о проблемах на сервере. А большое количество транзакций - это причина, но не следствие - вот большая очередь к диску, нехватка ОЗУ или ЦПУ, падение индекса доступности и т.п. есть основание зажечь фонарь на экране. И увидем его я начну искать причину.

    ОтветитьУдалить
  4. Рамазан, а разве dbcache show не показывает список БД которые в кэше. Я например с удивлением обнаружил там вынесенные на отдельный диск индексы вьюх. Т.е. получается для БД, в которых я вынес вьюхи у меня двойной кэш)). Но с другой стороны dbcache show показывает, что у меня в кэше вообще все БД (не важно используются они или нет). Возможно это особенности нашей структуры. Баз немного ~600, но они очень разновесные. От 64 ГБ монстров с 500k документов, до почти пустых с парой записей.

    >>Я игрался с параметрами NSF_Buffer_Pool_Size и NSF_DbCache_Maxentries.
    А я так понял, что это не приведет к увеличению кэша под каждую БД, Domino умножит NSF_DbCache_Maxentries на 300K и будет использовать такой Buffer_Pool. Спрошу-ка я у HCL пожалуй.

    ОтветитьУдалить
    Ответы
    1. Показывает. Но в nsd чуть более подробная информация.

      Удалить
    2. Если чего полезного раскопаете - пишите :)

      Удалить

Отправка комментария