2012-02-17 2 views
1

Возможно, я пропустил очевидное, но я потерялся за хороший ответ.Получение данных из моей программы в snmpd

Я разрабатываю автономную программу, которая будет работать на встроенном компьютере Linux (Ubuntu?) Внутри части оборудования. Я хочу, чтобы это было «вещью» переговоров SNMP. Ну, за исключением компиляции в моем собственном коде SNMD «daemon» и убеждении Linux предоставить общедоступному пользователю доступ к порту 161, я думаю, что я выберу snmpd из Net-SNMP. Я открыт для предложений по использованию лучших продуктов. LGPL, BSD, MIT, лицензии, пожалуйста.

Я работаю отдельно от MIB и присвоение OID, и т.д. Я знаю, что вары я хочу, чтобы установить и получить, и т.д.

Я прочитал и перечитал материал о внесении SNMP/SNMPD агента и/или субагентом. Рядом, как я могу судить, они оба скомпилированы в snmp или связаны с ним как с общей библиотекой. Правильно?

Итак, как мне заставить этого агента поговорить с моей программой sepaprate, запущенной в отдельной общей сессии пользователя? Существует ли прямая техника для использования? D-Bus? ppen()? Именованные трубы? Общая память? Временные файлы? UDP-порт? Что-то лучше? Или я действительно хочу превратить свою программу в .SO и запустить snmpd? Я предполагаю, что в этот момент я буду спорить, чтобы сказать snmpd, где мне нужно позвонить/установить vars. Правильно?

Спасибо!

ответ

0

Протокол «AgentX» - это способ для любых приложений предоставлять сервисы SNMP работающему демону SNMP системы. Ваше приложение прослушивает какой-либо порт, отличный от 161 (обычно библиотека будет заботиться о деталях для вас), а система snmpd будет перенаправлять запросы вашего OIDs вашему субагенту. Этот метод не предполагает связывания какого-либо кода с системой snmpd.

Часто проще всего настроить систему snmpd на запуск сценария для получения или установки данных. Сценарий может, если хотите, использовать какой-то другой IPC для общения с вашим приложением (например, JSON на HTTP-сервере, например).

Смежные вопросы