Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


icinga:monitoring-plugin-check_tcp

Плагин мониторинга доступности TCP-прослушивателей check_tcp

Плагин проверки доступности TCP-порта check_tcp устанавливается в систему в составе пакетов nagios-plugins или nagios-plugins-all.

Найти плагин в системе и получить информацию о его ключах можно так:

# locate check_tcp /usr/lib/nagios/plugins/check_tcp # /usr/lib/nagios/plugins/check_tcp --help


Пример использования плагина check_tcp

Плагин check_tcp может быть полезен тогда, когда нужно проверить доступность какой-то сетевой службы того или иного Хоста.
Для примера рассмотрим использование плагина check_tcp для проверки доступности TCP-портов, которые используются клиентами при подключении к сетевым USB-концентраторам Digi AnywhereUSB. Для этих устройств нам потребуется настроить мониторинг ряда портов: TCP 3422, 3423, 771, 1027.
Настройку будем выполнять в Icinga Web 2 с модулем Icinga Director 1.3.1


Создаём Команду

В первую очередь создадим в интерфейсе Icinga Director новую Команду (Command) с именем, например, «check_tcp»:

В свойствах Команды на закладке Arguments описываем аргументы, которые мы будем использовать для вызова плагина check_tcp. Обратите внимание на то, что плагин может принимать множество разных аргументов, а мы используем только некоторые их них.

На закладке Fields добавляем дополнительное Поле Данных, через которое будем передавать номер TCP-порта.

В конечном итоге, в свойствах созданной Команды «check_tcp» на закладке Preview в нашем случае отображается следующая результирующая конфигурация, которая попадёт в конфигурацию Icinga Director (zones.d/director-global/commands.conf) при очередном развёртывании:

object CheckCommand "check_tcp" {
    import "plugin-check-command"
    command = [ PluginDir + "/check_tcp" ]
    timeout = 1m
    arguments += {
        "--hostname" = {
            required = true
            value = "$address$"
        }
        "--port" = {
            required = true
            value = "$check_tcp_port$"
        }
        "--use-ipv4" = {}
    }
}


Создаём Группы Хостов

Создание Групп Хостов может быть полезным для того, чтобы для Шаблона Службы, который мы в дальнейшем будем делать на основе Команды «check_tcp», можно было выполнить привязку правил Apply Rule к этим группам.
В моём случае используется два типа устройств Digi AnywhereUSB - 5-портовые и 14-портовые концентраторы. В рамках нашей задачи эти два типа различаются тем, что имею разный набор прослушиваемых TCP-портов: 14-портовые слушают порты TCP 3422/3423/771/1027, а 5-портовые слушают только порт 3422. Поэтому мы сделаем две Группы Хостов «Digi-AnywhereUSB» и «Digi-AnywhereUSB-5»

Созданные Группы Хостов для привязки к Хостам могут использовать правила динамической привязки. В моём случае используется привязка на основании основного идентификатора SNMP System OID, о настройке и применении, которого рассматривалось в статье Настройка мониторинга сетевых устройств в Icinga Director. Но это касается только Группы Хостов «Digi-AnywhereUSB», так как подразумевается, что членство в этой Группе будет назначаться устройствам типа Digi AnywhereUSB/14, которые могут быть опрошены по протоколу SNMP.

Устройства, типа Digi AnywhereUSB/5 не имеют поддержки протокола SNMP, и поэтому привязка членства таких устройств в Группе Хостов «Digi-AnywhereUSB-5» будет выполняться вручную.

В конечном итоге, в свойствах созданных Групп Хостов на закладке Preview в нашем случае отображается следующая результирующая конфигурация, которая попадёт в конфигурацию Icinga Director (zones.d/director-global/hostgroups.conf) при очередном развёртывании:

object HostGroup "Digi-AnywhereUSB" {
    display_name = "Digi AnywhereUSB USB over IP Switch"
    assign where host.vars.snmp_SNMPv2_MIB_sysObjectID == "1.3.6.1.4.1.332.11.6"
}
object HostGroup "Digi-AnywhereUSB-5" {
    display_name = "Digi AnywhereUSB/5 Single-Hosted"
}


Создаём Шаблон Службы

Создаем Шаблон Службы с именем, например, «TCP Port Availability». В свойствах Шаблона Службы в качестве Check command выбираем ранее созданную Команду «check_tcp»

Определяем параметры выполнения, например следующим образом:

В конечном итоге, в свойствах созданного Шаблона Службы «TCP Port Availability» на закладке Preview в нашем случае отображается следующая результирующая конфигурация, которая попадёт в конфигурацию Icinga Director (zones.d/director-global/service_templates.conf) при очередном развёртывании:

template Service "TCP Port Availability" {
    check_command = "check_tcp"
    check_period = "Always"
    check_interval = 1m
    enable_notifications = true
    enable_active_checks = true
    enable_passive_checks = false
    enable_event_handler = false
    enable_perfdata = true
    volatile = false
}


Создаём правила Apply Rule

Для созданного Шаблона Службы «TCP Port Availability» создаём правила Apply Rule. Данные правила будут отвечать за динамическую привязку Служб мониторинга к Хостам на основании членства в Группах Хостов. Создадим несколько Служб, по одной Службе на TCP-порт, который нужно мониторить.


Проверяем результат


Дополнительный источник информации:


Автор первичной редакции:
Алексей Максимов
Время публикации: 10.06.2017 11:35

Обсуждение

Ваш комментарий:
 

icinga/monitoring-plugin-check_tcp.txt · Последние изменения: 12.06.2017 11:30 — Алексей Максимов