Пример мониторинга логов на 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 секунд.
Проверим тригер
На клиенте в командной строке пишем
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 (После 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 (Добавить->Выбрать прототип)
Добавить