Обзор библиотек Python для работы с SNMP

Dec 14, 2012 18:56


Crosspost: https://docs.google.com/document/pub?id=1bVVnWh3V5d6V-THz6lWf1yAuzWAwhVZSYDJflSPOiSo

У всех найденных библиотек очень плохо с документацией.
netsnmp

Поставляется вместе с пакетом net-snmp (библиотекой и утилитами).

Проверенная версия: 1.0a1 (соответствует версии net-snmp 5.7.2) Текущую версию можно выяснить тут: http://www.net-snmp.org/about/ChangeLog.html  Источник: http://www.net-snmp.org/  Подробнее: http://www.net-snmp.org/wiki/index.php/Python_Bindings  Полезная статья: http://www.rootninja.com/how-to-write-simple-netsnmp-apps-in-python/

Плюсы:
  • Использует проверенную (и в большинстве случаев используемую в качестве “системной” библиотеку).
  • Поддерживает SNMPv3.

Минусы: Довольно бедный интерфейс:
  • Только синхронный интерфейс.
  • Только простейшие функции - get, getnext, set, walk.
  • Нет возможности ресолвить именованные OID’ы (хотя их можно использовать при запросах).
  • Нет “серверного” интерфейса (ловить запросы или trap’ы).
pysnmp

Проверенная версия: 4.2.3 Текущую версию можно выяснить тут: http://pypi.python.org/pypi/pysnmp/  Источник: http://pysnmp.sourceforge.net/

Плюсы:
  • Есть и серверный и клиентский интерфейс.
  • Поддерживаются все версии SNMP (1-3).
  • Есть ресолвинг именованных OID’в.
  • Есть и синхронный и асинхронный интерфейсы.
  • Не имеет проблем с переносимостью, поскольку написано на “чистом” python’е.

Минусы:
  • Совершенно невнятная организация модулей библиотеки.
  • Странное ограничение на ресолвинг - модуль нужно передавать отдельно (то есть самому разбивать по “::”, что особенно неудобно в местах куда хочется просто передать OID)
libsnmp

Проверенная версия: 4.2.3 Текущую версию можно выяснить тут: http://pypi.python.org/pypi/libsnmp/  Источник: http://www.seafelt.com/software/sources

Плюсы:
  • Достаточно прозрачный интерфейс.
  • Асинхронный интерфейс.
  • Вместо документации есть примеры скриптов (snmpget-v1, snmpget-v2, snmp-walk, traplistener, trapsender).
  • Не имеет проблем с переносимостью, поскольку написано на “чистом” python’е.

Минусы:
  • Сомнительная поддержка - сайт на который ссылается метаинформация не упоминает эту библиотеку вообще.
  • Только асинхронный интерфейс.
  • Нет поддержки SNMPv3.
  • Нет поддержки ресолвинга OID’ов ни в виде отдельного интерфейса, ни при вызове других функций.
Другие

Источник: http://pypi.python.org/pypi?%3Aaction=search&term=snmp&submit=search

Есть ещё много библиотек на которые у меня не хватило дыхания. Возможно там и скрываются жемчужины проектирования и реализации, но исследование “неудачников” я отложу до следующего раза...
Previous post Next post
Up