Как написать код, отправляющий определенные пользователем ловушки, используя Net-SNMP API

Можем ли мы написать код для отправки пользовательских ловушек вместо тех, которые упомянуты в snmpd, используя Net-SNMP API, как показано ниже, для отправки ловушек netsnmp_send_traps (), send_v2trap (), send_v3trap ()?

Я не планирую писать какой-либо модуль MIB. Поэтому я не ожидаю, что моя ловушка должна проходить через snmpd (Agent Daemon).

Идея, которую я хочу реализовать, заключается в отправке ловушки из внешнего кода в snmptrapd, который будет получать ловушки и пересылать их настроенному получателю ловушек, чтобы лучше познакомиться с библиотекой Net-SNMP.


person Fun with coding    schedule 03.12.2013    source источник
comment
Вы должны уметь читать исходный код snmptrap, net-snmp. org / wiki / index.php / TUT: snmptrap   -  person Lex Li    schedule 05.12.2013
comment
Я не хочу использовать snmptrap, поскольку это команда. Если я использую команду snmptrapd в своем коде, она будет без необходимости выполняться с помощью syscall (). Я хочу это преодолеть. Любой способ преодолеть это?   -  person Fun with coding    schedule 11.12.2013
comment
Но он имеет полностью открытый исходный код, поэтому вы можете видеть, какой API он использует для отправки ловушек. Я не прошу вас вызывать команду.   -  person Lex Li    schedule 12.12.2013
comment
в порядке. Спасибо за комментарий. Подскажите, пожалуйста, в чем разница между ловушками, отправленными агентом, и ловушками, отправленными командой snmptrap?   -  person Fun with coding    schedule 13.12.2013
comment
Все байты в пакете одинаковы, но вы должны обратить внимание на порт, используемый для отправки пакета.   -  person Lex Li    schedule 13.12.2013
comment
в порядке. Но почему для отправки ловушек предусмотрены два разных метода? Какая-нибудь существенная причина? Или какое-то конкретное использование?   -  person Fun with coding    schedule 15.12.2013
comment
SNMP имеет несколько версий, поэтому для построения пакетов требуются разные методы. Вы можете обратиться к документам RFC для получения дополнительной информации.   -  person Lex Li    schedule 16.12.2013
comment
Не могли бы вы сообщить мне точный номер RFC для этого?   -  person Fun with coding    schedule 17.12.2013
comment
stackoverflow.com/questions/8679137 /   -  person Lex Li    schedule 17.12.2013
comment
Также то, что мы можем отправлять ловушки для вещей, которые мы отслеживаем через snmpd, и если он не отслеживает, он не может отправлять ловушки из snmpd? Я думаю, мы можем отправлять определяемые пользователем ловушки с помощью snmptrap и ловушки для состояния системы, например использования ЦП, использования диска, отправляются через snmpd, если они отслеживаются snmpd.   -  person Fun with coding    schedule 17.12.2013
comment
Если вы расширяете snmpd своими объектами, вам следует попытаться отправить TRAP в своих расширениях. Если вы этого не сделаете, вы, конечно, можете попробовать использовать snmptrap или собственное приложение для отправки ловушек. Технически ресивер отличий не заметит. Если у вас есть другие вопросы, попробуйте опубликовать их как новые вопросы.   -  person Lex Li    schedule 18.12.2013


Ответы (1)


API Net-SNMP не предоставляется. Мы можем просто выполнить команду fork-exec Net-SNMP для отправки прерывания.

person Fun with coding    schedule 25.01.2017