NAME
AnyEvent::SNMP::TrapReceiver - SNMP trap receiver by help of AnyEvent
SYNOPSIS
use AnyEvent::SNMP::TrapReceiver;
my $cond = AnyEvent->condvar;
my $echo_server = AnyEvent::SNMP::TrapReceiver->new(
bind => ['0.0.0.0', 162],
cb => sub {
my ( $trap) = @_;
},
);
my $done = $cond->recv;
DESCRIPTION
This is a wrapper for the AnyEvent::Handle::UDP with embedded SNMP trap decoder.
Currently only v1 and v2c traps are supported.
The trap decoder code was copied from Net::SNMPTrapd by Michael Vincent.
ATTRIBUTES
bind
The IP address and port to bind the UDP listener/handle.
cb
The codeblock to be called when a trap is received.
TIPS&TRICKS
The default port for SNMP traps is 162. In Linux ports below 1024 are privileged ports and typically only root can acccess these ports. If you don't want to run your script as root user you can use
iptables -A PREROUTING -t nat -i eth0 -p udp -m udp --dport 162 -j REDIRECT --to-ports 1162
to redirect the port. You can go even further and redirect only traps from specific sources to your app
iptables -A PREROUTING -t nat -i eth0 -s 192.168.33.16/32 -p udp -m udp --dport 162 -j REDIRECT --to-ports 1162
LICENSE
Copyright (C) Bojan Ramšak.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
Bojan Ramšak <bojanr@gmx.net>