Zabbix icmpping не работает

Заметки админа

Поиск по этому блогу

Проблема в Zabbix: Ping loss is too high при больших задержках

Столкнулся с интересной проблемой, до сути которой докопался как-то не сразу, хотя решение в итоге вышло простым. После настройки мониторинга резервных каналов связи на объектах Zabbix стал регулярно ругаться, что на этих элементах большие потери пакетов, хотя по факту их не было. Зато были задержки: по 900 и более мс.

Попытавшись как-то потюнить сам Zabbix, начал копать глубже, в результате чего выяснилось, что простые проверки, реализованные в частности в дефолтном шаблоне системы Template ICMP Ping, опираются на fping с параметрами по-умолчанию, что описано в данной статье. То есть если ответ на ICMP запрос не получен в установленное время, пинг считается потерянным. В моем случае zabbix 3.0 и fping 3.8 значение таймаута по умолчанию составляет 500 мс, что явно меньше того, что требуется. Увеличить это можно в самих настройках шаблона, указав в элементе ICMP loss ключ icmppingloss[. 3000], где 3000 — искомый таймаут (тут каждому свой, я установил 3000 для компенсации роста задержек при нагрузке на канал).

Правда, в моем случае zabbix ругался не на 100% потерю пакетов, а на 33%, т.е. 1 пакета из 3-х. И здесь все логично. С параметрами по-умолчанию zabbix отправляет 3 пакета, и таймаут действителен только для последнего. По окончании таймаута утилита fping завершает работу, возвращая результат. Соответственно, терялся в моем случае только последний пакет.

Диагностировать данную проблему можно собственно утилитой fping:
fping -C 3 -p 1000 -t 2000 192.168.1.1

Используемые в zabbix параметры и их значения по-умолчанию приведены по ссылке выше. Надеюсь, данная статья вам помогла.

Источник

Проблемы с простыми проверками на zabbix 3.0

Доброго времени суток!

Возникли проблемы с настройкой простой проверки на zabbix 3.0 Я прочитал инструкцию, по созданию и запуску проверки, но видимо что-то не уловил. Как я действовал: 1)Создал шаблон «Ping nodes» 2)В этом шаблоне создал группу элементов данных «ping data», а в ней создал элемент данных «ping host» и вписал туда настройки — имя пользователя, пароль для сервера zabbix, интервал проверки, срок хранения истории и т.п. 3)Далее я создал тригер, который выдает предупреждение, если простая проверка icmpping вернула 0 4)Применил данный шаблон к группе из 4 узлов узлов и перезапустил сервис zabbix

НО данные о проверках не поступают.

Подскажите, что я упустил? Заранее благодарен.

Зачем имя пользователя и пароль от сервера?

Для пинга достаточно Тип — Простая проверка и Ключ — icmppingsec

Да, первые данные от хоста придут через период времени, равный периоду проверки.

Думал, что логин пароль от сервера нужны, чтобы пинги посылать.

Поменял ключ проверки на icmppingsec

А вот в выражении для триггера:

«Template ICMP Ping» — это название шаблона или что?

Да, это название шаблона (в данном случае стандартного вроде бы)

Я еще раз сейчас посмотрел — icmppingsec это время ответа узла (в секундах), icmpping — это доступность (1 или 0). Можно поставить триггеры и на то, и на другое.

Там кстати вроде как это все реализовано уже в стандартном шаблоне Template ICMP Ping.

Вот во всех инструкциях написано что этот шаблон уже есть готовый — а в моем списке шаблонов его почему то нет(((

а вот после двоеточия — это название элемента данных? А ‘max’ — это встроенная функция какая-то?

Ага, в общем случае это так.

Для обработки ICMP пинг Zabbix использует внешнюю утилиту fping.

Эта утилита не является частью дистрибутива Zabbix и должна быть установлена дополнительно. Если утилиты нет, у нее выставлены неверные разрешения и её размещение не совпадает с размещением заданным в файле конфигурации Zabbix сервера (параметры ‘FpingLocation’), ICMP пинг (icmpping, icmppingloss, icmppingsec) не будет обрабатываться.

все, разобрался с max, у меня выражение получилось:

Читайте также:  Как починить машину жигули

, , , ].max(120)>=0 через конструктор сделал. Тут получается он должен сработать, если за 120 секунд максимальное значение элемента данных будет 0.

Так, проверил путь — в конфиге он указан как: /usr/bin/fping — это путь к самой утилите или к папке с утилитой? потому что в системе сама утилита лежит по адресу /usr/bin/fping/fping

также проверил разрешения для этой утилиты — на всякий случай выполнил команды из документации.

Там должны быть параметры, передаваемые проверке, в скобках — необязательные. Их можно убрать вместе с квадратными скобками.

А сервис сам поймет, что надо подставить ip адрес проверяемого узла?

Это нигде указывать не нужно?

Будет брать IP прикрепленных узлов

а есть ли где нибудь лог проведения проверок? вроде все сделал — а данных все равно нет.

а есть ли где нибудь лог проведения проверок?

Мониторинг > Последние данные > Фильтр: Имя = ping > График

нет, график просто говорит мне, что «нет данных». Но вот почему нет данных можно где то увидеть?

У меня в списке стандартных шаблонов есть шаблоны для http и ssh сервисов — я присоединил эти шаблоны к узлам, на которых точно запущены эти http и ssh — И СНОВА нет данных.

Источник

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.

Если вы используете 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.

Шаблон 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 или другим протоколам.

Источник

Zabbix Documentation 5.4

Table of Contents

5 Простые проверки

Обзор

Простые проверки в основном используются для удаленных безагентных проверок сервисов.

Обратите внимание, что для простых проверок Zabbix агент не требуется. За обработку (созданием внешних подключений и т.д.) простых проверок отвечает Zabbix сервер/прокси.

Примеры использования простых проверок:

Поддерживаемые простые проверки

Список поддерживаемых простых проверок:

Ключ
▲ Описание Возвращаемое значение Параметры Комментарии
icmpping[ , , , , ]
Доступность хоста через пинг по ICMP. 0 — ошибка при пинге по ICMP
1 — успешный пинг по ICMP
цель — IP хоста или DNS имя
пакеты — количество пакетов
интервал — время между успешными пакетами в миллисекундах
размер — размер пакета в байтах
время ожидания — время ожидания в миллисекундах
Пример:
⇒ icmpping[,4] → если по крайней мере один пакет из четырех вернется, элемент данных возвратит 1.

Смотрите также таблицу со значениями по умолчанию . icmppingloss[ , , , , ] Процентное отношение потерянных пакетов. Число с плавающей точкой. цель — IP хоста или DNS имя
пакеты — количество пакетов
интервал — время между успешными пакетами в миллисекундах
размер — размер пакета в байтах
время ожидания — время ожидания в миллисекундах Смотрите также таблицу со значениями по умолчанию . icmppingsec[ , , , , , ] Время ответа на пинг по ICMP (в секундах). Число с плавающей точкой цель — IP хоста или DNS имя
пакеты — количество пакетов
интервал — время между успешными пакетами в миллисекундах
размер — размер пакета в байтах
время ожидания — время ожидания в миллисекундах
режим — один из min, max, avg (по умолчанию) Если хост недоступен (превышено время ожидания), элемент данных вернет 0.
Если элемент данных “icmppingsec” вернет значение меньше 0.0001 секунд, значение будет равно 0.0001 секунд.

Смотрите также таблицу со значениями по умолчанию . net.tcp.service[сервис, , ] Проверка запущен ли сервис и отвечает ли на TCP подключения. 0 — сервис недоступен
1 — сервис работает сервис — один из ssh, ntp, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet (смотри детали)
ip — IP адрес или DNS имя (по умолчанию, используется IP/DNS узла сети)
порт — номер порта (по умолчанию для сервиса используется стандартный номер порта). Пример:
⇒ net.tcp.service[ftp,,45] → можно использовать для проверки доступности FTP сервера на 45 порту TCP.

Обратите внимание, для сервиса tcp обязательно нужно указывать порт.
Эти проверки могут привести к дополнительным записям в системных лог файлах (обычно сессии SMTP и SSH журналируются).
Проверка шифрованных протоколов (таких как IMAP на 993 порту или POP на 995 порту) в настоящее время не поддерживается. Как решение, пожалуйста, для подобных проверок используйте net.tcp.service[tcp, ,порт].
Сервисы https и telnet поддерживаются Zabbix начиная с версии 2.0. net.tcp.service.perf[сервис, , ] Проверка производительности сервиса. Число с плавающей точкой.

0.000000 — сервис недоступен

сек — количество секунд потребовавшихся для подключения к сервису сервис — один из ssh, ntp, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet (смотри детали)
ip — IP адрес или DNS имя (по умолчанию, используется IP/DNS узла сети)
порт — номер порта (по умолчанию для сервиса используется стандартный номер порта). Пример ключа:
⇒ net.tcp.service.perf[ssh] → можно использовать для проверки скорости начального ответа от SSH сервера.

Обратите внимание, для сервиса tcp обязательно нужно указывать порт.
Проверка шифрованных протоколов (таких как IMAP на 993 порту или POP на 995 порту) в настоящее время не поддерживается. Как решение, пожалуйста, для подобных проверок используйте net.tcp.service.perf[tcp, ,порт].
Сервисы https и telnet поддерживаются Zabbix начиная с версии 2.0.
Назывался tcp_perf до Zabbix 2.0. net.udp.service[сервис, , ] Проверка запущен ли сервис и отвечает ли на UDP подключения. 0 — сервис недоступен
1 — сервис работает сервис — возможные значения: ntp (смотри детали)
ip — IP адрес или DNS имя (по умолчанию, используется IP/DNS узла сети)
порт — номер порта (по умолчанию для сервиса используется стандартный номер порта). Пример:
⇒ net.udp.service[ntp,,45] → можно использовать для тестирования доступности NTP сервиса на 45 порту UDP.

Этот элемент данных поддерживается начиная с Zabbix 3.0, но ntp сервис был доступен в net.tcp.service[] элементе данных и в предыдущих версиях. net.udp.service.perf[service, ,

] Проверка производительности UDP сервиса. Число с плавающей точкой.

0.000000 — сервис недоступен

секунды — количество секунд прошедшее на ожидания ответа от сервиса сервис — возможные значения: ntp (смотри детали)
ip — IP адрес или DNS имя (по умолчанию, используется IP/DNS узла сети)
порт — номер порта (по умолчанию для сервиса используется стандартный номер порта). Пример:
⇒ net.udp.service.perf[ntp] → можно использовать для тестирования времени ответа от NTP сервиса.

Этот элемент данных поддерживается начиная с Zabbix 3.0, но ntp сервис был доступен в net.tcp.service[] элементе данных и в предыдущих версиях.

Обработка времени ожидания

Zabbix не будет обрабатывать простую проверку дольше Timeout (времени ожидания) секунд, заданных в файле конфигурации Zabbix сервера/прокси.

ICMP пинг

Для обработки ICMP пинг Zabbix использует внешнюю утилиту fping.

Эта утилита не является частью дистрибутива Zabbix и должна быть установлена дополнительно. Если утилиты нет, у нее выставлены неверные разрешения и её размещение не совпадает с размещением заданным в файле конфигурации Zabbix сервера/прокси (параметры ‘FpingLocation’), ICMP пинг (icmpping, icmppingloss, icmppingsec) не будет обрабатываться.

fping должен быть выполняемым под пользователем Zabbix демонов и должен иметь setuid root. Выполните эти команды из под root для выставления корректных разрешений:

После выполнения этих двух команд выше проверьте владельца исполняемого файла fping. В некоторых случаях владелец может сброситься при выполнении chmod команды.

Также проверьте, принадлежит ли пользователь zabbix к группе zabbix, запустив команду:

и если нет добавьте следующей командой:

Значения по умолчанию, ограничения и описания значений для параметров ICMP проверок:

Параметр Ед. изм Описание Флаг у fping Значения по умолчанию у Разрешенные ограничения
в Zabbix
fping Zabbix мин макс
пакеты количество количество требуемых пакетов к цели -C 3 1 10000
интервал миллисекунды время ожидания между успешными пакетами -p 1000 20 без ограничений
размер байты размер пакета в байтах
56 байт в x86, 68 байт в x86_64
-b 56 или 68 24 65507
время ожидания миллисекунды fping v3.x — время ожидания после отправки последнего пакета (влияет с “-C” флагом)

fping v4.x — отдельное время ожидания для каждого пакета -t fping v3.x — 500

fping v4.x — наследуется от -p флага, но не более чем 2000 50 без ограничений

Zabbix записывает проверяемые IP адреса во временный файл по всем трем icmpping* ключам, который затем передается утилите fping. Если элементы данных имеют различные параметры ключа, то только элементы данных с идентичными параметрами ключа записываются в один файл.
Все записанные в один файл IP адреса проверяются fping утилитой в параллельном режиме, таким образом процесс Zabbix icmp pinger тратит фиксированное время вне зависимости от количества IP адресов в файле.

Источник

Оцените статью