zabbix配置snmp trap--使用snmptrapd和Bash接收器--图文教程

1.前言

我的zabbix的版本是5.0版本,5.0的官方文档没有使用bash接收器的示例,6.0的官方文档有使用bash接收器的示例,但是,下载文件的链接失效?!
这里讲解zabbix-server端配置和zabbix web端配置

2.zabbix-server端配置文件

执行第一步前,不管有没有用都去下载一下这些文件:yum install −y --nogpgcheck net-snmp-utils net-snmp-perl net-snmp

  • (感谢评论为大佬指正) gpgcheck主要为了软件下载使用的安全。gpg采用的是非对称加密方式,简单理解就是用公钥加密文件,用私钥解密文件。因为使用yum下载软件的时候会对下载下来的文件做校验,校验时使用的就是对应的公钥,–nogpgcheck就是关闭校验。

(1)配置Zabbix启动SNMP trapper并设置存放trap的文件

vim /etc/zabbix/zabbix_server.conf
StartSNMPTrapper=1
SNMPTrapperFile=/var/lib/zabbix/snmptraps/snmptraps.log
注意看下面

1./var/lib/zabbix/snmptraps/这个路径要存在(也可自己另找路径存储)(没有自己去mkdir一下:mkdir -p /var/lib/zabbix/snmptraps);
2.snmptraps.log这个也要存在(没有自己去创建一个);
3.!!!!!最重要的是:“/var/lib/zabbix/snmptraps/snmptraps.log”要和接下来第二步里面的zabbix_trap_handler.sh里面的“ZABBIX_TRAPS_FILE=“/var/lib/zabbix/snmptraps/snmptraps.log” ”一致!!!!

(2)编辑添加/usr/sbin/zabbix_trap_handler.sh

官网给的这个命令:curl -o /usr/sbin/zabbix_trap_handler.sh https://raw.githubusercontent.com/zabbix/zabbix-docker/6.2/Dockerfiles/snmptraps/alpine/conf/usr/sbin/zabbix_trap_handler.sh–但是看着博客的你多半不行

所以看我这儿操作:vim /usr/sbin/zabbix_trap_handler.sh

把代码复制进去zabbix_trap_handler.sh

ZABBIX_TRAPS_FILE="/var/lib/zabbix/snmptraps/snmptraps.log"

ZBX_SNMP_TRAP_DATE_FORMAT=${ZBX_SNMP_TRAP_DATE_FORMAT:-"+%Y%m%d.%H%M%S"}

ZBX_SNMP_TRAP_FORMAT=${ZBX_SNMP_TRAP_FORMAT:-"\n"}

date=$(date "$ZBX_SNMP_TRAP_DATE_FORMAT")

# The name of the host that sent the notification, as determined by gethostbyaddr(3).
# In fact this line is irrelevant and useless since snmptrapd basically attempts to
# perform reverse name lookup for the transport address (see below).
# In case of failure it will print "<UNKNOWN>"
read host
# The transport address, like "[UDP: [172.16.10.12]:23456->[10.150.0.8]]"
read sender
# The first OID should always be SNMPv2-MIB::sysUpTime.0
#read uptime
# the second should be SNMPv2-MIB::snmpTrapOID.0
#read trapoid

# The remaining lines will contain the payload varbind list. For SNMPv1 traps, the final OID will be SNMPv2-MIB::snmpTrapEnterprise.0.
vars=
while read oid val
do
    if [ "$vars" = "" ]
    then
        vars="$oid = $val"
    else
        vars="$vars$ZBX_SNMP_TRAP_FORMAT$oid = $val"
    fi

    if [[ "$oid" =~ snmpTrapAddress\.0 ]] || [[ "$oid" =~ 1\.3\.6\.1\.6\.3\.18\.1\.3\.0 ]]; then
        trap_address=$val
    fi
done

[[ ${sender} =~ \[(.*?)\].*\-\> ]] && sender_addr=${BASH_REMATCH[1]}

! [ -z $trap_address ] && sender_addr=$trap_address

echo -e "$date ZBXTRAP $sender_addr$ZBX_SNMP_TRAP_FORMAT$sender$ZBX_SNMP_TRAP_FORMAT$vars" >> $ZABBIX_TRAPS_FILE
  • 赋予权限给sh文件,(这一点也感谢评论区大佬指正),a+x就行但是图方便就直接777吧
 chmod 777  /usr/sbin/zabbix_trap_handler.sh

(3)将以下内容添加到snmtrapd.conf

vim /etc/snmp/snmptrapd.conf
traphandle default /bin/bash /usr/sbin/zabbix_trap_handler.sh
authCommunity log,execute,net public
注意看下面

1.“authCommunity log,execute,net public”中“public”这里需要替换为你自己的snmp团体字

(4)重新启snmptrapd服务

systemctl restart snmptrapd.service

(5)测试

snmptrap -v 2c -c public 192.168.0.50:162 "" .1.3.6.1.2.1.1.1.0 SysDesc s "test from snmptrap tool"

然后cat /var/lib/zabbix/snmptraps/snmptraps.log,结果如下图所示
在这里插入图片描述

3.zabbix-web配置监控

添加监控项

在这里插入图片描述

去最新数据看

在这里插入图片描述

SNMPTrapD是一个网络管理协议SNMP(Simple Network Management Protocol,简单网络管理协议)的一部分,它主要用于监控和管理网络设备。SNMPTrapD主要负责接收来自网络设备(如交换机、路由器)的陷阱消息(Trap),这些消息包含了设备状态变化或异常情况的信息。管理员可以通过监控这些陷阱来及时了解网络状况,并采取相应的管理动作。 当设备检测到某些预定义的事件(比如硬件故障、性能阈值达到等),它会发送一个SNMP Trap消息给SNMPTrapD服务。SNMPTrapD接收到这些消息后,会在指定的日志文件或监控系统中记录下来,供管理员查看和分析。 使用SNMPTrapD的基本步骤包括: 1. **配置陷阱源**:在设备上设置SNMP trap的相关参数,如发送陷阱的目标IP地址(通常是SNMPTrapD服务器的地址)和端口,以及要发送的陷阱类型。 2. **启动SNMPTrapD服务**:在Linux或Unix-like系统上,通常是作为守护进程运行(例如,在Ubuntu上可能使用`sudo service snmptrapd start`)。 3. **配置接收陷阱规则**:在SNMPTrapD配置文件中,可以设置接收陷阱的过滤规则,只处理特定类型的陷阱。 4. **监视和响应**:通过SNMP查询工具(如snmpwalk, snmpget)检查陷阱日志,或者配置第三方监控工具如Nagios、Zabbix等来自动收集和报警。 5. **安全考虑**:确保SNMPTrapD服务配置了适当的安全措施,比如使用加密并限制只有授权的用户才能访问。 相关问题: 1. SNMPTrapDSNMP之间是什么关系? 2. 如何在Linux系统中查看SNMPTrapD配置文件? 3. 如何设置SNMPTrapD来接收特定设备的陷阱?
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值