Nagios - проверка статуса порта коммутатора используя check_snmp

  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:4c904dcc07da336a90e0b2755ac8c538' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><img alt=\"Nagios logo\" src=\"http://muff.kiev.ua/files/nagios-logo.png\" style=\"height:38px; width:140px\" /></p>\n<p class=\"rtejustify\">Имея в распоряжении настроенную связку <a href=\"http://muff.kiev.ua/content/nastroika-sistemy-monitoringa-nagios-3x-i-utility-konfigurirovaniya-nconf\"><strong>Nagios + Nconf</strong></a>, продолжим развивать тему мониторинга разнообразных параметров. Настроим возможность проверки состояния порта коммутатора (<strong>up</strong> или <strong>down</strong>). Для этого воспользуемся возможностью <strong>Nagios </strong>работать с <strong>SNMP</strong>, используя расширение&nbsp;<strong>check_snmp</strong>. Синтаксис использования&nbsp;<strong>check_snmp</strong> следующий:</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td>\n<pre>\nUsage:\ncheck_snmp -H &lt;ip_address&gt; -o &lt;OID&gt; [-w warn_range] [-c crit_range]\n[-C community] [-s string] [-r regex] [-R regexi] [-t timeout] [-e retries]\n[-l label] [-u units] [-p port-number] [-d delimiter] [-D output-delimiter]\n[-m miblist] [-P snmp version] [-L seclevel] [-U secname] [-a authproto]\n[-A authpasswd] [-x privproto] [-X privpasswd]</pre></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Теперь немного общей информации.&nbsp;В <strong>SNMP</strong> состояние порта можно получить через <strong>OID</strong>&nbsp;<strong>1.3.6.1.2.1.2.2.1.8,&nbsp;</strong>он же&nbsp;<strong>ifOperStatus</strong>.</p>\n<p class=\"rtejustify\">Пример запроса состояния портов коммутатора с помощью&nbsp;<strong>snmpwalk</strong>&nbsp;(может пригодится, если у коммутатор использует нестандартные индексы для нумерации портов):</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td>\n<pre>\n# <strong>snmpwalk -v 2c -c <span style=\"color:#FF0000\">you_community_here</span> 192.168.<span style=\"color:#FF0000\">x</span>.<span style=\"color:#FF0000\">x</span> ifOperStatus</strong>\n\nIF-MIB::ifOperStatus.1 = INTEGER: down(2)\nIF-MIB::ifOperStatus.2 = INTEGER: up(1)\nIF-MIB::ifOperStatus.3 = INTEGER: up(1)\nIF-MIB::ifOperStatus.4 = INTEGER: up(1)\nIF-MIB::ifOperStatus.5 = INTEGER: up(1)\nIF-MIB::ifOperStatus.6 = INTEGER: up(1)\nIF-MIB::ifOperStatus.7 = INTEGER: up(1)\nIF-MIB::ifOperStatus.8 = INTEGER: down(2)\nIF-MIB::ifOperStatus.9 = INTEGER: down(2)\nIF-MIB::ifOperStatus.10 = INTEGER: down(2)\nIF-MIB::ifOperStatus.11 = INTEGER: down(2)\nIF-MIB::ifOperStatus.12 = INTEGER: down(2)\nIF-MIB::ifOperStatus.13 = INTEGER: down(2)\nIF-MIB::ifOperStatus.14 = INTEGER: down(2)\nIF-MIB::ifOperStatus.15 = INTEGER: down(2)\nIF-MIB::ifOperStatus.16 = INTEGER: down(2)\nIF-MIB::ifOperStatus.17 = INTEGER: down(2)\nIF-MIB::ifOperStatus.18 = INTEGER: down(2)\nIF-MIB::ifOperStatus.19 = INTEGER: down(2)\nIF-MIB::ifOperStatus.20 = INTEGER: down(2)\nIF-MIB::ifOperStatus.21 = INTEGER: down(2)\nIF-MIB::ifOperStatus.22 = INTEGER: down(2)\nIF-MIB::ifOperStatus.23 = INTEGER: down(2)\nIF-MIB::ifOperStatus.24 = INTEGER: down(2)\nIF-MIB::ifOperStatus.25 = INTEGER: up(1)\nIF-MIB::ifOperStatus.26 = INTEGER: down(2)\nIF-MIB::ifOperStatus.27 = INTEGER: up(1)\nIF-MIB::ifOperStatus.28 = INTEGER: up(1)</pre></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Теперь, используя эту информацию, создадим в <strong>Nconf</strong> новую&nbsp;&quot;<strong>Checkcommand</strong>&quot; - &quot;<strong>check_switch_port</strong>&quot;.</p>\n<p class=\"rtejustify\">Для этого в меню &quot;<strong>Additional Items</strong>&quot;, пункт &quot;<strong>Checkcommands</strong>&quot; жмем кнопку &quot;<strong>Add</strong>&quot; и заполняем форму следующим образом:</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"line-height:16.7999992370605px; width:797px\">\n<tbody>\n<tr>\n<td class=\"rteleft\"><strong>check command name</strong></td>\n<td class=\"rteleft\">check_switch_port</td>\n</tr>\n<tr>\n<td class=\"rteleft\"><strong>default service name</strong></td>\n<td class=\"rteleft\">&nbsp;</td>\n</tr>\n<tr>\n<td class=\"rteleft\"><strong>check command line</strong></td>\n<td class=\"rteleft\">$USER1$/check_snmp -H $HOSTADDRESS$ -r 1 -C $ARG1$ -P $ARG2$ -o&nbsp;ifOperStatus.$ARG3$</td>\n</tr>\n<tr>\n<td class=\"rteleft\"><strong>command description</strong></td>\n<td class=\"rteleft\">ARG1=SNMP community,ARG2=SNMP version,ARG3=Port number</td>\n</tr>\n<tr>\n<td class=\"rteleft\"><strong>default command params</strong></td>\n<td>!public!2c!1</td>\n</tr>\n<tr>\n<td><strong>amount of params</strong></td>\n<td>3</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">После создания команды проверки <strong>check_switch_port</strong>, добавляем этот сервис в команды проверки&nbsp;коммутатора, не забыв изменить необходимые переменные. Генерируем конфигурационные файлы и ожидаем проверки наших сервисов.</p>\n<p>В результате, имеем примерно таку картинку:</p>\n<p class=\"rtecenter\"><a class=\"thickbox\" href=\"/files/imagepicker/1/Nagios_check_switch_port_01.png\"><img alt=\"Nagios check switch port\" class=\"imgp_img\" src=\"/files/imagepicker/1/thumbs/Nagios_check_switch_port_01.png\" style=\"height:112px; width:200px\" /></a></p>\n<p class=\"rtejustify\">&nbsp;</p>\n', created = 1767365570, expire = 1767451970, headers = '', serialized = 0 WHERE cid = '2:4c904dcc07da336a90e0b2755ac8c538' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a class=\"thickbox\" href=\"/files/imagepicker/1/wake_up_ua.png\"><img alt=\"Вставай, Україно!\" class=\"imgp_img\" src=\"/files/imagepicker/1/thumbs/wake_up_ua.png\" style=\"height:200px; width:150px\" /></a></p>\n', created = 1767365570, expire = 1767451970, headers = '', serialized = 0 WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:cc913d232116f0426090404133377d88' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a href=\"http://muff.kiev.ua/rss.xml\"><img alt=\"RSS\" width=\"160\" height=\"60\" src=\"http://muff.kiev.ua/files/muf-rss.png\" /></a></p>\n', created = 1767365570, expire = 1767451970, headers = '', serialized = 0 WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:39649256b636e3d5ded656bc52bd8c01' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
