SNMPTrap监控主要用于设备发生故障时的主动通知的监控。以下简单记录下Zabbix的SNMPTrap的配置方法。

一、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脚本代替):

二、Linux的Zabbix服务器上的SNMPTrap的配置设定

环境说明:

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

1.首先我们需要在ZabbixServer上安装SNMPTrapd(即NET-SNMP)来接收监控对象发送来的SNMPTrap信息。

1)首先安装SNMPTrapd(NET-SNMP),
  1. # yum install -y net-snmp net-snmp-utils net-snmp-perl
 

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

  1. # 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的启动脚本的选项
  1. # 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自动启动并重新启动服务
  1. # chkconfig snmptrapd on
  2. # service snmptrapd restart

2.同样在ZabbixServer上安装设置SNMPTrap信息的处理器(这里采用SNMPTT方式进行)

1)安装SNMPTT(这里采用yum安装方式进行)
  1. # rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  2. # yum install snmptt
### 以上的rpm可以根据OS的版本选择合适的yum库进行安装。

2)配置SNMPTT,设置基本信息

  1. # 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进行配置。
  1. # touch /etc/snmp/snmptt.conf
  2. # vim /etc/snmp/snmptt.conf
添加如下内容:
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $1

#### 以上是设置的是表示默认规则,即没有其他匹配规则时,所有trap信息都将按照以上规则处理,

#### (OID信息为:[.1.3.6.1.4.1.232.0.11001],而[.*]匹配了所有OID信息)
 
备注:
为了和Zabbix做连接需要,snmptt.conf中的配置具有一定的规则,这将在其他文章另行记录。
本文只简单说明为了实现Zabbix的SNMPTrap监控需要进行哪些设置。
不需要根据OID来具体区分的情况下,以上配置即足够了。
 
4)创建SNMPTrapperFile文件(默认为/var/log/snmptt/snmptt.log)
  1. # touch /var/log/snmptt/snmptt.log
  2. # chown snmptt:snmptt /var/log/snmptt/snmptt.log

5)配置以上日志轮询

yum安装的情况下默认已经配置好,无需再设置。这里将需要自己配置时的配置内容贴出来供参考。
  1. # 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自动启动并重新启动服务
  1. # chkconfig snmptt on
  2. # service snmptt restartr

以上SNMPTT的配置即结束。

 
 

3.配置Zabbix以接收/读取SNMPTrapperFile的信息

1)启用SNMPTRAP监控并指定SNMPTrapperFile信息
  1. # vim /usr/local/zabbix/etc/zabbix_server.conf

#### 以上文件路径可能和安装方式不同所有不同,需要根据具体情况而定。

修改如下内容:
StartSNMPTrapper=1
SNMPTrapperFile=/var/log/snmptt/snmptt.log

#### SNMPTrapperFile文件可根据具体情况进行修改
 
2)重启Zabbix服务
  1. # service zabbix_server restart

三、在Zabbix系统上进行配置监控

1、创建监控对象

  可新规创建监控对象,也可直接在已有的对象上添加一个SNMP接口:
 
另外,在SNMPTrap中配置的community信息需要和监控对象上配置的一致,和默认值不一样时可以在Macros中使用{$SNMP_COMMUNITY}进行指定。
 

2、创建ITEM

有两种ITEM可以创建,一种是SNMPTrap[regexp]以及SNMPTrap.fallback两种,
本文以上的例子则可创建2个ITEM,一个是SNMPTrap[regexp]格式的内容:
另一个是SNMPTrap.fallback,表示未匹配的值全部识别为该ITEM
 
 
 
 
这个配置接完成了。

四、测试以上配置是否成功

在被监控对象上发送测试的命令或者是图形界面的话也发送测试消息。
以下是使用命令发送测试消息的格式:
snmptrap -v <SNMP版本> -c <community名> <ZabbixServer的IP地址> '' <OID>[ s '文字消息>']
 
例如:
假设发送命令的被监控对象为192.168.1.1
  1. # snmptrap -v 2c -c public 192.168.0.1  '' .1.3.6.1.6.3.1.1.5.3
  2. # snmptrap -v 2c -c public 192.168.0.1  '' .1.3.6.1.6.3.1.1.5.4
  3. # snmptrap -v 2c -c public 192.168.0.1  '' .1.3.6.1.6.3.1.1.5.5
 

则在/var/log/snmptt/snmptt.log中显示的如下:

  1. # tail -f /var/log/snmptt/smmptt.log

显示内容如下:

2017/03/31 05:33:04 .1.3.6.1.6.3.1.1.5.3 Normal "Geranal event" 192.168.1.1 - ZBXTRAP 192.168.1.1 192.168.1.1
2017/03/31 05:34:24 .1.3.6.1.6.3.1.1.5.4 Normal "Gerenal event" 192.168.1.1 - ZBXTRAP 192.168.1.1 192.168.1.1
2017/03/31 05:34:26 .1.3.6.1.6.3.1.1.5.5 Normal "Gerenal event" 192.168.1.1 - ZBXTRAP 192.168.1.1 192.168.1.1

然后在Zabbix系统上配置的监控对象上,也可以看到以上配置的SNMPTrap的ITEM的值,类似如下:

以上,则表示能够正常收到信息,配置成功。

Zabbix的SNMPTrap监控配置的更多相关文章

  1. (33)zabbix proxy分布式监控配置

    概述 zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix pr ...

  2. 015.Zabbix的日志监控配置

    一 日志监控概述 Zabbix可用于集中监控和分析日志,支持有日志轮询的日志监控分析.当日志中出现相关警告信息(如警告.报错等),可以发送通知给用户.日志监控功能,必须满足以下两个条件: Zabbix ...

  3. zabbix web场景模拟监控配置

    一,zabbix2.2.3 VMware Vsphere exsi监控配置步骤, 1,添加监控主机 2,添加聚集macro;{$PASSWORD} = yoodo.com{$URL} = http:/ ...

  4. Zabbix通过进程名监控进程状态配置详解

    Zabbix通过进程名监控进程状态配置详解 有时候我们只能通过进程名监控一个进程是否停掉了,因为有的进程并没有对外提供端口号,以下记录了下详细步骤,通过这个示例会学到很多zabbix核心配置相关的东西 ...

  5. 05: zabbix 监控配置

    目录:zabbix其他篇 01: 安装zabbix server 02:zabbix-agent安装配置 及 web界面管理 03: zabbix API接口 对 主机.主机组.模板.应用集.监控项. ...

  6. zabbix监控配置一般流程

    目录 zabbix监控配置流程 1. 配置客户端 2. 配置监控 2.1 创建主机组 2.2 添加主机并加入主机组 2.3 添加监控项 2.3.1 模板的方式(不用添加触发器) 2.3.2 手动添加的 ...

  7. Grafana + Zabbix --- 部署分布式监控系统

    阅读目录: 1. 关闭防火墙 2. 安装Zabbix下载源 3. ZabbixClient  --- 安装zabbix-agent代理 4. ZabbixServer --- 安装zabbix-ser ...

  8. zabbix 添加jvm监控

    1. zabbix 服务端安装,监控jmx 需要--enable-java zabbix 客户端不需要 --enable-java 2.zabbix_server端安装jdk 安装jdk [root@ ...

  9. zabbix linux被监控端部署

    测试使用agentd监听获取数据. 服务端的安装可以查看http://blog.chinaunix.net/space.php?uid=25266990&do=blog&id=3380 ...

随机推荐

  1. CentOS 7 单用户模式修改root密码

    1)在启动grub菜单,选择编辑选项启动 2)按键盘e键,来进入编辑界面 3)找到Linux 16的那一行,将ro改为rw init=/sysroot/bin/sh 4)现在按下Control+x,使 ...

  2. kuangbin带你飞 后缀数组 题解

    2份模板 DC3 . 空间复杂度O3N 时间复杂度On #define F(x) ((x) / 3 + ((x) % 3 == 1 ? 0 : tb)) #define G(x) ((x) < ...

  3. Launcher3自定义壁纸旋转后拉伸无法恢复

    MTK8382/8121平台. 描述:将自定义图片设置成壁纸后,横屏显示时,旋转为竖屏,图片由于分辨率过小,会拉伸:再旋转为横屏,拉伸不恢复. 这两天正在解这个问题,研究了很久,走了不少弯路,最后发现 ...

  4. 【MT8382/8121】使用绝对路径编译模块会导致recourse_overlay无法应用的问题

    之前为了方便mm模块编译,写了个脚本,实现了在任意模块其子目录下执行脚本即可编译的功能. 其实原理就是一层一层目录地往上寻找Android.mk文件,找到存放Android.mk目录后,就把该目录当作 ...

  5. python几个重要的函数(lambda,filter,reduce,map,zip)

    一.匿名函数lambda lambda argument1,argument2,...argumentN :expression using arguments 1.lambda是一个表达式,而不是一 ...

  6. 如何用sqlplus执行sql脚本,且让出错后及时退出sqlplus

    按sqlplus常规作法,是要登陆,输入用户名和密码才能操作的. 并且,如果不作特别设置,SQL脚本里的部门语句有问题后,它还是会坚持执行完成其余的SQL的. 为了安全和自动化,得改进一下了. sql ...

  7. linux基础学习目录

    以下用一个表格来罗列linux默认的目录或文件及其用途: 目录/文件 用途 来源 / /处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录.文件.设备都在/之下. - / ...

  8. linux+win7双系统重装win7修复grub的办法

    本人是debian+win7的双系统, 下面介绍下重装win7的整个过程以及遇到的一些小问题,在查阅相关博客和朋友的帮助下成功修复, 记录下以便以后有不时之需, 也希望能帮助到遇到同样问题的朋友! 首 ...

  9. C#在 64位系统下出现 “未能加载文件或程序集”错误

    64位系统下,Build的时候,如果选择Any CPU,默认会按照64位进行编译,便无法加载某些旧的dll,这些dll可能是特定到X86 CPU的. 所以,把编译选项中改为 X86CPU,就可以运行了 ...

  10. js 之面向对象

    对象 是什么? 对象就是一个整体,对外提供一些操作,比如:电视机(不用知道内部的构造,只知道怎么用) 面向对象 是什么? 使用对象时,只关注对象提供的功能,不关心内部细节,比如:操作电视机(只知道用遥 ...