Zabbix-server SNMPTrap扩展

Zabbix-server SNMPTrap扩展

一、原理介绍:

SNMPTrap监控主要用于设备发生故障时的主动通知的监控。以下简单记录下Zabbix的SNMPTrap的配置方法。
1.监控对象发送SNMPTrap信息到snmptrapd(Net-SNMP)服务器。

2.snmptrapd服务器将接收到的SNMPTrap信息发送给SNMPTT(或者Perl trap receiver)。

3.NMPTT(或者Perl trap receiver)将按照指定的数据格式将SNMPTrap信息写入SNMPTrapperFile。

4.Zabbix服务器的snmptrapper进程将读取SNMPTrapperFile的内容,对其进行解析,将值传递给对应的监控对象,并保存数据到DB。

※流程参考下图(使用SNMPTT的地方均可使用Perl trap seceiver脚本代替):
在这里插入图片描述

二、使用步骤:

ZabbixServer的环境是CentOS release 6.5 (Final),SNMPTrapd,SNMPTT等全部在ZabbixServer上进行设置。

1)首先安装SNMPTrapd(NET-SNMP)

 #yum install -y net-snmp net-snmp-utils net-snmp-perl

2)接来下设置SNMPTrap的Community名称自己处理SNMPTrap信息的处理器(或者说处理方法):

#vim /etc/snmp/snmptrapd.conf

添加如下内容:

authCommunity log,execute,netpublic

**配置community名称,这里设置为public, 也进行用认证:disableAuthorization yes

traphandle default /usr/sbin/snmptthandler

配置SNMPTrap信息的处理器,这设置为SNMPTT,也可以设置成其他Perl脚本处理,比如 比如perl do "/usr/local/zabbix/bin/zabbix_trap_receiver.pl "
3)设置SNMPTrapd的启动脚本的选项

   #vim /etc/init.d/snmptrapd

某些OS版本的路径可能是/etc/rc.d/init.d/snmptrapd
更改如下内容:

OPTIONS="-Lsd -p /var/run/snmptrapd.pid"(更改成如下) 
OPTIONS="-On -Lsd -p /var/run/snmptrapd.pid"

####根据SNMPTT的文档说明,由于版本问题,可能会导致MIB文件无法正确翻译,所以最好是加上-On参数。

参考文件

http://snmptt.sourceforge.net/docs/snmptt.shtml#Installation-Overview
####Note: The -On is recommended. This will make snmptrapd pass OIDs in numeric form and prevent SNMPTT from having to translate the symbolic name to numerical form. If the UCD-SNMP / Net-SNMP Perl module is not installed, then you MUST use the -On switch. Depending on the version of UCD-SNMP / Net-SNMP, some symbolic names may not translate correctly. See the FAQ for more info.

4)设置SNMPTrapd自动启动并重新启动服务

#chkconfig snmptrapd on # service snmptrapd restart

二、安装SNMPTT

1)安装SNMPTT(这里采用yum安装方式进行)

#rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # yum install snmptt

###以上的rpm可以根据OS的版本选择合适的yum库进行安装。
2)配置SNMPTT,设置基本信息
###以上的rpm可以根据OS的版本选择合适的yum库进行安装。

#vim /etc/snmp/snmptt.ini修改如下内容:

date_time_format= %Y/%m/%d %H:%M:%S
####设置时间格式,读取的SNMPTrap信息之后写入SNMPTrapperFile里的时间格式,也是ZabbixTrapper读取时的时间格式
syslog_enable = 0
####默认值为1,设置成0,表示不将日志记录入syslog,不过该参数为可选参数,可直接默认值即可。
 log_file = /var/log/snmptt/snmptt.log
 ####这里指定了SNMPTrapperFile,默认/var/log/snmptt/snmptt.log,无需更改。
[TrapFiles]
snmptt_conf_files = <<END
/etc/snmp/snmptt.conf
END

####这一段代码记录了使用那些规则文件处理SNMPTrap信息,默认值如上,简单处理中无需更改该配置。
####该文件可以设置成多个文件,在END之前添加文件即可。

3)设置处理数据的格式规则
这里只说最简单的例子,配置文件按照snmptt.ini的默认设置snmptt.conf进行配置。
添加如下内容:

EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $1
####(OID信息为:[.1.3.6.1.4.1.232.0.11001],而[.*]匹配了所有OID信息)

备注:
为了和Zabbix做连接需要,snmptt.conf中的配置具有一定的规则,这将在其他文章另行记录。
本文只简单说明为了实现Zabbix的SNMPTrap监控需要进行哪些设置。
不需要根据OID来具体区分的情况下,以上配置即足够了。

4)创建SNMPTrapperFile文件(默认
为/var/log/snmptt/snmptt.log)

#touch /var/log/snmptt/snmptt.log # chown snmptt:snmptt /var/log/snmptt/snmptt.log

5)配置以上日志轮询
yum安装的情况下默认已经配置好,无需再设置。这里将需要自己配置时的配置内容贴出来供参考。

#vim etc/logrotate.d/snmptt里面内容如下:
/var/log/snmptt/snmptt*.log /var/log/snmptt/snmptthandler.debug { weekly       notifempty missingok } /var/log/snmptt/snmptt.debug { weekly notifempty missingok postrotate /etc/init.d/snmptt reload >/dev/null 2>/dev/null || true endscript }

6)设置SNMPTT自动启动并重新启动服务

#chkconfig snmptt on # service snmptt restartr 以上SNMPTT的配置即结束。

三、启用SNMPTRAP监控并指定SNMPTrapperFile信息

1)启用SNMPTRAP监控并指定SNMPTrapperFile信息

#vim /usr/local/zabbix/etc/zabbix_server.conf#### 以上文件路径可能和安装方式不同所有不同,需要根据具体情况而定。

修改如下内容:

StartSNMPTrapper=1
SNMPTrapperFile=/var/log/snmptt/snmptt.log
####SNMPTrapperFile文件可根据具体情况进行修改

2)重启Zabbix服务

#service zabbix_server restart
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页