Многие люди могут быть не знакомы с snmpjs, но если вы знакомы с SNMP, мне нужна помощь , отправив сообщение об ошибке, сгенерированное с помощью snmpjs. После запуска следующий код ...Как отправить сообщение с помощью snmpjs
var trap = snmp.message.createMessage({
version: 0, //this means send a SNMP v1 trap
community: "public",
pdu: snmp.pdu.createPDU({
op: 4,//SNMP trap v1
//...etc. etc.
}),
});
console.log(trap);
Я получаю ловушку, которая может почти различаться ловушкой, генерируемой сетью-snmp. Проблема в том, что я не знаю, как правильно отправить это сообщение ловушки. У snmpjs, похоже, нет функции «ОТПРАВИТЬ ФУНКЦИЮ», что меня действительно сбивает с толку. Не уверен, почему они создадут эту структуру для генерации сообщений, если у них нет способа их отправки.
Во всяком случае, моя недавняя идея была
var str = JSON.stringify(trap);
var buf = new Buffer(str.toString());
var conn = dgram.createSocket('udp4');
conn.send(buf, 0, buf.length, 162, 'localhost', function(err, bytes) {
console.log(bytes+" bytes written");
conn.close();
});
который фактически печатает
3152 bytes written.
Но сервер, который якобы получать ловушки ничего не говорит. Мой метод отправки неправильно, но если кто-то хотел бы видеть код сервера прослушивания ловушки здесь это
var trapd = snmp.createTrapListener();
trapd.on('trap', function(msg){
console.log("Message says...");
console.log(msg);
});
trapd.bind({family: 'udp4', port:162});
Что сбивает с толку само по себе, но это способ создания ловушки SNMP слушателя в соответствии с atlantageek.com: http://atlantageek.com/2014/08/23/snmp-trap-listener-in-node/
Это меня смущает, потому что мы, кажется, используем как dgram, так и eventEmitter для прослушивания ловушек. Я, конечно, смущен тем, как отправить ловушку.