Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52348
  • 博文数量: 19
  • 博客积分: 870
  • 博客等级: 准尉
  • 技术积分: 230
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-22 16:51
文章分类

全部博文(19)

文章存档

2013年(1)

2011年(1)

2009年(17)

我的朋友

分类: 系统运维

2009-04-04 14:59:47

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 ###########

调试可:

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)

阅读(1544) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~