Zabbix自定义SNMP监控项监控路由器CPU温度
Zabbix添加监控项通过SNMP监控Openwrt路由器CPU温度
前几篇文章使用了SNMP监控Openwrt路由器的运行状态,但是没有CPU温度
本次将CPU温度添加到SNMP中,实现自定义SNMP并通过zabbix进行记录数据
Zabbix官方监控值预处理介绍:
https://www.zabbix.com/documentation/6.0/zh/manual/config/items/preprocessing
配置Openwrt的snmpd
修改snmpd配置文件
Openwrt的snmp配置文件不是/etc/snmp/snmpd.conf
这个文件是根据/etc/config/snmpd
这个配置文件生成的,Openwrt基本上所有配置都在/etc/config
里
在/etc/config/snmpd
最后添加
1 | config exec |
重启snmpd服务
1 | /etc/init.d/snmpd restart |
snmpwalk获取信息
1 | snmpwalk -v2c -c public -v 1 10.10.0.1 .1.3.6.1.4.1 |
可以得到的重要信息
1 | iso.3.6.1.4.1.2021.8.1.2.1 = STRING: "filedescriptors" #openwrt的snmpd配置文件自带的,不重要 |
由此可以获得iso.3.6.1.4.1.2021.8.1.101.2这个OID是我们路由器的温度,实际上是43.68
但要注意这里cat获得值的类型是STRING字符型,接入zabbix统计最好用数值。cat /sys/class/thermal/thermal_zone0/temp | grep -Eo '[0-9]+'
通过正则表达式输出的是数值型,但遗憾的是我把这条命令加入CPUtemp的option args不起作用。可能需要写一下脚本,然后通过option args调用脚本可能获取到的是数值类型,我这里没有尝试过。
所以这里将类型转换交给Zabbix,openwrt配置到此结束
配置Zabbix
配置Zabbix的监控项以及数据预处理
首先在配置-模板
中创建一个模板,这里我为openwrt的cpu温度单独添加一个模板,不会影响到使用中的Linux by SNMP模板,也为了方便以后添加更多的Openwrt的监控项。
创建模板名称和绑定群组,创建监控项
监控项
1 | 名称 Linux: CPU Temperature |
标记
1 | 名称 值 |
预处理
1 | 预定步骤 名称 参数 |
将模板绑定主机
将模板绑定主机上,找到 Linux: CPU Temperature
立刻执行,随后在最新数据查看即可
效果图为本文章封面