Как сделать шаблон zabbix

Добавил пользователь Алексей Ф.
Обновлено: 19.09.2024

Условие таково: есть сервер windows 2003 R2, нужно мониторить системный лог на появление ошибок.

Для начала нужно проверить файл настройки клиента, C:\Program Files\Zabbix Agent\zabbix_agentd.conf

Где: Server - ip сервера zabbix, ServerActive - ip сервера zabbix (используется для активных проверок), Hostname - имя машины клиента, оно должно совпадать с именем в поле "DNS имя" настроек узала сети.

Идем в web морду zabbixa

Настройки->Узлы сети->win-serv2003->Элементы данных->Добавить Элемент данных->

тип - zabbix agent (активный)

ключ - eventlog[System,,"error". skip]

тип информации - Журнал (лог)

Интервал обновления (в сек) - 60

Период хранения истории (в днях) - 7

Группы элементов данных - logs (группа должна быть уже создана)

Описание ключа: eventlog[имя, , , , , , ]

имя - имя журнала событий.
регулярное выражение - регулярное выражение описывающее требуемый шаблон
важность - регулярное выражение описывающее важность
Параметр может принимать следующие значения: “Information”, “Warning”, “Error”, “Failure Audit”, “Success Audit”
источник - идентификатор источника
eventid - регулярное выражение описывающее идентификатор(ы) событий
макс. кол-во строк - максимальное количество новых строк в секунду, которое агент будет отправлять Zabbix серверу или прокси. Этот параметр заменяет значение 'MaxLinesPerSecond' в zabbix_agentd.win.conf
режим - возможные значения: all (по умолчанию), skip (пропускать обработку старых данных)

Переходим во вкладку триггеры.

Жмем Создать триггер.

имя - ERROR SYSTEM LOG

Пояснение: TemplateAtlant Windows Servsers - имя шаблона которому принадлежит триггер, .regexp(^.*$,200) - условие найти любую строку за последние 200 секунд, .nodata(210) - условие если нет данных за последние 210 секунд.

На клиенте в командной строке пишем

Пример мониторинга по SNMP

Добавим в узел интерфейс SNMP

Настройка -> Узлы сети -> Имя Узла -> Интерфейсы SNMP -> Добавить -> Заполняем ip, dns имя, порт.

Создаем шаблон, заходим в него.

Элементы данных -> Добавить элемент данных

имя - TempheratureCPU2; Тип - SNMPv2 агент; ключ - любое понятное описание; SNMP OID - 1.3.6.1.4.1.232.6.2.6.8.1.4.0.2; SNMP comunity - public; заполняем все остальные поля

Чтобы найти правильные OID пользуемся гуглом. Проверяем, используя snmpwalk на линуксе.

snmpwalk -v2c -c rdon 192.168.21.27 1.3.6.1.4.1.232 > /etc/snp.txt

snmpget -v2c -c rdon 192.168.21.27 1.3.6.1.4.1.232.6.2.6.8.1.4.0.2

так мы получаем значения, а описания ищем вбивая сам OID в гугле, вот несколько сайтов.

Создадим правило автообнаружения.

Допустим у нас есть сервер, в нем стоит RAID контроллер с кучей HDD. Чтобы не создавать кучу однотипных элементов данных, триггеров, графиков для каждого из жеских дисков, мы напишим свое правило обнаружения, которое и будет делать все это за нас.

И так для чистоты эксперемента я создал отдельный шаблон test snmp , и узел сети Server.

Заходим в наш шаблон и жмем Обнаружения->Создать правило обнаружения->

Имя - Discover HDD SNMP (придумываем сами)

Тип - SNMPv2 агент

Ключ - cpqDaPhyDrvBay (придумываем сами)

SNMP OID - discovery[, .1.3.6.1.4.1.232.3.2.5.1.1.5]

SNMP Community - public

Интервал обновления - 43200 (12 часов, если надо проверить незамедлительно на время ставим 10 сек)

Период сохранения потерянных ресурсов - 7 (После 7 дней удалиться диск, который умер и был извлечен)

Заходим в Прототипы элементов данных-> Создать Прототип элементов данных->

Имя - Статус физического диска

Тип - SNMPv2 агент

SNMP OID - 1.3.6.1.4.1.232.3.2.5.1.1.6. (Обратить вниамние на отличие в конце - 6, предидущие OID выводил порядковай номер, а этот значение статуса диска)

Как создать универсальный Zabbix шаблон для мониторинга Linux процесса, указанного по имени.

Идем в Configuration -> Templates -> Create template и добавляем имя, группу и описание шаблона.

Create new Zabbix template

Мы хотим мониторить 3 параметра:

  • количество процессов, с уведомлением о том, что процессов стало меньше (упали)
  • использование памяти, с уведомлением о превышении
  • использование процессора, с уведомлением о превышении

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

Create zabbix macros

В этом примере мы создали 6 макросов.

Тут вы можете увидеть максимально использование cpu 70%, использование памяти 2G, минимально 1 запущенный процесс, а так же имя процесса для примера: apache2. Так же мы должны задать нормальные значения наших параметров для построения гистерезиса в целях защиты от ложных срабатываний (описано ниже). По этому мы так же указываем как 10% и как 1G.

Теперь мы должны добавить элементы входных данных (items). Переходим в меню Items нашего шаблона и кликаем кнопку: Create item. Затем создаем 3 элемента:

  • количество процессов
  • использование cpu
  • использование памяти

Zabbix create item

Мы можем использовать как макрос для задания конкретного имени процесса позже внутри конечной конфигурации хоста. Итак, добавляем 3 элемента с 3 ключами:

Zabbix items

Заметим, что параметры могут иметь различные типы данных. Так к примеру proc.num, proc.mem имеет тип данных: Numeric (int), а proc.cpu.utilNumeric (float). Вы можете удостовериться в правильности указания типа данных в меню Key -> Select или официальной документации Zabbix.

Zabbix float item

Пришло время создать тригеры. Переходим в закладку Triggers нашего шаблона. Вы можете использовать встроенный конструктор выражений, нажав Problem expression -> Add, затем выбрав item и function. К примеру last (most recent) T value. Но это только одно последнее значение. Оно будет меняться каждый раз, что вызовет нестабильность в определении статуса. Чтобы определить жесткое (установившееся) значение статуса, это значение должно повториться несколько раз подряд. Для такого подсчета лучше использовать функцию count. Болле подробную информацию о функциях вы можете получить в официальной документации Zabbix.

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

Но что делать с возвратом в нормальное состояние? Если мы просто оставим так как есть, мы рискуем получить что-то на подобие этого:

Zabbix trigger flapping

Каждые 5-10 минут статус меняет значение, колеблясь то выше, то ниже указанного порога. Он получает 3 подряд превышающих значения и триггер срабатывает, после чего он получает 3 нормальных значения и помечает проблему как RESOLVED (решена)! Что же делать? Нам поможет гистерезис с указанием не только максимального, но и нормального значения. Триггер будет в состоянии PROBLEM (проблема) до тех пор, пока значение нашего элемента не опустится до $.

Итак, нажимаем OK event generation -> Recovery expression и добавляем выражение:

Zabbix create trigger

Подобным образом добавляем остальные тригеры (для использования процессора и количества процессов):

Теперь мы можем добавить наш шаблон к хосту. Идем в Configuration -> Hosts -> ваш сервер -> Templates. И добавляем только что созданный шаблон к серверу. Далее мы должны переопределись макросы.

Для примера на нашем сервере необходимо мониторить процесс node (node.js). Давайте посмотрим один из моих графиков данного процесса:

Node.js memory usage

Zabbix host macros

Итак, мой триггер перейдет в состоянии PROBLEM только когда значение потребляемой памяти будет больше чем 4,5Gb 3 раза подряд. А вернется он в нормальное состояние только тогда, когда потребление снизится ниже 4Г 3 раза подряд.

Готово! Позравляю! Теперь можно проверить последние данные в разделе Monitoring -> Latest data.

