Взаимодействие стандартного snmpd и net-snmp в AIX
С появлением у нас на работе серверов с AIX возникла необходимость их мониторинга уже существующим пакетом Cacti по snmp. Начав настраивать хосты в Cacti, я столкнулся с тем, что стандартный snmpd не включает некоторые MIBы, нужные «в хозяйстве», например очень много полезных вещей мониторятся с помощью ucd-snmp, ucd-diskio MIBов и т.д.
Попытки подключить нужные MIBы к стандатрному snmpd не привели к успеху (mosy отказался построить список определений по нужному мне MIBу, выдавая ругань на синтаксические ошибки), равно как и попытки подключить MIBы от AIX snmpd к net-snmp. В очередной раз перекапывая Гугл в поисках подсказки, я, совершенно случайно, наткнулся на пост Paul Mininni на форуме Zenoss с помощью которого мне удалось настроить одновременную работу родного snmpd AIX и net-snmp на разных портах и проксирование OIDов AIX из net-snmp в родной snmpd.
- Устанавливаем net-snmpd. Скачать можно с сайта Michael Perzl. Возможно, потребуется сначала установить openssl.
- Переносим net-snmp на порт 1610 чтобы он не конфликтовал со стандартным snmpd. Для этого нужно отредактировать файл опций запуска net-snmp – /opt/freeware/etc/snmp/snmpd.options:
OPTIONS="-A -Lf /var/log/net-snmpd.log -p /var/run/snmpd.pid -a udp:1610"
- Теперь нужно отредактировать файл ротации логов net-snmp чтобы при ротации происходил перезапуск net-snmp, а не родного snmpd, редактируем файл /opt/freeware/etc/logrotate.d/snmpd:
/var/log/net-snmpd.log { notifempty missingok postrotate /etc/rc.d/init.d/snmpd restart 2> /dev/null > /dev/null || true endscript } -
Настраиваем проксирование неизвестных OIDов в родной snmpd AIX, редактируем конфиг net-snmp (/opt/freeware/etc/snmp/snmpd.conf) и добавляем следующие строки:
## AIX # Proxy IBM Agent Requests for port number proxy -v 1 -c public 127.0.0.1:161 1.3.6.1.4.1.2.2.1.1.0 proxy -v 1 -c public 127.0.0.1:161 1.3.6.1.4.1.2.2.1.1.1.0 # Proxy iftable(IF-MIB: Interface Names & Stats), iptable and ifalias proxy -v 1 -c public 127.0.0.1:161 1.3.6.1.2.1 proxy -v 1 -c public 127.0.0.1:161 1.3.6.1.2.1.4.20.1 proxy -v 1 -c public 127.0.0.1:161 1.3.6.1.2.1.31 # Proxy RFC1213-MIB (Route Info) proxy -v 1 -c public 127.0.0.1:161 1.3.6.1.2.1.4.21.1 # Proxy SysUptime (netsnmp doesn't work) proxy -v 1 -c public 127.0.0.1:161 1.3.6.1.2.1.25.1.1.0 # Proxy the SNMP Descr so OS shows up properly in zenoss parsing proxy -v 1 -c public 127.0.0.1:161 1.3.6.1.2.1.1.1.0 proxy -v 1 -c public 127.0.0.1:161 1.3.6.1.4.1.2 proxy -v 1 -c public 127.0.0.1:161 1.3.6.1.2.1.2
-
Для полноты картины нужно внести изменения в конфиги стандартного snmpd.
В /etc/snmpd.conf добавить строку:community public 127.0.0.1
Соответствующая часть /etc/snmpdv3.conf должна выглядеть примерно следующим образом:
VACM_GROUP group1 SNMPv1 public - #VACM_VIEW defaultView internet - included - VACM_VIEW defaultView 1.3.6.1.4.1.2.2.1.1.1.0 - included - #VACM_VIEW defaultView 1.3.6.1.4.1.2.6.191.1.6 - included - # exclude snmpv3 related MIBs from the default view VACM_VIEW defaultView snmpModules - excluded - VACM_VIEW defaultView 1.3.6.1.6.3.1.1.4 - included - VACM_VIEW defaultView 1.3.6.1.6.3.1.1.5 - included - VACM_VIEW defaultView 1.3.6.1.4.1.2.6.191 - included - VACM_VIEW defaultView system - included - VACM_VIEW defaultView interfaces - included - VACM_VIEW defaultView tcp - included - VACM_VIEW defaultView icmp - included - VACM_VIEW defaultView internet - included - VACM_VIEW defaultView enterprises - included - VACM_VIEW defaultView 1.3.6.1.2.1 - included - VACM_VIEW defaultView 1.3.6.1.4.1.2 - included - VACM_VIEW defaultView 1.3.6.1.4.1.2.2 - included - VACM_VIEW defaultView 1.3.6.1.4.1.2.3 - included - VACM_VIEW defaultView 1.3.6.1.4.1.2.5 - included - VACM_VIEW defaultView 1.3.6.1.4.1.2.6 - included - VACM_VIEW defaultView internet - included - VACM_VIEW defaultView directory - included - VACM_VIEW defaultView mgmt - included - VACM_VIEW defaultView mib-2 - included - VACM_VIEW defaultView system - included - VACM_VIEW defaultView aix - included - VACM_VIEW defaultView xmd - included - VACM_VIEW defaultView ibm - included - VACM_VIEW defaultView ibmAgents - included - # exclude aixmibd managed MIBs from the default view VACM_VIEW defaultView 1.3.6.1.4.1.2.6.191 - excluded - VACM_ACCESS group1 - - noAuthNoPriv SNMPv1 defaultView - defaultView -
-
Перезапускаем родной AIX snmpd и его суб-агенты (порядок запуска важен):
stopsrc -s snmpd; stopsrc -s hostmibd; stopsrc -s snmpmibd; stopsrc -s aixmibd startsrc -s snmpd; startsrc -s hostmibd; startsrc -s snmpmibd; startsrc -s aixmibd
-
Запускаем net-snmpd:
/etc/rc.d/init.d/snmpd start
-
Убеждаемся, что все работает и net-snmpd отдает MIBы AIX, напоминаю net-snmp у нас теперь работает на порту 1610, запросим список примонтированных разделов:
snmpwalk -c public -v 1 <aix_server_ip>:1610 .1.3.6.1.4.1.2.6.191.6.2.1.2
Видим примерно следующее:
SNMPv2-SMI::enterprises.2.6.191.6.2.1.2.1 = STRING: "/dev/hd4" SNMPv2-SMI::enterprises.2.6.191.6.2.1.2.2 = STRING: "/dev/hd2" SNMPv2-SMI::enterprises.2.6.191.6.2.1.2.3 = STRING: "/dev/hd9var" SNMPv2-SMI::enterprises.2.6.191.6.2.1.2.4 = STRING: "/dev/hd3" SNMPv2-SMI::enterprises.2.6.191.6.2.1.2.5 = STRING: "/dev/hd1" SNMPv2-SMI::enterprises.2.6.191.6.2.1.2.6 = STRING: "/dev/hd11admin" SNMPv2-SMI::enterprises.2.6.191.6.2.1.2.7 = STRING: "/proc" SNMPv2-SMI::enterprises.2.6.191.6.2.1.2.8 = STRING: "/dev/hd10opt"
- Осталось не забыть указать порт 1610 в настройках хоста в Cacti. Это все.
Комментарии