|
Использование агента NET-SNMP в своем железе, не могу понять, требуется помощь... |
|
|
|
Jan 15 2010, 13:06
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 8-02-05
Пользователь №: 2 486

|
Суть происходящего: ...есть железка, на которой запустил Linux, затем собрал и запустил там агента NET-SNMP, также там работает моя программа пользователя (т.е. моя программа), которой в процессе работы необходимо передавать и принимать данные SNMP-браузеру, и в зависимости от данных производить манипуляции с железом...
агент запускается, выдает SysDescr и т.п., а вот дальше...
вот тут я не могу понять, как написать MIB (или как научить агента нужным переменным) для своей железки, и как взаимодействовать с NET-SNMP, что бы передавать/принимать данные?
Может кто уже сталкивался с подобным и подскажет как надо?
Или на простом примере обяснить, как сделать так, что бы записав из браузера в определенную переменную 1 зажигался светодиод, записал 0 - потух.
Заранее спасибо!
Сообщение отредактировал nvn - Jan 15 2010, 13:24
|
|
|
|
|
 |
Ответов
(1 - 6)
|
Jan 18 2010, 06:44
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 8-02-05
Пользователь №: 2 486

|
Цитата(Idle @ Jan 17 2010, 18:29)  вам нужно добавить свой функционал в агента посмотрите для начала FAQ из дистрибутива с иходниками netsnmp, раздел CODING, вопрос "How do I write C code to integrate with the agent?" и далее наличие mib-файла необязательно, но в дистрибутиве есть примочка mib2c, которая генерирует шаблоны функций на си для реализации расширения агента я занимался этим больше двух лет назад, подробно объяснить мне сложно, попробую найти свои старые исходники Был бы Вам очень признателен за исходники (хотя бы фрагменты) в качестве примера
|
|
|
|
|
Jan 22 2010, 05:35
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 8-02-05
Пользователь №: 2 486

|
Цитата(Idle @ Jan 20 2010, 12:08)  Спасибо, буду читать и пробовать разобраться
|
|
|
|
|
Dec 20 2010, 06:53
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 8-02-05
Пользователь №: 2 486

|
Снова нужна помощь по NET-SNMP. Собрал snmpd с поддержкой AgentX, запустил моего субагента, он подключается к мастеру и все рабоатет. Сейчас пытаюсь сделать вывод таблицы по принципу data_set и проблемма в том, что не могу получить первый столбец, вывод идет сразу со второго. делаю следующее:
init_nstAgentSubagentObject() { static oid alarmTable_oid[] = { 1, 1, 2 }; size_t alarmTable_oid_len = OID_LENGTH(alarmTable_oid); netsnmp_table_data_set *table_set; netsnmp_table_row *row;
table_set = netsnmp_create_table_data_set("alarmTable"); table_set->table->store_indexes = 1; // пробовал и = 0
netsnmp_table_dataset_add_index(table_set, ASN_UNSIGNED); netsnmp_table_set_add_default_row(table_set, 2, ASN_OCTET_STR, 0, NULL, 0); netsnmp_register_table_data_set(netsnmp_create_handler_registration ("alarmTable", alarmTable_handler, alarmTable_oid, alarmTable_oid_len, HANDLER_CAN_RWRITE), table_set, NULL);
row = netsnmp_create_table_data_row(); default_num = 1; netsnmp_table_row_add_index(row, ASN_UNSIGNED, &default_num, sizeof(default_num)); netsnmp_set_row_column(row, 2, ASN_OCTET_STR, "Test1", strlen("Test1"));
netsnmp_table_dataset_add_row(table_set, row); }
после этого вижу только начиная со второго столбца т.е. >snmpwalk -v 1 -On -c public 192.168.0.139 1.1.2 .1.1.2.1.2.1 = STRING: "Test1" а где первый столбец? .1.1.2.1.1.1 = 1 ????
пробовал добавлять netsnmp_table_set_add_default_row(table_set, 1, ASN_UNSIGNED, 0, NULL, 0); вообще перестает отвечать на ветку .1.1.2
может кто знает в чем проблема? подскажите пожалуйста
ЗЫ: начал уж думать что data_set не подходит для этого
|
|
|
|
|
Dec 23 2010, 08:14
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 8-02-05
Пользователь №: 2 486

|
всем спасибо, проблема решена
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|