Вики IT-KB

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

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

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


icinga:monitoring-plugin-check_tcp

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
icinga:monitoring-plugin-check_tcp [10.06.2017 11:38] Алексей Максимовicinga:monitoring-plugin-check_tcp [12.06.2017 11:30] (текущий) Алексей Максимов
Строка 10: Строка 10:
 # /usr/lib/nagios/plugins/check_tcp --help</div></pre></HTML> # /usr/lib/nagios/plugins/check_tcp --help</div></pre></HTML>
  
 +\\
 +==== Пример использования плагина 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**":
 +
 +{{ :icinga:pasted:20170612-101555.png }}
 +
 +В свойствах Команды на закладке **Arguments** описываем аргументы, которые мы будем использовать для вызова плагина **check_tcp**. Обратите внимание на то, что плагин может принимать множество разных аргументов, а мы используем только некоторые их них. 
 +
 +{{ :icinga:pasted:20170612-102133.png }}
 +
 +На закладке **Fields** добавляем дополнительное Поле Данных, через которое будем передавать номер TCP-порта.
 +
 +{{ :icinga:pasted:20170612-102959.png }}
 +
 +В конечном итоге, в свойствах созданной Команды "**check_tcp**" на закладке **Preview** в нашем случае отображается следующая результирующая конфигурация, которая попадёт в конфигурацию Icinga Director (zones.d/director-global/commands.conf) при очередном развёртывании:
 +
 +<code json>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" = {}
 +    }
 +}</code>
 +
 +\\
 +=== Создаём Группы Хостов ===
 +
 +
 +Создание Групп Хостов может быть полезным для того, чтобы для Шаблона Службы, который мы в дальнейшем будем делать на основе Команды "**check_tcp**", можно было выполнить привязку правил Apply Rule к этим группам.\\ 
 +В моём случае используется два типа устройств Digi AnywhereUSB - 5-портовые и 14-портовые концентраторы. В рамках нашей задачи эти два типа различаются тем, что имею разный набор прослушиваемых TCP-портов:
 +14-портовые слушают порты TCP 3422/3423/771/1027, а 5-портовые слушают только порт 3422. Поэтому мы сделаем две Группы Хостов "**Digi-AnywhereUSB**" и "**Digi-AnywhereUSB-5**"
 +
 +{{ :icinga:pasted:20170612-105024.png }}
 +
 +Созданные Группы Хостов для привязки к Хостам могут использовать правила динамической привязки. В моём случае используется привязка на основании основного идентификатора SNMP System OID, о настройке и применении, которого рассматривалось в статье [[https://blog.it-kb.ru/2017/05/30/deploy-and-configure-icinga-2-on-debian-8-part-13-1-snmp-probe-monitoring-of-network-devices-as-apc-eaton-ups-nmc-in-icinga-director/|Настройка мониторинга сетевых устройств в Icinga Director]]. Но это касается только Группы Хостов "**Digi-AnywhereUSB**", так как подразумевается, что членство в этой Группе будет назначаться устройствам типа **Digi AnywhereUSB/14**, которые могут быть опрошены по протоколу SNMP. 
 +
 +Устройства, типа **Digi AnywhereUSB/5** не имеют поддержки протокола SNMP, и поэтому привязка членства таких устройств в Группе Хостов "**Digi-AnywhereUSB-5**" будет выполняться вручную.
 +
 +В конечном итоге, в свойствах созданных Групп Хостов на закладке **Preview** в нашем случае отображается следующая результирующая конфигурация, которая попадёт в конфигурацию Icinga Director (zones.d/director-global/hostgroups.conf) при очередном развёртывании:
 +
 +<code json>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"
 +}</code>
 +
 +<code json>object HostGroup "Digi-AnywhereUSB-5" {
 +    display_name = "Digi AnywhereUSB/5 Single-Hosted"
 +}</code>
 +
 +
 +
 +\\
 +=== Создаём Шаблон Службы ===
 +
 +Создаем Шаблон Службы с именем, например, "**TCP Port Availability**". В свойствах Шаблона Службы в качестве **Check command** выбираем ранее созданную Команду "**check_tcp**"
 +
 +{{ :icinga:pasted:20170612-111017.png }}
 +
 +Определяем параметры выполнения, например следующим образом:
 +
 +{{ :icinga:pasted:20170612-111425.png }}
 +
 +В конечном итоге, в свойствах созданного Шаблона Службы "**TCP Port Availability**" на закладке **Preview** в нашем случае отображается следующая результирующая конфигурация, которая попадёт в конфигурацию Icinga Director (zones.d/director-global/service_templates.conf) при очередном развёртывании:
 +
 +<code json>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
 +}</code>
 +
 +
 +\\
 +=== Создаём правила Apply Rule ===
 +
 +Для созданного Шаблона Службы "**TCP Port Availability**" создаём правила **Apply Rule**. Данные правила будут отвечать за динамическую привязку Служб мониторинга к Хостам на основании членства в Группах Хостов. Создадим несколько Служб, по одной Службе на TCP-порт, который нужно мониторить.
 +
 +{{ :icinga:pasted:20170612-113023.png }}
 +
 +
 +\\
 +=== Проверяем результат ===
  
  
icinga/monitoring-plugin-check_tcp.1497083898.txt.gz · Последнее изменение: 10.06.2017 11:38 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki