Назад | Перейти на главную страницу

расширение snmp с помощью статического oid

Я пытаюсь расширить snmp, чтобы вернуть номер данного процесса

Это инструмент, сохраненный в /usr/bin/count_proc.sh

#!/bin/bash
ps aux | awk '
BEGIN { c=0 }
/processname$/ { c=c+1 }
END { print $c }'

в моем snmpd.conf у меня есть следующая строка:

extend .1.3.6.1.4.1.8072.9999.1 count_proc /usr/bin/count_proc.sh

Однако я не могу получить результат этой команды с этим OID. Когда я запускаю snmp-запрос для этого OID, результат будет:

Value: (Snmp No Such object)

Если я запустил обход дерева snmp, я наконец кое-что увижу, но это странно ... «Next OID» - это имя моего инструмента, а не числовое.

OID: .1.3.6.1.4.1.8072.9999.1.2.1.2.9.99.111.117.110.116.95.102.119.100
Next OID: /usr/bin/count_proc.sh
Value: 1

И, наконец, я увижу ценность, на которую рассчитываю.

OID: .1.3.6.1.4.1.8072.9999.1.3.1.1.9.99.111.117.110.116.95.102.119.100
Value: 13

Но это не тот OID, который я ожидал запросить, чтобы найти результат. Я также найду вывод на нескольких других OID.

Это работает так, как задумано, или мне здесь не хватает чего-то важного?

Лично я использую extension без OID, например:

extend count_proc /usr/bin/count_proc.sh

OID, сгенерированный snmp, прост, результат:
NET-SNMP-EXTEND-MIB :: нсекстендоутпут1лине.«Count_proc»

OID:
1.3.6.1.4.1.8072.1.3.2.3.1.1.10.99.111.117.110.116.95.112.114.111.99

Пояснение: 10 : number of character in "count_proc" 99 : ASCII decimal value of 'c' 111 : ASCII decimal value of 'o' 117 : ASCII decimal value of 'u' 110 : ASCII decimal value of 'n' 116 : ASCII decimal value of 't' 95 : ASCII decimal value of '_' 112 : ASCII decimal value of 'p' 114 : ASCII decimal value of 'r' 111 : ASCII decimal value of 'o' 99 : ASCII decimal value of 'c'

Таким образом, вы можете легко получить OID программно.

Наверное Эта ссылка может помочь вам в "расширении" соглашения об именах