Zabbix может отслеживать состояние узлов при помощи Zabbix-agent, SNMP, JMX и IPMI. Но что делать, если ничего из вышеперечисленного установить на интересующий нас узел нельзя, а отслеживать доступность узла нужно?
Для отслеживания доступности узла при помощи icmp нужно написать bash скрипт для проверки доступности узла при помощи команды ping, а затем добавить результат его работы в качестве параметра в Zabbix агент. Скрипт желательно добавлять в агент на тот же сервер где находится Zabbix.
Скрипт выглядит следующим образом:
#!/bin/bash
if [ -z "$1" ]; then
echo "Missing ip"
exit
fi
if ping -c 3 $1 &> /dev/null
then
echo "up"
else
echo "down"
fi
Положим данный скрипт в папку /etc/zabbix и дадим ему имя pingcheck.sh. Изменим его владельца на www-data и сделаем его исполняемым:
chown www-data:www-data pingcheck.sh
chmod +x pingcheck.sh
Далее отредактируем файл /etc/zabbix/zabbix_agentd.conf, добавя туда следующую строку:
UserParameter=dns-google.icmp,/etc/zabbix/pingcheck.sh 8.8.8.8
UserParametr - обозначения добавления пользовательского параметра
dns-google.icmp - Название нового параметра
/etc/zabbix/pingcheck.sh - путь к скрипту
8.8.8.8 - адрес отслеживаемого узла
Для каждого отслеживаемого нами узла необходимо будет добавлять аналогичную строку. Например, для отслеживания доступности DNS Яндекса нужно будет добавить следующее:
UserParameter=dns-yandex.icmp,/etc/zabbix/pingcheck.sh 77.88.8.88
После добавления всех нужных узлов необходимо перезапустить zabbix-agent:
sudo systemctl restart zabbix-agent
Далее необходимо зайти на веб интерфейс zabbix и создать новый шаблон. Для этого необходимо зайти в веб интерфейс zabbix, далее Настройка-Шаблоны-Создать шаблон. Наиболее целесообразно добавить шаблон в группу Zabbix-Servers.
После добавления шаблона необходимо добавить в него элемент данных.
Тип-Zabbix-agent; Ключ - то, что ранее было указано в строке после = и до запятой; Тип информации-текст.
Далее необходимо создать триггер и добавить туда выражение и выражение восстановления. Создание триггера выглядит следующим образом:
Создание выражения и выражение восстановления выглядит так:
После чего можно добавлять выведение элементов данных на панель: