Мониторинг очереди в postfix по SNMP или добавляем Custom OID
В этой статье рассмотрим пример мониторинга очереди писем postfix через SNMP. Первоначальная настройка SNMP производилась в этой статье.
Число писем в очереди будем вычислять с помощью этого скрипта:
#!/bin/bash queuelength=`/usr/sbin/postqueue -p | tail -n1 | awk '{print $5}'` queuecount=`echo $queuelength | grep "[0-9]"` if [ "$queuecount" == "" ]; then echo 0; else echo ${queuelength}; fi exit 35
Сохраним его, допустим, в /var/snmp-scripts/queue.sh и сделаем запускаемым:
# chmod +x /var/snmp-scripts/queue.sh
Теперь добавим такие строки в /etc/snmp/snmpd.conf :
extend .1.3.6.1.4.1.9999.44.1 /bin/bash /var/snmp-scripts/queue.sh
Сделаем тест с помощью snmpwalk:
# snmpwalk -v1 -c public 127.0.0.1 1.3.6.1.4.1.9999.44.1
iso.3.6.1.4.1.9999.44.1.1.0 = INTEGER: 1
iso.3.6.1.4.1.9999.44.1.2.1.2.9.47.98.105.110.47.98.97.115.104 = STRING: «/var/snmp-scripts/queue.sh»
iso.3.6.1.4.1.9999.44.1.2.1.3.9.47.98.105.110.47.98.97.115.104 = «»
iso.3.6.1.4.1.9999.44.1.2.1.4.9.47.98.105.110.47.98.97.115.104 = «»
iso.3.6.1.4.1.9999.44.1.2.1.5.9.47.98.105.110.47.98.97.115.104 = INTEGER: 5
iso.3.6.1.4.1.9999.44.1.2.1.6.9.47.98.105.110.47.98.97.115.104 = INTEGER: 1
iso.3.6.1.4.1.9999.44.1.2.1.7.9.47.98.105.110.47.98.97.115.104 = INTEGER: 1
iso.3.6.1.4.1.9999.44.1.2.1.20.9.47.98.105.110.47.98.97.115.104 = INTEGER: 4
iso.3.6.1.4.1.9999.44.1.2.1.21.9.47.98.105.110.47.98.97.115.104 = INTEGER: 1
iso.3.6.1.4.1.9999.44.1.3.1.1.9.47.98.105.110.47.98.97.115.104 = STRING: «0»
iso.3.6.1.4.1.9999.44.1.3.1.2.9.47.98.105.110.47.98.97.115.104 = STRING: «0»
iso.3.6.1.4.1.9999.44.1.3.1.3.9.47.98.105.110.47.98.97.115.104 = INTEGER: 1
iso.3.6.1.4.1.9999.44.1.3.1.4.9.47.98.105.110.47.98.97.115.104 = INTEGER: 35
iso.3.6.1.4.1.9999.44.1.4.1.2.9.47.98.105.110.47.98.97.115.104.1 = STRING: «0»
iso.3.6.1.4.1.9999.44.1.1.0 = INTEGER: 1
iso.3.6.1.4.1.9999.44.1.2.1.2.9.47.98.105.110.47.98.97.115.104 = STRING: «/var/snmp-scripts/queue.sh»
iso.3.6.1.4.1.9999.44.1.2.1.3.9.47.98.105.110.47.98.97.115.104 = «»
iso.3.6.1.4.1.9999.44.1.2.1.4.9.47.98.105.110.47.98.97.115.104 = «»
iso.3.6.1.4.1.9999.44.1.2.1.5.9.47.98.105.110.47.98.97.115.104 = INTEGER: 5
iso.3.6.1.4.1.9999.44.1.2.1.6.9.47.98.105.110.47.98.97.115.104 = INTEGER: 1
iso.3.6.1.4.1.9999.44.1.2.1.7.9.47.98.105.110.47.98.97.115.104 = INTEGER: 1
iso.3.6.1.4.1.9999.44.1.2.1.20.9.47.98.105.110.47.98.97.115.104 = INTEGER: 4
iso.3.6.1.4.1.9999.44.1.2.1.21.9.47.98.105.110.47.98.97.115.104 = INTEGER: 1
iso.3.6.1.4.1.9999.44.1.3.1.1.9.47.98.105.110.47.98.97.115.104 = STRING: «0»
iso.3.6.1.4.1.9999.44.1.3.1.2.9.47.98.105.110.47.98.97.115.104 = STRING: «0»
iso.3.6.1.4.1.9999.44.1.3.1.3.9.47.98.105.110.47.98.97.115.104 = INTEGER: 1
iso.3.6.1.4.1.9999.44.1.3.1.4.9.47.98.105.110.47.98.97.115.104 = INTEGER: 35
iso.3.6.1.4.1.9999.44.1.4.1.2.9.47.98.105.110.47.98.97.115.104.1 = STRING: «0»
Последнее значение и будет искомым значением отдаваемым скриптом, то есть количество писем в очереди — 1.3.6.1.4.1.9999.44.1.4.1.2.9.47.98.105.110.47.98.97.115.104.1 = STRING: «0»
Здравствуйте!
А Custom OID может быть совершенно любым, или указанная вами последовательность не долна изменяться?
Каким образом Вы составили\подобрали последовательность?
Насколько я помню, после 1.3.6.1.4.1. можно писать любые числа
Сделал по вашей инструкции и у меня
snmpget -v 2c -c public localhost .1.3.6.1.4.1.1958
SNMPv2-SMI::enterprises.1958 = No Such Object available on this agent at this OID
snmp.conf
extend .1.3.6.1.4.1.1958 stroka /usr/tscrips/stroka.sh
Не подскажите что не так ???
простите вместо
snmp.conf
snmpd.conf