前言
由于公司网络架构原因,需要设置中间转发服务器来接收和转发snmp trap告警命令。那么实现中间服务器转发的思路如下:
(1)受管方、转发服务器和管理方需要安装snmp。
(2)转发服务器需要接收snmptrap告警命令
(3)转发服务器接收告警命令后自动触发perl脚本进行告警处理并转发
本文主要讲解转发服务器的snmptrap告警的接收和转发配置。
步骤
一、安装snmp
二、转发服务器配置
1、配置snmptrapd.conf文件。
打开snmptrapd.conf文件:
vi /etc/snmp/snmptrapd.conf
配置命令如下:
authcommunity execute,log,net public
disableAuthorization yes
traphandle .1.3.6.1.4.1.2021.251.1 /root/traptest/test.pl
2、编写test.pl脚本。
我这里用的是perl脚本进行转发(具体语法可参考 ),你也可以采用其他语言。
use strict;
my $file="file.trap";
open(HANDOUT,">>$file");
my $str2="SNMPv2-MIB::sysLocation.0";
while(<STDIN>){
print HANDOUT "$_";
if("$_" =~ "SNMPv2-MIB::sysLocation.0"){
print HANDOUT "已经转发";
}
}
3、设置默认配置文件。
将此配置文件设置为默认配置文件,并启动snmptrapd进程:
snmptrapd -c /etc/snmp/snmptrapd.conf
三、测试
1、转发服务器启动snmp服务。
启动snmp服务并显示详细信息
snmptrapd -d -f -Lo
2、受管方发送snmptrap测试告警。
snmptrap报文:
snmptrap -v 2c -c public 10.0.0.214:162 "" .1.3.6.1.4.1.2021.251.1 sysLocation.0 s "this is test"
3、转发服务器接收如下信息。
显示如下信息,则证明就收成功
总结
snmp和perl安装可以参考我的其他文章,如有问题欢迎留言讨论。