9 сент. 2013 г.

Python with SNMP

Копипаст с laa88.blog.ru:
Пропарился полтора дня с попыткой свящать snmp и python'а.
Сначала пробовал PySNMP — не получилось. При запуске программы орет на пропущенные скобки, хотя все на месте.
Позже пробовал twistedsnmp — такая же проблема где-то пропущена закрывающаяся скобка и программа не запускается.
Отчаявшись — решил собрать библиотеку дла python'а из Net-snmp. При выполнении
python python.sh build
выдается более 20000 строк об ошибках и сообщение, что 'cc' имеет ошибки.
И тут, покапавшись в портах, нахожу программку с невзрачным названием yapsnmp (как позже оказалось это абривеатура). Установка прошла гладко. Но смутил пример автора для выполнения запроса:
yapsnmp.Session('router45-ny').walk('system')
Проблема была в следующем - т.к. у меня все мои девайсы используют разные версии snmp, то в примере автора не было указано ни версии протокола, ни комьюнити. Открыв доки - тоже не нашел ничего внятного, кроме того, что было в общих чертах указано что они могут быть. Попарился немного и... о чудо!!! Программа заработала. Вот так все будет 100% работать:
import yapsnmp print yapsnmp.Session('10.10.1.1', version=2, community='public').walk('ifOperStatus')
А вот, собственно, вывод:
(('ifOperStatus.1', 'up'), ('ifOperStatus.2', 'up'), ('ifOperStatus.3', 'down'), ('ifOperStatus.4', 'down'), ('ifOperStatus.5', 'down'), ('ifOperStatus.6', 'down'), ('ifOperStatus.7', 'down'), ... ,('ifOperStatus.50', 'down'), ('ifOperStatus.51', 'down'), ('ifOperStatus.52', 'up'))

Думаю, что кому-то пригодится.

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.