Создание шаблонов, элементов данных и триггеров в ZABBIX

Пример мониторинга логов на Windows.

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

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

Поля:

Server=192.168.1.19

ServerActive=192.168.1.19

Hostname=win-serv2003

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

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

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

имя - SystemLogItem

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

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

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

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

- 7

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

Жмем Обновить.

Описание ключа: eventlog[имя,<регулярное выражение>,<важность>,<источник>,<eventid>,<макс. кол-во строк>,<режим>]

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

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

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

имя - ERROR SYSTEM LOG {HOST.NAME}

важность - средняя

выражение проблемы - {TemplateAtlant Windows Servsers:eventlog[System,,"error",,,,skip].regexp(^.*$,200)}<>0

Выражение восстановления {TemplateAtlant Windows Servsers:eventlog[System,,"error",,,,skip].nodata(210)}=1

Жмем Обновить.

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

Проверим тригер

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

eventcreate /t error /id 999 /l system /
so "1Zabbix test event" /d "Test ERROR event log by Zabbix"

 Пример мониторинга по 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 в гугле, вот несколько сайтов.

https://wiki.opennms.org/wiki/HP_Insight_Manager

http://oidref.com/1.3.6.1.4.1.232.3.2.5.1.1.6

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

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

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

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

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

Тип - SNMPv2 агент

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

SNMP OID - discovery[{#SNMPVALUE}, .1.3.6.1.4.1.232.3.2.5.1.1.5]

SNMP Community - public

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

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

Жмем добавить.

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

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

Тип - SNMPv2 агент

Ключ - cpqDaPhyDrvStatus.[{#SNMPINDEX}]

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

SNMP Community - public

Тип информации - Числовой (Целое положительное)

Тип данных - Десятичный

Интервал обновления - 60

Период хранения информации - 7

Группа элементов - SNMP HDD         (предварительно ее создать)

Жмем Добавить.

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

Имя - Статус диска на сервере {HOST.NAME} в отсеке {#SNMPVALUE} - FAILED

Выражение -{Server:cpqDaPhyDrvStatus.[{#SNMPINDEX}].last()}=4        (Добавить->Выбрать прототип)

Добавить