Retifff's Blog

Мой ИТ блог

Настройка счётчиков в NetXMS

Posted by Retifff на 21.10.2019

Наконец-то добрались до самого основного, ради чего и нужен мониторинг, собственно. Я приведу несколько примеров настройки счётчиков — Data Collection Item (DCI) в терминологии NetXMS.

Вот настроенные несколько счётчиков в шаблоне:

Попробуем самостоятельно создать некоторые из них.

Настройка счётчика с источником NetXMS Agent

Находим в консоли NetXMS какой-нибудь подопытный сервер, с уже установленным агентом (я возьму контроллер домена dc01), жмём правой кнопкой мыши по нему, в появившемся меню выбираем Data Collection Configuration. Открывается вкладка, совершенно пустая (так как мы еще ничего не создавали). Именно сюда мы будем добавлять счётчики. В правом верхнем верхнем углу вкладки есть кнопка «New parameter…» (или можно щелкнуть правой кнопкой мыши в любом пустом месте вкладки), нажимаем её. Появляется окно счётчика, тоже совершенно пустое:

Нам его предстоит заполнить. Чтобы выбрать параметр, нажимаем кнопку «Select…» и в появившемся окне ищем нужный нам счётчик. Чтобы облегчить эту задачу, там есть строка фильтра. Вводим там, например «cpu» и выбираем там счетчик «System.CPU.Usage»:

Получается так:

Можно изменить интервал опроса в поле «Polling Mode», по умолчанию там 60 секунд. Остальное пока оставим как есть. Дальше, в свойствах счётчика идем в Thresholds, нажимаем кнопку «Add…» и заполняем поля примерно так:

Здесь, задаем условие, при котором будет активироваться событие:

  • Function — какое значение берётся, последнее, усреднённое и т.п.
  • Samples — количество замеров, пусть будет 3, чтобы сгладить случайные всплески.
  • Operation — операция, больше, меньше, равно и т.п. У меня «больше», соответственно.
  • Value — значение, тот самый порог, больше или меньше и т.п. которого активируется событие.

Т.е., если процессор будет загружен более чем на 90%, то активируется событие, указанное в поле «Activation event». В поле Event нужно указать конкретные эвенты активации и деактивации.

В поле Repeat Event указывается, через какое время повторять событие, т.е. если оно у нас повторяется каждые 30 секунд, то повторять эвент все равно не чаще, чем раз в 10 минут, к примеру.

Жмем, ОК, готово. Теперь идем в Performance Tab. Этот шаг необязательный, но удобно его настраивать для тех счётчиков, где хочется видеть графики.

Ставим галку на «Show on performance tab» и пишем осмысленный текст в Title. Для CPU Usage можно задать шкалу от 0 до 100. Остальное можно оставить как есть. Всегда можно будет изменить, если захочется. Всё, счётчик готов:

Впрочем, я немного слукавил, потому что такой счётчик уже есть в готовых шаблонах NetXMS. Идем в Templates > Operating Systems. Жмем правой кнопкой мыши по шаблону Windows, в появившемся меню выбираем Data Collection Configuration и там видим предустановленный набор счётчиков, среди которых есть и CPU Usage:

Настройка счётчика с источником Windows Performance Counters

Если вы обратили внимание, во всех этих счётчиках в качестве источника используется NetXMS Agent. Но можно использовать и другой, родной для Windows и гораздо более продвинутый источник — Windows Performance Counters. Создадим счётчик с его использованием.

Опять ищем наш подопытный сервер, жмём правой кнопкой мыши по нему, в появившемся меню выбираем Data Collection Configuration. В открывшейся вкладке создаем новый параметр. В окне счетчика в поле Origin выбираем Windows Performance Counters, а затем нажимаем кнопку Select… и ищем счётчик Processor > % Processot Time > _Total:

Получается примерно так:

Всё остальное как в предыдущем примере.

Но, может так оказаться, что нужного вам счётчика нет ни в NetXMS Agent, ни в Windows Performance Counters. В это случае, в качестве источника можно создать свой счетчик и использовать свой скрипт для для наполнения его значениями. Этот вариант подробно описан у меня в статье Мониторинг срока действия сертификатов в Windows на NetXMS.

Настройка счётчика свободного места на диске

Еще предлагаю попробовать другой пример, поинтересней, проблема с внезапно заканчивающимся местом на дисках, думаю, всем знакома. Поэтому создадим счетчик LogicalDisk: Free Megabytes for C:

Здесь:

  • Origin — Windows Performance Counters.
  • Parameter — \LogicalDisk(C:)\Free Megabytes.
  • Data Type — Integer 64 bit.
  • Sample count for avorage value calculation — 3.
  • Polling interval — 300 сек (на мой взгляд чаще не нужно, но у кого как).
  • Retention Time — 30 дней (удобно видеть динамику изменения свободного места за месяц, можно и больше, если нужно).

Дальше нужно настроить порог активации эвента. Можно взять имеющиеся FS_NO_FREE_SPACE или FS_LOW_FREE_SPACE, но мы пойдем другим путем и создадим свои эвенты. Зачем? Например затем, чтобы не путать свои счётчики с имеющимися в NetXMS (мало ли где они пригодятся), ну и просто для удобства, можно в них настроить сообщение (Message) так, как нам нужно.

Создание шаблона события (Event Template)

Поэтому закрываем свойства счётчика и идем в меню Configuration > Event Configuration и в открывшейся вкладке создаем новый эвент, нажав на зеленый плюс в правом верхнем углу «New event template… (Ctrl + N)». В пустой шаблон пишем нашу информацию:

  • Event Name — LogicalDisk_Free_Space_Low_Megabytes
  • Message — Осталось мало свободного места на «%2» — %4%% ниже порога в %3 Mb
  • Severity — Warning