Версия для печатиОтправить другуPDF version

Nagios logo

Имея в распоряжении настроенную связку Nagios + Nconf, продолжим развивать тему мониторинга разнообразных параметров. Настроим возможность проверки состояния порта коммутатора (up или down). Для этого воспользуемся возможностью Nagios работать с SNMP, используя расширение check_snmp. Синтаксис использования check_snmp следующий:

Usage:
check_snmp -H <ip_address> -o <OID> [-w warn_range] [-c crit_range]
[-C community] [-s string] [-r regex] [-R regexi] [-t timeout] [-e retries]
[-l label] [-u units] [-p port-number] [-d delimiter] [-D output-delimiter]
[-m miblist] [-P snmp version] [-L seclevel] [-U secname] [-a authproto]
[-A authpasswd] [-x privproto] [-X privpasswd]

Теперь немного общей информации. В SNMP состояние порта можно получить через OID 1.3.6.1.2.1.2.2.1.8, он же ifOperStatus.

Пример запроса состояния портов коммутатора с помощью snmpwalk (может пригодится, если у коммутатор использует нестандартные индексы для нумерации портов):

# snmpwalk -v 2c -c you_community_here 192.168.x.x ifOperStatus

IF-MIB::ifOperStatus.1 = INTEGER: down(2)
IF-MIB::ifOperStatus.2 = INTEGER: up(1)
IF-MIB::ifOperStatus.3 = INTEGER: up(1)
IF-MIB::ifOperStatus.4 = INTEGER: up(1)
IF-MIB::ifOperStatus.5 = INTEGER: up(1)
IF-MIB::ifOperStatus.6 = INTEGER: up(1)
IF-MIB::ifOperStatus.7 = INTEGER: up(1)
IF-MIB::ifOperStatus.8 = INTEGER: down(2)
IF-MIB::ifOperStatus.9 = INTEGER: down(2)
IF-MIB::ifOperStatus.10 = INTEGER: down(2)
IF-MIB::ifOperStatus.11 = INTEGER: down(2)
IF-MIB::ifOperStatus.12 = INTEGER: down(2)
IF-MIB::ifOperStatus.13 = INTEGER: down(2)
IF-MIB::ifOperStatus.14 = INTEGER: down(2)
IF-MIB::ifOperStatus.15 = INTEGER: down(2)
IF-MIB::ifOperStatus.16 = INTEGER: down(2)
IF-MIB::ifOperStatus.17 = INTEGER: down(2)
IF-MIB::ifOperStatus.18 = INTEGER: down(2)
IF-MIB::ifOperStatus.19 = INTEGER: down(2)
IF-MIB::ifOperStatus.20 = INTEGER: down(2)
IF-MIB::ifOperStatus.21 = INTEGER: down(2)
IF-MIB::ifOperStatus.22 = INTEGER: down(2)
IF-MIB::ifOperStatus.23 = INTEGER: down(2)
IF-MIB::ifOperStatus.24 = INTEGER: down(2)
IF-MIB::ifOperStatus.25 = INTEGER: up(1)
IF-MIB::ifOperStatus.26 = INTEGER: down(2)
IF-MIB::ifOperStatus.27 = INTEGER: up(1)
IF-MIB::ifOperStatus.28 = INTEGER: up(1)

Теперь, используя эту информацию, создадим в Nconf новую "Checkcommand" - "check_switch_port".

Для этого в меню "Additional Items", пункт "Checkcommands" жмем кнопку "Add" и заполняем форму следующим образом:

check command name check_switch_port
default service name  
check command line $USER1$/check_snmp -H $HOSTADDRESS$ -r 1 -C $ARG1$ -P $ARG2$ -o ifOperStatus.$ARG3$
command description ARG1=SNMP community,ARG2=SNMP version,ARG3=Port number
default command params !public!2c!1
amount of params 3

После создания команды проверки check_switch_port, добавляем этот сервис в команды проверки коммутатора, не забыв изменить необходимые переменные. Генерируем конфигурационные файлы и ожидаем проверки наших сервисов.

В результате, имеем примерно таку картинку:

Nagios check switch port

 

Ваша оценка: Нет Средняя: 1 (1 голос)

Вставай, Україно!

Литература

Страница показывалась KOI-как...