Шаблоны Zabbix для устройств NetPing

«. Шаблоном является набор объектов, которые могут быть применены к нескольким узлам сети.

Объектами могут быть:

Так как многие узлы сети в реальной жизни идентичны или более менее похожи, отсюда вытекает, что наборы объектов (элементы данных, триггеры, графики,…), созданные вами для одного узла сети, могут быть полезны для многих узлов. Конечно, вы можете скопировать их в каждый новый узел сети, но это потребовало бы много ручной работы. Вместо этого, используя шаблоны, вы можете скопировать эти объекты в один шаблон и затем применить его для любого количества требуемых узлов сети.

Когда шаблон присоединён к узлу сети, все объекты (элементы данных, триггеры, графики,…) из шаблона добавляются к этому узлу сети. Шаблоны соединяются непосредственно с каждым узлом (не к группе узлов сети).

Шаблоны обычно используются для группировки объектов конкретных сервисов или приложений (таких как Apache, MySQL, PostgreSQL, Postfix…) и затем применяются к узлам сети на которых эти сервисы запущены.

Ещё одно преимущество в использовании шаблонов: когда что-либо потребуется изменить на всех узлах сети, изменение чего-либо на уровне шаблона распространяется на все присоединенные к этому шаблону узлы сети.

В данной статье будет рассказано о настройке мониторинга устройств NetPing в системе Zabbix 2.2 при помощи готовых шаблонов.

Требования

Для реализации данного решения потребуется:

  • любое устройство NetPing (UniPing server solution v3/SMS, UniPing server solution v3, UniPing v3, NetPing SMS, NetPing IO v2, NetPing 8/PWR-220 v3/SMS, NetPing 4/PWR-220 v3/SMS, NetPing 2/PWR-220 v2/SMS, NetPing 2/PWR-220 v3/ETH);
  • система мониторинга Zabbix (в статье используется версия Zabbix 2.2, официальная документация);
  • готовые шаблоны для устройств NetPing

Настройка шаблонов Zabbix

Подробный процесс создания шаблонов в системе мониторинга Zabbix 2.2 описан в официальной документации:

Готовые шаблоны Zabbix для устройств NetPing

Автоматическое обнаружение необходимых параметров:

  • датчиков температуры;
  • датчиков влажности;
  • IO линий;
  • реле;
  • датчика дыма (токового датчика);
  • GSM модема

Автоматическое создание графиков:

  • датчиков температуры;
  • датчиков влажности;
  • IO линий;
  • реле;
  • датчика дыма (токового датчика)

Автоматическое создание триггеров на изменения статусов:

  • датчиков температуры;
  • датчиков влажности;
  • датчика дыма (токового датчика);
  • GSM модема

Автоматическое обнаружение необходимых параметров:

  • датчиков температуры;
  • датчиков влажности;
  • IO линий;
  • реле;
  • датчика дыма (токового датчика)

Автоматическое создание графиков:

  • датчиков температуры;
  • датчиков влажности;
  • IO линий;
  • реле;
  • датчика дыма (токового датчика)

Автоматическое создание триггеров на изменения статусов:

  • датчиков температуры;
  • датчиков влажности;
  • датчика дыма (токового датчика)

Автоматическое обнаружение необходимых параметров:

  • датчиков температуры;
  • датчика влажности;
  • IO линий;
  • реле;
  • датчика дыма (токового датчика)

Автоматическое создание графиков:

  • датчиков температуры;
  • датчика влажности;
  • IO линий;
  • реле;
  • датчика дыма (токового датчика)

Автоматическое создание триггеров на изменения статусов:

  • датчиков температуры;
  • датчика влажности;
  • датчика дыма (токового датчика)

Автоматическое обнаружение необходимых параметров:

Автоматическое создание триггеров на изменения статусов:

Автоматическое обнаружение необходимых параметров:

  • IO линий (логический уровень, счетчик входных импульсов)

Автоматическое создание графиков:

  • IO линий (логический уровень, счетчик входных импульсов)

Автоматическое обнаружение необходимых параметров:

  • датчиков температуры;
  • датчика влажности;
  • IO линий;
  • реле;
  • GSM модема

Автоматическое создание графиков:

  • датчиков температуры;
  • датчика влажности;
  • IO линий;
  • реле

Автоматическое создание триггеров на изменения статусов:

Автоматическое обнаружение необходимых параметров:

  • датчиков температуры;
  • датчиков влажности;
  • реле;
  • GSM модема;
  • источника питания

Автоматическое создание графиков:

  • датчиков температуры;
  • датчиков влажности;
  • реле;
  • источника питания

Автоматическое создание триггеров на изменения статусов:

Автоматическое обнаружение необходимых параметров:

  • датчиков температуры;
  • датчика влажности;
  • IO линий;
  • реле;
  • GSM модема;
  • источника питания

Автоматическое создание графиков:

  • датчиков температуры;
  • датчика влажности;
  • IO линий;
  • реле;
  • источника питания

Автоматическое создание триггеров на изменения статусов:

Автоматическое обнаружение необходимых параметров:

  • датчиков температуры;
  • датчика влажности;
  • IO линий;
  • реле

Автоматическое создание графиков:

  • датчиков температуры;
  • датчика влажности;
  • IO линий;
  • реле

Автоматическое создание триггеров на изменения статусов:

Импорт и присоединение готового шаблона NetPing в Zabbix

Перед импортированием шалобнов!

Преобразование значений

И настроить преобразование числовых значений по приведённой ниже иллюстрации:

Либо скачать готовый файл Zabbix_3.0_Value_mapping_NetPing_devices.xml (для Zabbix 3.x) и импортировать его через соответствующую настройку в web-интерфейсе Zabbix.

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

Присоединение преобразования значений в элементе данных Zabbix

Импорт шаблона в Zabbix

Настройка импорта шаблона в Zabbix

Список шаблонов в Zabbix

Узлы сети в Zabbix

Добавление устройства NetPing в Zabbix

Присоединение шаблона к узлу сети в Zabbix

Добавление макроса в узле сети Zabbix

Результат

В результате описанных настроек можно добавить любое устройство NetPing в систему мониторинга Zabbix на базе шаблонов, которые автоматически создают элементы данных, триггеры, графики и имеют правила обнаружения для всех датчиков, IO линий и реле.

Недавно мне понадобилось мониторить некоторые службы и порты на ОС Windows Server 2012 R2 .

Давайте рассмотрим пример как создать шаблон для мониторинга DNS сервиса на Windows.

Первым делом убедитесь что на ОС Windows установлен и активен Zabbix агент. Без него данный способ работать не будет.

В узлах zabbix, значок агента должен быть зеленым.


Перейдем в раздел Настройка — Шаблоны



Далее вводим название шаблона и выбираем группу. Нажимаем обновить.


Переходим в шаблоны и открываем созданный ранее шаблон.

Создаем новую группу с именем Active Directory DNS.


Теперь создадим элемент, который будет мониторить службу DNS (системное название службы — DNS)


В данном случае вводится параметр — service_state[DNS] , где DNS системное название службы.

Также выбирается ранее созданная группа элементов данных.

Теперь создадим элемент, который будет проверять DNS порты.

Параметры должны быть такими:


В данном случае за параметры мониторинга отвечает ключ — net.tcp.service[dns] , где dns тип сервиса.

Добавляем данный элемент и переходим во вкладку триггеры.


Создаем новый триггер для элемента отвечающего за работу службы dns.


service_state[DNS] — название проверяемой службы.

Также укажите важность данного триггера.

Теперь создадим триггер для мониторинга доступности порта dns.

Параметры будут такими:


В данном случае в имени триггера указывается переменная —

Template_Active_Directory_DNS — название созданного шаблона

net.tcp.service[dns] — указывается название элемента данных и проверяемый сервис

На этом создание шаблона завершено, осталось только добавить данный шаблон к узлу сети zabbix.

Читайте также: