В этой статье мы рассмотрим пошаговую настройку мониторинга сетевых устройств по протоколу ICMP в системе мониторинга Zabbix с помощью ping. Эта самая простая, но популярная задача безагентного мониторинга, когда вам нужно проверить доступность удаленного сервера, сайта или сетевого оборудования с сервера мониторинга. Zabbix может отправлять ICMP запросы до узла, и если ответ не получен, время ответа (response time) слишком большое или наблюдается большой % потери пакетов, вывести предупреждение в дашборде. Протокол ICMP в основном используется для проверки доступности сетевых узлов. Утилиты ping и traceroute/tracert также работают через ICMP.
Для начала нужно настроить файервол на узлах , которые будут мониториться (разрешить icmp ping запросы), а также убедиться, что на сервере Zabbix установлена и сконфигурирована утилита fping.
Открытие портов для ICMP ping в Windows Server и Linux
По умолчанию в Windows Server разрешен ICMP ping, но, если по каким-то причинам он был выключен, включить его можно через команду netsh или PowerShell. Запустите командную строку с правами администратора и введите:
netsh advfirewall firewall add rule name="ICMP Allow“ protocol=icmpv4:8,any dir=in action=allow
Или аналогичная команда в PowerShell (модуль NetSecurity):
Set-NetFirewallRule -Name FPS-ICMP-ERQ-In -Enabled True -Profile Any -Action Allow
Эти команды создадут в файерволе правило, которое разрешает входящие ICMP echo запросы.
В современных дистрибутивах Linux входящий ICMP также разрешен. Если по каким-то причинам он выключен, то добавьте эти правила в iptables. Выполните команды из-под root/sudo:
iptables -I INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -I OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
Таким образов вы добавите правила, разрешающие ICMP запросы в самое начало цепочки правил iptables.
Если вы используете firewalld для управления правилами фаейрвола, разрешить ответ на icmp ping можно так:
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p icmp -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
Установка fping, настройка путей в Zabbix
В Zabbix для ICMP проверок используется утилита fping. Во многих дистрибутивах Linux эта утилита предустановлена, поэтому для начала проверим её наличие в системе. Зайдите на ваш zabbix сервер и введите команду:
fping -v
Если такой команды нет, установите её с помощью пакетного менеджера:
- Для Ubuntu:
apt install fping
- Для CentOS нужно сначала подключить EPEL репозиторий, а потом выполнить установку:
yum install fping
По умолчанию утилита установится в /usr/bin/fping. В случае возникновения проблем с fping, убедитесь что утилита действительно лежит по пути /usr/bin/fping, и если она находится в другой директории, измените указанные ниже строки в zabbix_server.conf, указав корректный путь к fping.
FpingLocation=/usr/bin/fping Fping6Location=/usr/bin/fping6
Шаблон ICMP Ping в Zabbix и его компоненты
В Zabbix по умолчанию есть шаблон Template Module ICMP Ping (может называться иначе, в зависимости от версии Zabbix). Именно его мы будем использовать для мониторинга сетевых узлов через ICMP ping. Шаблон включает в себя 3 проверки:
- ICMP ping – доступность узла по ICMP;
- ICMP loss – процент потерянных пакетов;
- ICMP response time – время ответа ICMP ping, в миллисекундах;
Обратите внимание на колонку Key: icmpping, icmppngloss и icmppingsec, это встроенные в zabbix ключи. Они являются Simple checks, т.е. “простой проверкой”, в которой не участвует zabbix-agent.
Полный список Simple checks, для которых не нужно устанавливать агент zabbix на системы, которые нужно мониторить, можно посмотреть здесь https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/simple_checks
В шаблоне находятся 3 триггера, которые следят за вышеописанными ключами и их значениями.
Некоторые триггеры, например, “High ICMP ping response time” используют макросы шаблона. Значения этих макросов можно изменить во вкладке Macros.
Значения, при которых сработает триггер.
- Для ICMP Ping Loss процент потерь за последние 5 минут равняется 20.
- Для Response Time за последние 5 минут значение равняется 150 миллисекундам.
Создание узла в Zabbix, подключение ICMP Ping шаблона
В этой статье я буду настраивать мониторинг узла с Windows Server. Перейдите в Configuration -> Hosts -> Create Host.
Введите Host name, выберите группу и укажите IP адрес вашего узла в Agent interfaces.
Перейдите во вкладку Templates, нажмите Select и выберете Template Module ICMP Ping.
Нажмите Add в форме выбора шаблона и затем снова Add для завершения создания узла.
В колонке Templates отображаются все шаблоны, подключенные к узлу.
Теперь проверим работу мониторинга. Перейдите в Monitoring -> Latest data, нажмите на Select возле Hosts, и выберите узел, который вы только что создали.
В столбце Last Value отображаются последние данные, которые пришли с этого узла.
Также можно посмотреть на график по определенному значению, например, ICMP Response time. Нажмите ссылку Graph.
В случае возникновения проблем, вы сможете увидеть уведомления в дашборде Zabbix.
ICMP ping это самая простая и самая базовая проверка доступности для сетевых устройств. Если вы хотите получать больше данных о вашем устройстве, то вы можете настроить мониторинг устройств с помощью агентов Zabbix, по SNMP или другим протоколам.