Проверка доступности порта в Zabbix
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете по системному администрированию. В прошлый раз мы с вами разобрали ситуацию, когда в Windows 11 на устройстве в диспетчера оборудования висела вот такая ошибка «Запуск этого устройства невозможен. (код 10)«. Сегодня я покажу вам, как можно производить мониторинг доступности порта службы через Zabbix, мы настроим уведомления для своевременного реагирования.
к содержанию ↑
Постановка задачи
Все наверняка знают, о такой крутой системе мониторинга Zabbix, она простая и бесплатная. Задача заключается в том, чтобы научиться анализировать состояние порта у службы, в качестве примера это будет служба RPC работающая по порту 135 на терминальных столах RDS фермы. Как только порт окажется недоступным, необходимо это зафиксировать и сообщить администратору, по почте или телеграмм каналу.
Настройка проверки доступности порта в Zabbix
Первое, что я советую сделать, это создать группу для объединения в них серверов, которые схожи по своим задачам. У меня это будет группа RDS серверы. Для этого перейдите в «Настройка — Группы узлов сети» потом в правом, верхнем углу нажмите «Создать группу узлов сети».
Задаем нужное вам имя для группы.
Теперь создайте узел сети, это по сути объект вашего сервера, который вы будите мониторить. Переходим в «Настройки — Узлы сети — Создать узел сети«.
Заполните:
- Имя узла сети
- Группы — тут через кнопку «Выбрать» выберите нашу ранее созданную группу
- IP-адрес
- DNS имя
- Описание
Так же если у вас есть общие шаблоны, то вы их можете прилинковать тут, это удобно когда нужно проверку проводить по группе серверов.
Далее нам необходимо создать элемент данных, я это сделаю для шаблона, это так же можно делать и для отдельного хоста.
Задаем ему:
- Понятное имя, в моем случае это будет «Check port 135«
- Тип — Zabbix агент
- Ключ — net.tcp.listen[135] данный вид проверки будет осуществляться со стороны Zabbix агента, что создаст меньше нагрузки, можно сделать внешнюю проверку, чтобы сам сервер Zabbix проверял по типу net.tcp.service[сервис,<ip>,<порт>], пример net.tcp.service[tcp,192.168.100.100,135]
- Задаем интервал — я установлю 1 минуту
- Пользовательские интервалы — Переменный
- Отображение значения — Нужно выбрать тип значений, тут «0 — сервис недоступен» и «1 — сервис запущен«
В итоге у вас должно быть вот так.
Теперь осталось создать тригер. Переходим в соответствующее меню, где задаем:
- Имя тригера — Порт 135 не слушается
- Важность
- Выражение — {TMPL_VIRT_MS_RDS_SH:net.tcp.listen[135].last()}=0
На этом все. Теперь Zabbix агент будит каждую минуту проверять доступность порта, если есть проблемы, то он пришлет предупреждение: