В этой статье рассмотрим пример мониторинга очереди писем 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. можно писать любые числа