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

07.05.2020

insci

CentOS, Linux, Ubuntu, Windows Server 2016

комментариев 7
В этой статье мы рассмотрим пошаговую настройку мониторинга сетевых устройств по протоколу 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. Запустите командную строку с правами администратора и введите:
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 сервер и введите команду:
Если такой команды нет, установите её с помощью пакетного менеджера:
- Для 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.

Заметка. Группы Zabbix нужны для сортировки узлов. Название группы не влияет на мониторинг.
Перейдите во вкладку 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 или другим протоколам.
Предыдущая статья Следующая статья
Как разобраться с простой проверкой в Zabbix с агентом и без?
Есть веб сервер, на котором стоит Debian, крутится несколько сайтов и установлен агент Zabbix, сам сервер стоит в дата центре.
На сервере Zabbix, который стоит в офисе подключил шаблон ICMP Ping и понаблюдал сутки, выходит картина не очень красивая, в среднем 0,72% потерянных.
Прописал как узел сети один из сайтов, что крутиться на этом веб сервере и подключил шаблон ICMP Ping за час 0% ICMP loss, а если смотреть за тот же час по графику для веб сервера с агентом, то 0,56%
Как это понимать?
- Вопрос задан более трёх лет назад
- 1401 просмотр
Комментировать
Решения вопроса 1
Сетевой инженер, системный администратор
Совершенно не удивлюсь, если просто глючит агент. У меня была точно такая же ситуация с серверами. По факту выяснилось, что никто ничего не заметил и всё отлично работало. «Ок» подумал я и просто забил. Средние потери примерно такие-же и были. Плюс бывает вполне нормальная ситуация, когда пакет просто потерялся по дороге (перестройка глобальных маршрутов и пакет попал на недействующий узел). Да много всего может быть. Доступность 99,28% — это хорошая доступность. Даже очень. Пресловутые 99.99% почти никто не может даже в теории обеспечить, т.к. оч.дорого. Очень-Очень дорого.
Например, берем 2-3 датацентра, покупаем ID для BGP сети, настраиваем кластерную ФС между этими датацентрами, настраиваем BGP в сетях 2-5 провайдеров для каждого из дата-центров. Все это обходится нам в несколько миллионов, если не десятков миллионов рублей, но зато доступность будет примерно 99,98%. Потому что может оборудование глюкануть или словить перегруз, а переключение между нодами кластера хоть и занимает милисекунды, но все равно велики шансы потери некоторых пакетов. А может опять же тупануть на этапе перестройки глобальных маршрутов, а может тупануть DNS сервер клиента и вовремя не отрезолвить адрес, у клиента не откроется сайт, а он будет винить вас. Вариантов — 100500 штук.
У вас всё совершенно нормально с доступностью. Не обращайте даже внимание на подобные потери. В крайнем случае, попробуйте отследить момент провала и зайти на сервер в этот момент. Если не заходит, а потом сразу заходит, значит скорее всего вопрос в маршрутизации, который вы никак не решите. Да и вряд-ли вообще кто-то решит. Если долго не заходит (секунд 20-30-60), значит скорее всего проблема с сервером и пусть разбираются хостеры. Ещё могут быть у них проблемы с провайдером и т.д.
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- PHP
- +3 ещё
Как правильно организовать хранение файлов?
- 1 подписчик
- 06 янв.
- 234 просмотра
Заметки админа
Столкнулся с интересной проблемой, до сути которой докопался как-то не сразу, хотя решение в итоге вышло простым. После настройки мониторинга резервных каналов связи на объектах Zabbix стал регулярно ругаться, что на этих элементах большие потери пакетов, хотя по факту их не было. Зато были задержки: по 900 и более мс. Попытавшись как-то потюнить сам Zabbix, начал копать глубже, в результате чего выяснилось, что простые проверки, реализованные в частности в дефолтном шаблоне системы Template ICMP Ping, опираются на fping с параметрами по-умолчанию, что описано в данной статье . То есть если ответ на ICMP запрос не получен в установленное время, пинг считается потерянным. В моем случае zabbix 3.0 и fping 3.8 значение таймаута по умолчанию составляет 500 мс, что явно меньше того, что требуется. Увеличить это можно в самих настройках шаблона, указав в элементе ICMP loss ключ icmppingloss[. 3000], где 3000 — искомый таймаут (тут каждому свой, я установил 3000 для компенсации роста зад
Поделиться
- Получить ссылку
- Электронная почта
- Другие приложения
Проверка сетевого доступа (ICMP ping)
ICMP ( Internet Control Message Protocol — протокол межсетевых управляющих сообщений) используется для проверки наличия TCP/IP-соединения с сетевым узлом и передачи сообщений об ошибках (например, ICMP-сообщение о превышении TTL).
В данном разделе приведена информация по настройке проверки сетевого доступа. Полная информация по настройке средств мониторинга приведена на странице Мониторинг серверов и сетей: интеграция с Zabbix (агент, SNMP, JMX, IPMI).

Содержание:
Для получения тревожного сообщения при обрыве связи с каким-либо узлом Zabbix, для этого узла необходимо добавить интерфейс агент, указать IP-адрес узла и добавить стандартный шаблон ICMP-ping. Триггерам шаблона ICMP-ping нужно задать метки (теги) NEYROSS и NEYROSSMETRIC. При этом установка и настройка самого Zabbix-агента не требуется, мониторинг состояния узла может проходить по другому протоколу (например, — SNMP).

Настройка шаблона в Zabbix

- Выберите Настройка(Configuration) >Шаблоны (Templates).
- Отсортируйте шаблоны по имени ICMP Ping.
- Откройте список триггеров шаблона ICMP Ping и задайте триггерам метки NEYROSS и NEYROSSMETRIC. Это можно сделать, например, при помощи процедуры массового обновления [Добавление меток к триггерам].
Настройка шаблона проводится один раз, далее для всех узлов просто задаётся этот шаблон.
Настройка узла в Zabbix
Добавление нового узла
- Выберите Настройка(Configuration) >Узлы сети (Hosts) . Нажмите на кнопку Создать узел сети (Create host), если узел отсутствует в списке узлов, или откройте параметры уже настроенного узла.
- Задайте произвольное Имя узла (Host name) и Видимое имя (Visible name).
- В поле Шаблоны (Templates) выберите шаблон ICMP ping.
- В поле Группы (Groups) выберите группу узлов NEYROSS. Узел может принадлежать нескольким группам узлов. Поэтому для работы с интерфейсом Zabbix вы можете использовать и другие группы узлов. Для работы только с Платформой НЕЙРОСС используйте одну группу.
- В поле Интерфейсы (Interfaces) нажмите Добавить (Add) и выберите Агент (Agent).
- Укажите IP-адрес узла. Задайте номер TCP/UDP порта. Значение по умолчанию: 10050.
- Оставьте флаг Активировано (Enabled), чтобы узел сети был активным, готовым к мониторингу. Если не отмечено, узел сети неактивен, его состояния не отслеживаются.
- Нажмите на кнопку Добавить (Add).
Добавление шаблона к существующему узлу
- Выберите Настройка(Configuration) >Узлы сети (Hosts) . О ткройте параметры уже настроенного узла.
- В поле Шаблоны (Templates) выберите шаблон ICMP ping.
- Если мониторинг узла осуществляется с помощью Zabbix-агента, дополнительных настроек не требуется. Если мониторинг осуществляется по другому интерфейсу, в поле Интерфейсы (Interfaces) нажмите Добавить (Add) и выберите Агент (Agent).
- Укажите IP-адрес узла. Задайте номер TCP/UDP порта. Значение по умолчанию: 10050.
- Оставьте флаг Активировано (Enabled), чтобы узел сети был активным, готовым к мониторингу. Если не отмечено, узел сети неактивен, его состояния не отслеживаются.
- Нажмите на кнопку Обновить (Update).