Zabbix: проверка доступности запросом ICMP Ping

Zabbix: проверка доступности запросом ICMP Ping

В этой статье мы рассмотрим пошаговую настройку мониторинга сетевых устройств по протоколу 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.

Совет. Если вы производите настройку на боевом сервере, то имейте в виду, что в iptables уже могут существовать подобные правила. Для настройки iptables обратитесь к статье https://winitpro.ru/index.php/2019/08/05/nastrojka-fajrvola-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

Если такой команды нет, установите её с помощью пакетного менеджера:

По умолчанию утилита установится в /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, в миллисекундах;

шаблон Template Module ICMP Ping в zabbix

Обратите внимание на колонку 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 триггера, которые следят за вышеописанными ключами и их значениями.

триггеры icmp шаблона в zabbix

Некоторые триггеры, например, “High ICMP ping response time” используют макросы шаблона. Значения этих макросов можно изменить во вкладке Macros.

Значения, при которых сработает триггер.

  • Для ICMP Ping Loss процент потерь за последние 5 минут равняется 20.
  • Для Response Time за последние 5 минут значение равняется 150 миллисекундам.

значения триггеров icmp

Создание узла в Zabbix, подключение ICMP Ping шаблона

В этой статье я буду настраивать мониторинг узла с Windows Server. Перейдите в Configuration -> Hosts -> Create Host.

добавить узел в zabbix
Введите Host name, выберите группу и укажите IP адрес вашего узла в Agent interfaces.

параметры нового узла zabbix

Заметка. Группы Zabbix нужны для сортировки узлов. Название группы не влияет на мониторинг.

Перейдите во вкладку Templates, нажмите Select и выберете Template Module ICMP Ping.

привязка icmp ping шаблона к узлу zabbix

Нажмите Add в форме выбора шаблона и затем снова Add для завершения создания узла.
remplate module icmp ping

В колонке Templates отображаются все шаблоны, подключенные к узлу.

список подключенных к узлу zabbix шаблонов

Теперь проверим работу мониторинга. Перейдите в Monitoring -> Latest data, нажмите на Select возле Hosts, и выберите узел, который вы только что создали.

выбор узла в zabbix

В столбце Last Value отображаются последние данные, которые пришли с этого узла.

последние значения icmp ping проверок в zabbix

Также можно посмотреть на график по определенному значению, например, ICMP Response time. Нажмите ссылку Graph.

график icmp доступности узла в zabbix

В случае возникновения проблем, вы сможете увидеть уведомления в дашборде Zabbix.

алерт icmp доступности в zabbix dashboard

ICMP ping это самая простая и самая базовая проверка доступности для сетевых устройств. Если вы хотите получать больше данных о вашем устройстве, то вы можете настроить мониторинг устройств с помощью агентов Zabbix, по SNMP или другим протоколам.

Linux
Zabbix: проверка доступности запросом ICMP Ping