如何用Zabbix监控温湿度?Zabbix对接modbus tcp设备实操

慈云数据 1年前 (2023-07-07) 网络资讯 629 0

背景:

1、公司机房没有专用的温度监控设备,以往是通过snmp功能get服务器的CPU或是主板温度,根据偏差值算出机房的大致温度(温度计值与服务器的差值),可最近研发部门经常在服务器跑高负载任务,导致计算出的环境温度极度不准

2、网上虽然有成套的温度报警产品,但从以下方面讲不符合公司要求:

2-1:现有产品多是通过邮箱或是手机语音/手机短信、微信报警,而我司需要对接到内部平台统一报警

2-2:网上的设备大多在200~400元价格,支持云功能的还要续平台费(每年要提采购、报销审批,内部流程很麻烦)

实现过程:

1、首先是购买硬件设备,网关+温度传感器大概需要200~220元左右,如下图所示:

· 左侧图片为modbus tcp网关,实现485或是modbus rtu协议转modbus tcp协议

· 右侧图片为温湿度探头,支持modbus rtu协议,通过485连接网关、然后转为tcp协议

温湿度监控器的工作原理_监控摄像头与主机怎么连接好用_温湿度监控仪器说明书

监控摄像头与主机怎么连接好用_温湿度监控器的工作原理_温湿度监控仪器说明书

2、系统及软件方面:

· 在linux系统安装5.2版本以上的Zabbix-Server (5.2开始支持modbus协议)

· zabbix-agent2 (当前仅zabbix-agent2版支持modbus,后期可能会增加zabbix-agent的支持)

3、在这里理顺一下逻辑,否则各位在配置时可能会出现错误或是疑问:

· 虽然Zabbix-Server可以直接对被监控主机做一些例如ping、snmp、service.perf、port.perf等的监控,但是modbus数据的获取是通过zabbix-agent2实现的,也就是说agent2获取到被控主机的modbus数据,再将结果回传到Zabbix-Server。如果modbus设备自身、或是所在网络有防火墙策略的话,需要放行agent2主机访问(Zabbix的server和agent可以安装到同一个linux系统上)

温湿度监控器的工作原理_监控摄像头与主机怎么连接好用_温湿度监控仪器说明书

4、部署Zabbix-Server,因为官网有十分详尽的教程、在此不做描述,这里要提一句:官网命令中安装的数据库并不完整,需要自行手动安装下mariadb

· 官网链接:官网安装教程

5、安装zabbix-agent2,这里着重说明一下:modbus需要zabbix-agent2的支持,而我们通过命令yum install zabbix-agent默认安装的是v1版,Zabbix-Server自带的也是v1版agent

· 首先停用或是卸载旧版agent(如果存在的话),拿centos7来说,可以执行systemctl stop zabbix-agent; yum autoremove zabbix-agent进行停用后的卸载

· 因为zabbix-agent2部分使用go语言编写,所以它依赖go环境,这里我们通过一键安装脚本部署(基于Centos安装,如果是debian的话需要提前安装sudo):

引用链接:一键安装go环境

git clone https://gitee.com/xuthus5/golang-install-shell.git (如果报错需要安装git)
cd golang-install-shell
chmod +x install.sh
./install.sh

· 出现以下安装界面后,选择0 安装golang环境,然后按默认参数安装即可:

----------------------------------

0) 安装golang环境
1) 安装gopm跨墙
2) 安装web框架
3) 安装包
4) 退出
----------------------------------
输入操作编号:0
----------------------------------
选择安装版本:
1) 1.11
2) 1.10.4
3) 1.9.7
4) 1.8.7
----------------------------------
输入安装版本编号(默认1):
 
~~~~~~~~~~~~~~~~~~~~~~省略很多软件安装的信息~~~~~~~~~~~~~~~~~~~~~~~
 
输入程序安装目录GOROOT(默认 /usr/local):
输入GOPATH目录(默认 /root/go):

· 安装完成后,选择4 退出

go version go1.11 linux/amd64
环境变量配置成功!请执行 source /root/.bashrc 确保配置生效
----------------------------------
0) 安装golang环境
1) 安装gopm跨墙
2) 安装web框架
3) 安装包
4) 退出
----------------------------------
输入操作编号:4

基于ARM-Linux的Modbus串口服务器设计 ← 下载

· 安装zabbix-agent2:

# 添加官网源
rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpm
# 清除yum缓存
yum clean all 
# 安装agent2,安装完后程序会自动运行、并自动配置开机自启动功能
yum install zabbix-agent2

温湿度监控器的工作原理_温湿度监控仪器说明书_监控摄像头与主机怎么连接好用

· 安装成功后编辑配置文件

# 编辑配置文件
vi /etc/zabbix/zabbix_agent2.conf
# 根据实际环境修改以下项目
Hostname=
Server=
ServerActive=
# 配置完成后重启agent2
systemctl restart zabbix-agent2

· 在Zabbix-Server服务器添加安装了zabbix-agent2的主机,并添加modbus监控项

监控摄像头与主机怎么连接好用_温湿度监控器的工作原理_温湿度监控仪器说明书

· 这里引用官网对modbus监控项的详细介绍及访问链接:官网介绍

温湿度监控仪器说明书_监控摄像头与主机怎么连接好用_温湿度监控器的工作原理

· 这是根据实际环境修改后的参照表:

温湿度监控器的工作原理_监控摄像头与主机怎么连接好用_温湿度监控仪器说明书

· 我所用到的温度传感器给出的温度值是实际值的10倍,所以在zabbix进程中要除以10(也就是乘以0.1)

温湿度监控仪器说明书_温湿度监控器的工作原理_监控摄像头与主机怎么连接好用

· 设置完监控项后,agent端要等1分钟左右才能使用新的监控项,如果着急的话可以手动执行systemctl restart zabbix-agent2,让agent2强制重启并立即获取新的监控项:

这是获取到的温度值:

监控摄像头与主机怎么连接好用_温湿度监控器的工作原理_温湿度监控仪器说明书

· 在调试过程中如果遇到modbus网关没响应、zabbix报网关错误等,可以下载调试工具、将本机作为网关服务器,然后让zabbix-agent2访问本机,根据接收信息里面的数据分析是哪里出现的错误:

工具下载地址:调试助手

温湿度监控器的工作原理_温湿度监控仪器说明书_监控摄像头与主机怎么连接好用

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon