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
  1.  
  1.  
### 某些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

显示内容如下:

  1. 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. bzoj 2435 BFS

    我们可以先将无根树变成有根树,随便选一个点当根就行了,我们选1,bfs求出来每个点 的size值,代表以它为根节点的子树中有多少个节点,(dfs可能会爆栈),然后再对于每一条 边算就好了 我tle了, ...

  2. guake终端复制标签页

    平时习惯用的终端是下拉式终端guake,开多个标签各司其职,热键一按,呼之即来,挥之即去. 但用一个东西,就难免会有不爽的地方,比如每次想复制一个标签页,就要3步,1 新建标签页, 2 切换到之前的路 ...

  3. For循环中不可以嵌套RDD操作

    今天犯了一个致命理解错误,Spark中的RDD Map操作只是一个计算式的传递,并不是Action,也就是在for循环中不会产生真正的计算. 因此,如果for循环中出现了RDD的Map类似操作,都会引 ...

  4. testng+IEDriverServer+yum+tomcat下载软件包

    testng框架链接:http://files.cnblogs.com/files/linxinmeng/testng%EF%BC%88selenium%E6%A1%86%E6%9E%B6%EF%BC ...

  5. Selenium2+python自动化70-unittest之跳过用例(skip)【转载】

    前言 当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例. 或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例 ...

  6. docker从零开始网络(二)桥接网络

    使用桥接网络 在网络方面,桥接网络是链路层设备,它在网络段之间转发流量.桥接网络可以是硬件设备或在主机内核中运行的软件设备. 就Docker而言,桥接网络使用软件桥接器,该软件桥接器允许连接到同一桥接 ...

  7. django学习随笔:ManagementUtility

    ManagementUtility类,位于django.core.management目录下的__init__.py文件. 这个类,在其init中: def __init__(self, argv=N ...

  8. Swagger 2.0 摘要

    官网地址:http://springfox.github.io/springfox/docs/current/

  9. 描述一下JVM加载class文件的原理机制

    Java中的所有类,都需要由类加载器装载到JVM中才能运行.类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中.在写程序的时候,我们几乎不需要关心类的加载,因为这些都是隐式装载的 ...

  10. (2)三剑客之grep

    1)grep和egrep定义grep:在文件中全局查找指定的正则表达式,并打印所有包含该表达式的行egrep:扩展的egrep,支持更多的正则表达式元字符2)命令格式语法:grep [选项] patt ...