zabbix中snmp-traps设置解析如下:
It works something like this:
(SNMP Trap) -> snmptrapd -> snmptrap.sh -> zabbix_sender -> (Zabbix)
Basically, the point of snmptrap.sh is to translate a SNMP trap into a Zabbix trap
在/etc/snmp/snmptrapd.conf文件添加
traphandle default /bin/bash /path/to/zabbix/bin/snmptrap.sh
启动snmptrapd服务:
snmptrapd -C -c /etc/snmp/snmptrapd.conf -Lf /var/log/net-snmptrap.log
Now edit /path/to/zabbix/bin/snmptrap.sh. If not found, check the zabbix source tree, and
copy it to the zabbix/bin directory. For my application the following lines work great:
####### Begin snmptrap.sh #########
## GENERAL CONFIGURATION
ZABBIX_SERVER="zabbix-host"; # hostname of zabbix server
ZABBIX_PORT="nnnn"; # nnnn=same as 'Listen Port' in zabbix_server.conf
ZABBIX_SENDER="/path/to/zabbix/bin/zabbix_sender"; # insert you path
## END OF GENERAL CONFIGURATION
#According to the snmpdtrapd.conf man page, these
# fields should be received in the following order:
read hostname
read ip
read uptime
read trapoid
read payload
# there may be several more payload fields, but one is all I need.
# read more if it suits you.
hostname=`echo $hostname|cut -f1 -d'.'` # trim off the fluff
trapoid=`echo $trapoid|cut -f3 -d' '` # ditto
# I don't need uptime or ip right now ...
payload=`echo $payload1|cut -f3- -d' '` # ditto ditto
### This section records all traps under a 'dummy' host in zabbix, for debugging
### Delete if you don't need to do this.
### I use it to verify the OID of traps before using them as keys on specific hosts
# create a string to send to zabbix.
str="HOST=$hostname TRAP OID=$trapoid PAYLOAD=$payload"
# now set the key and host name for zabbix
KEY="alltraps";
HOST="trapperjohn";
#now call the zabbix_sender program with all parameters.
$ZABBIX_SENDER $ZABBIX_SERVER $ZABBIX_PORT $HOST $KEY "$str"
### End dummy host section
### This section records traps for specific for specific hosts.
### Edit as needed for you situation.
KEY="$trapoid";
HOST="$hostname";
str="$payload";
$ZABBIX_SENDER $ZABBIX_SERVER $ZABBIX_PORT $HOST $KEY "$str"
######### End snmptrap.sh ###########
#p#
调试可:
echo $ZABBIX_SENDER $ZABBIX_SERVER $ZABBIX_PORT $HOST:$KEY "$str" > /tmp/testtrap.txt
测试:
snmptrap -v1 -cpublic localhost .1.3.6.1.6.3.1.1.5.2 0 0 "" "" .1.3.6.1.4.1 s "aaa"
在zabbix服务器端:
1. Added host:
name=snmpTraps
ip address = (didn't enter an ip address)
port = 10005 (port which zabbix server is on) - do i need to set this to 162?
Set status to monitored....didn't add anything else eg IP address, group etc
2. Added item to host (i.e to snmpTraps)
key=snmpTraps
type=zabbix trapper
type of info=numeric
store value=As is
Allowed host= (i have left this line blank)
手动起来完成了zabbix中snmp-traps设置环节,我们就可以配置其他zabbix了!
【编辑推荐】