Zabbix5由浅入深之snmptrap探索(上),


网络领域的监控离不开SNMP协议,但是随着规模的增大以及对监控要求越来越高,对监控的性能和告警的及时性也随之增高,snmptrap作为主动推送的模式,而且及时性相比于snmp方式要高得多,snmtrap文章一共有两篇,第一篇是如何使用snmptrap推送至Zabbix,第二篇详细讲实战怎么使用。

正文

环境

  • Zabbix版本:5.2
  • snmptt版本:1.4.2(目前最新为1.5.1beta)
  • 网络设备:华为CE6855
  • 系统版本:CentOS 8.3

安装必备条件

  1. dnf -y install net-snmp net-snmp-utils net-snmp-perl 

启动snmptrapd

  1. systemctl start snmtrapd && systemctl enable snmtrapd 

交换机配置(以华为交换机为例)

其他的品牌设备请咨询查询官方文档或其他教程

  1. snmp-agent target-host trap address udp-domain 10.0.0.71 params  securityname huawei@123 v2c 

调整snmptrapd配置

  1. vi /etc/snmp/snmptrapd.conf 
  2. authCommunity log,execute,net huawei@123 
  3. ####重启snmptrapd服务 
  4. service snmptrapd restart 

  

效果

由于CentOS 8最小化安装版本不自带/var/log/message,所以需要安装相关软件包,此时模拟登录交换机,同时查看日志。

  1. dnf -y install rsyslog 
  2. service restart rsyslog 
  3. tail -f /var/log/messages 

  

交换机登录trap信息

安装snmptt

首先我们要搞清楚为什么装这个软件,Zabbix在实现snmptrap有两个条件,第一个是能收集和记录snmptrap信息的程序,这个程序就是snmptrapd,第二个是需要把这些信息发送到Zabbix server,这个软件是snmptt,当然也可以是perl脚本,本篇文章以snmptt为例

CentOS 8安装步骤比较复杂,如果是centos7(需要epel源)直接安装即可

  1. ####下载snmptt包#### 
  2. wget https://nchc.dl.sourceforge.net/project/snmptt/snmptt/snmptt_1.4.2/snmptt_1.4.2.tgz --no-check-certificate 
  3. ####解压该包#### 
  4. tar -zxvf snmptt_1.4.2.tgz 
  5. ####复制相关文件至指定文件夹 
  6. cp snmptt_1.4.2/snmptt /usr/sbin/snmptt 
  7. cp snmptt_1.4.2/snmptthandler /usr/sbin/snmptthandler 
  8. cp snmptt_1.4.2/snmptt.ini /etc/snmp/snmptt.ini 
  9. cp snmptt_1.4.2/examples/snmptt.conf.generic /etc/snmp/snmptt.conf 
  10. cp snmptt_1.4.2/snmptt-init.d /etc/rc.d/init.d/snmptt 
  11. cp snmptt_1.4.2/snmptt.logrotate /etc/logrotate.d/snmptt 
  12. ####解决依赖环境问题#### 
  13. dnf -y install perl-CPAN perl-Text-Balanced perl-Sys-Syslog  
  14. perl -MCPAN -e 'install Config::IniFiles' 
  15. ####创建snmptt相关用户#### 
  16. groupadd snmptt 
  17. useradd  -c "SNMP Trap Translator" -g snmptt  -d /var/spool/snmptt  snmptt -s /sbin/nologin 

 修改snmptrapd配置文件

  1. vi /etc/snmp/snmptrapd.conf 
  2. traphandle default /usr/sbin/snmptthandler 

  

指定snmptt为接收器

修改snmptt配置文件

需要修改以下三处

  1. date_time_format=  %Y/%m/%d %H:%M:%S 
  2. net_snmp_perl_enable = 1 
  3. translate_log_trap_oid = 2     # 0:数字形式显示OID,1:显示OID名称,2:显示OID所属模块名及其名称    

 Zabbix Server开启snmptrap

  1. vi /etc/zabbix/zabbix_server.conf 

  

重启相关服务

  1. service snmptt restart 
  2. service snmptrapd restart 
  3. service zabbix-server restart 

 创建log文件

  1. mkdir /var/log/snmptt 
  2. touch /var/log/snmptt/snmptt.log 
  3. chown snmptt:snmptt 

 配置数据处理格式

这里做完后记得重启snmptt服务

  1. vim /etc/snmp/snmptt.conf 
  2. EVENT general .* "General event" Normal 
  3. FORMAT ZBXTRAP $aA $ar 

  

测试

依然是登录设备测试

前端添加监控项

此处使用的模板为Generic SNMP模板,自带snmptrap监控项,仅仅测试

此时已经可以看到相关数据了

写在最后

snmptrap最大的好处就是由设备推送至Zabbix Server,保证了及时性,那么下期我会详细来讲实战中该怎么使用,谢谢。

相关内容