从zabbix6.0开始,modbus成为了官方的默认集成,modbus协议广泛的用于工业设备。
本文前提:zabbix6.0服务器,zabbix 6.0 agent2主机,一个运行modbus slave软件(一款modbus仿真软件,本例中用其输出modbus tcp协议)的windows主机
实际中一般需要串口服务器+modbus设备,将modbus rtu协议转换为modbus tcp协议。
1.检查agent2主机的zabbix agent2的配置文件
/etc/zabbix/zabbix_agent2.conf
默认应有
Include=/etc/zabbix/zabbix_agent2.d/*.conf
2.编辑agent的配置文件或插件配置文件
vim /etc/zabbix/zabbix_agent2.d/plugins.d/modbus.conf
定义以下参数:
Plugins.Modbus.Sessions.
Plugins.Modbus.Sessions.
Plugins.Modbus.Timeout
举例(slaveip换成运行modbus slave的windows客户端主机ip)
Plugins.Modbus.Sessions.MB1.Endpoint=tcp://slaveip:502
Plugins.Modbus.Sessions.MB1.SlaveID=1
Plugins.Modbus.Sessions.MB1.Timeout=3
3.zabbix服务器添加此agent2主机,同时自定义modbus监控项
官方参数
modbus.get[endpoint,<slaveid>,<function>,<address>,<count>,<type>,<endianness>,<offset>]
以添加上述slave id 1的modbus slave为例,在agent2主机中创建监控项
modbus.get[MB1,1,3,0,1,uint16,be,9]
其中:
endpoint:MB1 (conf中定义)
slaveid: 1 (conf中定义)
function: 3 读取保持寄存器
address: 0 slave第1位(0)开始
count: 1 读1位
type: unit16 数据类型
endianness:be Big Endian,另有le - Little Endian
offset: 9 偏移位9,表示读取第10位