Естественно, вы можете называть их по своему, как вам удобно, я назвал так, как удобно мне. Обратите внимание на %2, %4 и т.п. Это переменные, туда подставляются разные значения в зависимости от счетчика, такие как имя параметра, значение параметра и т.п. Пример, как их использовать есть в описании (Description) встроенных эвентов, как на скриншоте выше.

Я рекомендую сразу создать аналогичный эвент, только для процентов:

Почему сразу, потому что номера (event code) присваиваются по порядку, просто удобней их искать будет. Ну и обязательно создать эвент для резолва события:

Где:

  • Event name — LogicalDisk_Free_Space_Normal
  • Message — Свободное место в норме
  • Severity — Normal

Шаблоны эвенты создали, теперь идем обратно в наш недонастроенный счётчик. В свойства > Tresholds и там добавляем новый порог:

И как раз тут мы в полях Activation Event и Deactivation Event мы подставляем свои только что созданные шаблоны эвентов. Samples я ставлю 3, чтобы не было ложных срабатываний, Value нужно подбирать самому, сколько минимально допустимо свободного места. У меня на скриншоте всего 1024 Mb, возможно для вас это будет маловато. Repeat event я ставлю 86400 секунд, чтобы не чаще раза в сутки создавался этот эвент и приходило оповещение, соответственно. На время отладки можно поставить поменьше, 600 секунд, например.

Создание шаблона оповещения (Action)

Счетчик создали. Теперь нужно настроить оповещения, чтобы на почту нам приходило письмо, что у нас что-то не в порядке.

В Configuration > Action Configuration создаем шаблон письма оповещения, типа такого:

где:

  • Type — Send E-Mail.
  • Recipient’s address — administrator@testcompany.ru — адреса получателей оповещения.
  • E-Mail subject — «Внимание! На %n %m. Статус: %S.» — тема письма.
  • Message text — «%N \n%n [%a] \nСобытие: %m \nВремя: %t \nСтатус: %S» — содержимое письма.

Этот шаблон для письма при уменьшении свободного места ниже порога. Для момента, когда свободное место вернется к нормальным значениям, создадим другой шаблон письма:

где:

  • Type — Send E-Mail.
  • Recipient’s address — administrator@testcompany.ru — адреса получателей оповещения.
  • E-Mail subject — «Решено. На %n %m. Статус: %S.» — тема письма.
  • Message text — «%N \n%n [%a] \nСобытие: %m \nВремя: %t \nСтатус: %S» — содержимое письма.

В полях E-Mail subject и Message text можно использовать макросы, как раз эти %n, %m и т.п. Туда подставляются значения от конкретного счётчика. Прочитать про них можно в документации NetXMS: Macros for Event Processing.

Создание правила в Event Processing Policy

Далее, для того, чтобы оповещения нам пришли именно тогда, когда значение счётчика превысит заданный порог, нужно в Event Processing Policy создать правило, по которому будет создаваться Alarm и отправляться письмо. Перед тем, как создавать своё, рекомендую изучить существующие (не обязательно все, а хотя бы несколько штук), понять логику, как они настраиваются. После этого создаем свое правило, нажав на зеленый плюсик в правом верхнем углу «Add new rule». Правда, после его нажатия создается лишь пустое правило в самом низу списку, нужно найти его и отредактировать.

Заполняем:

  • Condition > Source Objects — туда добавляем наши ноды, можно целиком контейнеры.
  • Condition > Events — добавляем наш эвент — LogicalDisk_Free_Space_Low_Megabytes.
  • Action > Alarm — Выбираем «Create new alarm» и заполняем согласно скриншота:

где в полях Message и Alarm Key можно использовать макросы: Macros for Event Processing.

  • Server Actions — добавляем наш «E-Mail Sent to Administrator — Alert».
  • Comments — название правила, у меня это «Free Space — Alert»

Получается такое правило для алерта:

Теперь создадим правило для автоматического резолва события. Оно, конечно, необязательно, можно резолвить и вручную. А некоторые события и лучше именно так делать. Но для свободного места вполне можно и автоматом делать. Чтобы создать правило для резолва события, легче всего скопировать только что созданное правило для алерта, вставить его и немного поправить следующие моменты:

  • Condition > Events — меняем эвент на » LogicalDisk_Free_Space_Normal».
  • Action > Alarm — меняем на «Resolve alarms». Обратите внимание, что там в поле Resolve all alarms with key должен остаться такой же ключ как и в предыдущем правиле — «Free_Space_Alert_%n_%i», иначе наше правило не будет резолвить его.
  • Server Actions — меняем на «E-Mail Sent to Administrator — Resolve».
  • Comments — меняем имя правила на «Free Space — Resolve».

Получается примерно так:

Сохраняем политику кнопкой «Save Policy» и всё, можно тестировать. Свободного места у меня на диске много 51.6 Гб , поэтому придется в счетчике поставить порог повыше, не 1024, а, 55296, к примеру. В результате, через несколько минут получим такой аларм:

А на почту придет такое письмо:

Вот и всё, готово. Сейчас у нас счётчики находится на одной ноде. Но можно их использовать на других, они копируются просто, правой кнопкой мыши по счётчику > «Copy to other node(s)…». И выбираем нужную ноду. Но, если один и тот же счётчик нужен на нескольких нодах, есть смысл создать свой шаблон, куда скопировать все нужные счетчики и прибиндить к нему нужные ноды. Вот пример:

Причем одну и ту же ноду можно прибиндить к нескольким шаблонам, в результате получится удобный набор счётчиков, которые можно менять централизованно, из одного места (шаблона), а применяться они будут на все серверы, которые прицеплены к этим шаблонам.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

 
%d такие блоггеры, как: