机房动环监控搭建,温度湿度告警配置:机房动环监控搭建
机房动环监控的核心是采集温湿度数据并在超限时发出告警。
本文面向零基础运维人员,以常见的开源方案为例,讲解从传感器接入到告警配置的完整流程,最终实现温度或湿度超过设定阈值时,通过邮件或微信收到通知。
明确监控目标与准备工具
搭建前需要确定监控范围:是单个机柜还是整个机房?
需要监测温度、湿度,还是同时包括漏水、烟雾?
本文以温湿度为例。
准备以下软硬件:
- 温湿度传感器:支持RS485或SNMP协议,例如常见的机房专用传感器。
- 采集网关或串口服务器:将传感器数据转换为网络信号。
- 监控服务器:已安装Zabbix、Prometheus或其他监控平台。
- 网线、电源等辅材。
假设传感器通过RS485转以太网模块接入,模块IP为192.168.1.100,监控服务器IP为192.168.1.200。
接入传感器并采集数据
首先配置串口服务器。
通过浏览器登录其管理页面(通常为http://192.168.1.100),设置工作模式为“TCP Server”,本地端口4001,串口参数与传感器一致(如波特率9600,数据位8,停止位1,无校验)。
保存后重启模块。
在监控服务器上测试连通性:
telnet 192.168.1.100 4001
若连接成功,说明网络通路正常。
下一步需要将数据解析为温度、湿度值。
多数传感器使用Modbus RTU协议。
以Python为例,安装pymodbus库:
pip install pymodbus
编写脚本读取寄存器(假设温度在寄存器0x0000,湿度在0x0001):
from pymodbus.client import ModbusTcpClient
client = ModbusTcpClient('192.168.1.100', port=4001)
result = client.read_holding_registers(0, 2)
print(result.registers)
运行后应看到两个数值,通常需要除以10得到实际值(如235代表23.5℃)。
在监控平台配置告警
以Zabbix为例,登录Web界面,进入“配置”->“主机”,创建主机并添加SNMP或Agent接口。
但更简单的方式是使用“Zabbix trapper”或自定义脚本。
这里推荐用Zabbix sender主动推送数据。
在服务器上创建脚本/etc/zabbix/scripts/temp_humid.sh,内容为读取传感器并返回两个值:
#!/bin/bash
# 调用Python脚本输出JSON格式
python3 /opt/sensor/read_sensor.py
在Zabbix中创建监控项,类型为“Zabbix采集器”,键值自定义,如temp.humid。
然后设置触发器。
进入“配置”->“主机”->“触发器”,创建两个触发器:
- 温度告警:
{主机:temp.last()} > 30,表示温度超过30℃触发。 - 湿度告警:
{主机:humid.last()} > 70,表示湿度超过70%触发。
告警媒介可配置邮件或Webhook。
以邮件为例,在“管理”->“媒介类型”中设置SMTP服务器,然后在用户配置中添加邮箱。
阈值设定需参考设备厂商建议,通常机房温度建议22-26℃,湿度40-60%。
避坑指南与常见问题
- 串口服务器无法连接:检查IP、端口和防火墙,确认传感器供电正常。
- 数据读取为0或异常:确认Modbus寄存器地址和数据类型(整数/浮点),部分传感器需要先发送激活命令。
- 告警不触发:检查触发器表达式是否正确,确认监控项有最新数据。可在“最新数据”中查看。
- 邮件收不到:检查SMTP配置和垃圾邮件箱,部分邮箱需使用授权码。
注意:不同品牌传感器协议不同,务必查阅手册。
若使用SNMP传感器,可直接在Zabbix中添加SNMP接口,无需脚本。
验证告警是否生效
配置完成后,手动制造超限条件。
例如用吹风机加热传感器,观察温度值上升。
当超过阈值时,Zabbix应生成告警事件,并发送邮件。
在“监测”->“问题”中可看到告警列表。
点击告警可查看详情,确认时间和数值。
若未触发,检查触发器状态是否为“已启用”,并查看Zabbix server日志/var/log/zabbix/zabbix_server.log。
最后,建议设置告警恢复通知,避免问题解决后仍持续告警。
在触发器配置中勾选“恢复表达式”,如{主机:temp.last()} < 28。
按照以上步骤,即可完成基础的机房动环监控搭建和温湿度告警配置。
实际部署时,根据机房规模和设备数量调整传感器布局,确保监测点覆盖热区。