目录
- 前言
- 步骤
- 一、安装snmp
- 二、转发服务器配置
- 1、配置snmptrapd.conf文件。
- 2、编写test.pl脚本。
- 3、设置默认配置文件。
- 三、测试
- 1、转发服务器启动snmp服务。
- 2、受管方发送snmptrap测试告警。
- 3、转发服务器接收如下信息。
- 总结
前言
由于公司网络架构原因,需要设置中间转发服务器来接收和转发snmp trap告警命令。那么实现中间服务器转发的思路如下:
(1)受管方、转发服务器和管理方需要安装snmp。
(2)转发服务器需要接收snmptrap告警命令
(3)转发服务器接收告警命令后自动触发perl脚本进行告警处理并转发
本文主要讲解转发服务器的snmptrap告警的接收和转发配置。
步骤
一、安装snmp
二、转发服务器配置
1、配置snmptrapd.conf文件。
打开snmptrapd.conf文件:
vi /etc/snmp/snmptrapd.conf
配置命令如下:
# authcommunity是为了设置所有用户的访问权限:可执行,记录,传递。
authcommunity execute,log,net public
disableAuthorization yes
# 设置traphandle(即收到.1.3.6.1.4.1.2021.251.1类OID信息时,执行test.pl)。
traphandle .1.3.6.1.4.1.2021.251.1 /root/traptest/test.pl
2、编写test.pl脚本。
我这里用的是perl脚本进行转发(具体语法可参考 菜鸟教程),你也可以采用其他语言。
#!/usr/bin/perl
use strict;
my $file="file.trap";
open(HANDOUT,">>$file");
my $str2="SNMPv2-MIB::sysLocation.0";
# 逐行获取trap告警信息
while(<STDIN>){
# 将信息添加至file.trap
print HANDOUT "$_";
# 判断如果SNMPv2-MIB::sysLocation.0在其中,则转发信息至受管方
if("$_" =~ "SNMPv2-MIB::sysLocation.0"){
#转发命令自己根据需求配置
#system("snmptrap -v 2c -c public 192.168.182.129:162 \"\" .1.3.6.1.4.1.2021.251.1 sysLocation.0 s \"this is test\"");
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、转发服务器接收如下信息。
显示如下信息,则证明就收成功
查看file.trap文件显示如下信息证明转发完成:
总结
snmp和perl安装可以参考我的其他文章,如有问题欢迎留言讨论。
更多推荐
linux环境snmptrap告警命令中间服务器接收和转发配置
发布评论