当前位置:网站首页>Zabbix5系列-使用温湿度传感器监控机房温湿度 (二十)
Zabbix5系列-使用温湿度传感器监控机房温湿度 (二十)
2022-06-22 09:17:00 【Halyace】
Zabbix5系列-使用温湿度传感器监控机房温湿度
一、参考
- Zabbix5系列
- Zabbix5专栏
- Centos7安装Docker
- Centos8安装Docker
- Debian10安装Docker
- Zabbix5系列-Docker安装zabbix5.4 (一)
- Zabbix5系列-监控华为、H3C交换机(snmpv2c/snmpv3/snmptrap) (二)
- Zabbix5系列-监控Windows主机 (三)
- Zabbix5系列-监控Linux主机 (四)
- Zabbix5系列-Linux/Windows磁盘SMART监控 (五)
- Zabbix5系列-监控惠普服务器iLO管理口 (六)
- Zabbix5系列-监控海康威视摄像头 (七)
- Zabbix5系列-使用SNMP监控Linux (八)
- Zabbix5系列-监控docker (九)
- Zabbix5系列-监控mysql(5.7/5.8/mariadb) (十)
- Zabbix5系列-监控redis (十一)
- Zabbix5系列-监控nginx (十二)
- Zabbix5系列-制作拓扑图 (十三)
- Zabbix5系列-声音告警、邮件告警 (十四)
- Zabbix5系列-钉钉告警 (十五)
- Zabbix5系列-创建自动发现模板 (十六)
- Zabbix5系列-接入Grafana面板 (十七)
- Zabbix5系列-报表工具ZbxTable (十八)
- 用户手册: https://www.zabbix.com/documentation/current/zh/manual
- 官方模板参考: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates?at=refs%2Fheads%2Frelease%2F5.4
- Zabbix模板库: https://share.zabbix.com
- Zabbix容器: https://hub.docker.com/u/zabbix
- Zabbix Agent下载页: https://www.zabbix.com/cn/download_agents
- MIB浏览器下载: http://www.ireasoning.com/download.shtml
- 华为MIB查询: https://support.huawei.com/mibtoolweb/enterpriseMibInfo/zh
- 华为 VRP V200R021C00SPC100 MIB文件: https://support.huawei.com/enterprise/zh/software/253350229-ESW2000397776
- H3C Comware MIB文件: https://www.h3c.com/cn/d_200905/635750_30003_0.htm
- 华为图标 百度云盘 提取码mzhx: https://pan.baidu.com/s/1S6p96p3gNrv78Z2yJxrhaQ
- zabbix报表工具: https://zbxtable.cactifans.com/
- Grafana面板: https://grafana.com/docs/grafana/latest/installation/docker/
- Grafana-cn面板: https://hub.docker.com/r/w958660278/grafana-cn
二、安装zabbix-agent2
2.1 Linux安装zabbix-agent2
- Zabbix Agent下载页
- Centos7 Zabbix agent 2 v5.4.9 下载地址
- Centos8 logrotate依赖 下载地址
- Centos8 Zabbix agent 2 v5.4.9 下载地址
- Debian10 Zabbix agent 2 v5.4.9 下载地址
- Debian11 Zabbix agent 2 v5.4.9 下载地址
- Ubuntu18.04 Zabbix agent 2 v5.4.9 下载地址
- Ubuntu20.04 Zabbix agent 2 v5.4.9 下载地址
以Centos7.9为例安装zabbix-agent2并监控主机
# 进入临时目录
cd /tmp
# 下载zabbix-agent2
curl -O https://mirrors.aliyun.com/zabbix/zabbix/5.4/rhel/7/x86_64/zabbix-agent2-5.4.9-1.el7.x86_64.rpm
# 安装zabbix-agent2
rpm -ivh zabbix-agent2-5.4.9-1.el7.x86_64.rpm
# 修改配置文件
# Server=127.0.0.1改为自己的Zabbix服务器IP
vi /etc/zabbix/zabbix_agent2.conf
# 重启zabbix-agent2服务
systemctl restart zabbix-agent2
# 开机自动启动zabbix-agent2
systemctl enable zabbix-agent2
# 防火墙放行10050
firewall-cmd --zone=public --add-port=10050/tcp --permanent
# 重载防火墙
firewall-cmd --reload
2.2 Windows安装zabbix-agent2
2.2.1 点击 Next
2.2.2 勾选接收许可 点击Next
2.2.3 输入Zabbix服务器IP 可以使用网段如:192.168.0.0/24 记下HostName
2.2.4 点击Next
2.2.5 点击Install开始安装
2.2.6 点击Finish完成安装
三、测试传感器
3.1 PDD买的垃圾传感器,长这个样子
3.2 根据商家发的资料使用RTU协议 波特率4800 校验无 数据位8 停止位1 设备地址为1
3.3 这里使用Modbus调试精灵v1.0.24进行测试 工具自行下载
测试结果:
温度等于0x00F5/10=245/10=24.5度
湿度等于0x01A4/10=420/10=42%

四、创建主机
4.1 主机配置
主机名称:输入主机名
可见名称:设置别名
群组:选择自己的主机组
Interfaces:添加一个客户端监控 IP地址为主机IP 端口默认为10050
五、创建监控项
5.1 Windows主机打开设备管理器查看串口端口号
5.2 Linux主机查看串口端口号并配置权限
# 查看串口消息 确认串口名
dmesg | grep tty
# 查看串口权限 所属组 dialout
ls -l /dev/ttyUSB0
# 用户zabbix加入用户组 dialout
gpasswd --add zabbix dialout
# 查看zabbix用户的组
groups zabbix
5.3 进入刚创建的主机 创建传感器监控项
5.4 根据之前的端口号和测试信息填写键值
参考:Modbus参数说明
参考:Modbus 插件自述文件
格式为:modbus.get[RTU连接串,设备地址,功能码,地址码,数量,返回值类型,字节序,偏移]
RTU连接串:参考 rtu://com4:4800:8n1 rtu://ttyUSB0:4800:8n1
设备地址:设备的Modbus地址
功能码:1-离散输入(RO) 2-线圈状态(RW) 3-输入寄存器(RO) 4-保持寄存器(RW)
地址码:数据的地址 默认00001
数量:返回的数据数量
类型:支持bit、int8、uint8、uint16、int16、uint32、int32、float、uint64 、 double
字节序:be-大端 le-小端 mbe mle
偏移:寄存器或位的数量
5.5 测试读取 成功读取数组[450,242] 前面是湿度 后面是温度
5.6 点击添加按钮 添加监控项
5.7 再新建一个温度监控项 类型选择相关项目 键值自己定义 主要项选择之前创建的传感器
5.8 信息类型选择浮点数 单位℃ 切换到进程页面
5.9 添加两个进程
5.10 第一个进程从传感器返回数组里提取第二个元素 如果出错则设置值为-100;第二个进程乘以0.1得出真实温度 如果出错则设置值为-100;然后点击添加按钮创建监控项
5.11 参考5.8-5.10 创建湿度监控项

5.12 勾选传感器监控项 点击 Execute Now 测试监控项
5.13 查看读取到的数据
六、创建触发器
6.1 切换到触发器页 点击创建触发器
6.2 根据图片设置触发器公式
6.3 参考温度设置湿度的触发器
七、检测传感器是否失效
7.1 创建可用性监控项
7.2 创建触发器监控可用性
八、参考其他博文创建钉钉或邮件告警
Zabbix5系列-钉钉告警(Webhook) (十九)
Zabbix5系列-声音告警、邮件告警 (十四)
Zabbix5系列-钉钉告警 (十五)
告警效果:
九、参考其他博文接入Grafana
展示效果:

十、自己制作的传感器模板参考
保存为yaml文件导入后根据实际情况修改宏即可
模板文件:Temp_Hum_Sensor.yaml
zabbix_export:
version: '5.4'
date: '2022-06-01T11:18:51Z'
groups:
-
uuid: 7df96b18c230490a9a0a9e2307226338
name: Templates
templates:
-
uuid: f367d493b0484099a8a8b7c83fefafc1
template: 'Temp Hum Sensor'
name: 温湿度传感器
groups:
-
name: Templates
items:
-
uuid: 8a73896926a542678ffd8a704a85ae96
name: 传感器
key: 'modbus.get[{$MODBUS_ENDPOINT},{$MODBUS_SLAVEID},{$MODBUS_FUNCTION},{$MODBUS_ADDRESS},{$MODBUS_COUNT},{$MODBUS_TYPE},{$MODBUS_ENDIANNESS},{$MODBUS_OFFSET}]'
delay: 30s
trends: '0'
value_type: TEXT
preprocessing:
-
type: CHECK_NOT_SUPPORTED
parameters:
- ''
error_handler: CUSTOM_VALUE
error_handler_params: '[-1000,-1000]'
-
uuid: 46818e12cf764928adc63158ef5c2798
name: 湿度
type: DEPENDENT
key: sensor.hum
delay: '0'
value_type: FLOAT
units: '%'
preprocessing:
-
type: JSONPATH
parameters:
- '$[{$INDEX_HUM}]'
error_handler: CUSTOM_VALUE
error_handler_params: '-1000'
-
type: MULTIPLIER
parameters:
- '0.1'
error_handler: CUSTOM_VALUE
error_handler_params: '-100'
master_item:
key: 'modbus.get[{$MODBUS_ENDPOINT},{$MODBUS_SLAVEID},{$MODBUS_FUNCTION},{$MODBUS_ADDRESS},{$MODBUS_COUNT},{$MODBUS_TYPE},{$MODBUS_ENDIANNESS},{$MODBUS_OFFSET}]'
tags:
-
tag: 环境
value: 湿度
triggers:
-
uuid: b1795712933d47db966f56282fdf75b4
expression: 'last(/Temp Hum Sensor/sensor.hum)=-100'
recovery_mode: RECOVERY_EXPRESSION
recovery_expression: 'last(/Temp Hum Sensor/sensor.hum)>-100'
name: '{$LOCATION}: 湿度传感器已失效'
opdata: '{ITEM.LASTVALUE1}'
priority: DISASTER
-
uuid: bf23a82ece3748bb8affd1caaad7ac32
expression: 'avg(/Temp Hum Sensor/sensor.hum,5m)<{$HUM_CRIT_LOW:""}'
recovery_mode: RECOVERY_EXPRESSION
recovery_expression: 'min(/Temp Hum Sensor/sensor.hum,5m)>{$HUM_CRIT_LOW:""}+3'
name: '{$LOCATION}: 湿度太低: <{$HUM_CRIT_LOW:""}%'
opdata: '{ITEM.LASTVALUE1}'
priority: AVERAGE
dependencies:
-
name: '{$LOCATION}: 湿度传感器已失效'
expression: 'last(/Temp Hum Sensor/sensor.hum)=-100'
recovery_expression: 'last(/Temp Hum Sensor/sensor.hum)>-100'
-
uuid: f5d8d3d3aae04a27a32cd55dc527ae06
expression: 'avg(/Temp Hum Sensor/sensor.hum,5m)>{$HUM_CRIT:""}'
recovery_mode: RECOVERY_EXPRESSION
recovery_expression: 'max(/Temp Hum Sensor/sensor.hum,5m)<{$HUM_CRIT:""}-3'
name: '{$LOCATION}: 湿度高于临界值: >{$HUM_CRIT:""}%'
opdata: '{ITEM.LASTVALUE1}'
priority: HIGH
-
uuid: eb097881d9534e9aac2885e182d1afb9
expression: 'avg(/Temp Hum Sensor/sensor.hum,5m)>{$HUM_WARN:""}'
recovery_mode: RECOVERY_EXPRESSION
recovery_expression: 'max(/Temp Hum Sensor/sensor.hum,5m)<{$HUM_WARN:""}-3'
name: '{$LOCATION}: 湿度高于警告值: >{$HUM_WARN:""}%'
opdata: '{ITEM.LASTVALUE1}'
priority: WARNING
dependencies:
-
name: '{$LOCATION}: 湿度高于临界值: >{$HUM_CRIT:""}%'
expression: 'avg(/Temp Hum Sensor/sensor.hum,5m)>{$HUM_CRIT:""}'
recovery_expression: 'max(/Temp Hum Sensor/sensor.hum,5m)<{$HUM_CRIT:""}-3'
-
uuid: 14de9d958ed74630853bb709189210bc
name: 温度
type: DEPENDENT
key: sensor.temp
delay: '0'
value_type: FLOAT
units: °C
preprocessing:
-
type: JSONPATH
parameters:
- '$[{$INDEX_TEMP}]'
error_handler: CUSTOM_VALUE
error_handler_params: '-1000'
-
type: MULTIPLIER
parameters:
- '0.1'
error_handler: CUSTOM_VALUE
error_handler_params: '-100'
master_item:
key: 'modbus.get[{$MODBUS_ENDPOINT},{$MODBUS_SLAVEID},{$MODBUS_FUNCTION},{$MODBUS_ADDRESS},{$MODBUS_COUNT},{$MODBUS_TYPE},{$MODBUS_ENDIANNESS},{$MODBUS_OFFSET}]'
tags:
-
tag: 环境
value: 温度
triggers:
-
uuid: 477cf2cb38cb429c88aa3529e729238b
expression: 'last(/Temp Hum Sensor/sensor.temp)=-100'
recovery_mode: RECOVERY_EXPRESSION
recovery_expression: 'last(/Temp Hum Sensor/sensor.temp)>-100'
name: '{$LOCATION}: 温度传感器已失效'
opdata: '{ITEM.LASTVALUE1}'
priority: DISASTER
-
uuid: c0a2e01b9e9c41c58c3ae84eb8700104
expression: 'avg(/Temp Hum Sensor/sensor.temp,5m)<{$TEMP_CRIT_LOW:""}'
recovery_mode: RECOVERY_EXPRESSION
recovery_expression: 'min(/Temp Hum Sensor/sensor.temp,5m)>{$TEMP_CRIT_LOW:""}+3'
name: '{$LOCATION}: 温度太低: <{$TEMP_CRIT_LOW:""}℃'
opdata: '{ITEM.LASTVALUE1}'
priority: AVERAGE
dependencies:
-
name: '{$LOCATION}: 温度传感器已失效'
expression: 'last(/Temp Hum Sensor/sensor.temp)=-100'
recovery_expression: 'last(/Temp Hum Sensor/sensor.temp)>-100'
-
uuid: 886fdaa74729441887f89a5ebf6a5d32
expression: 'avg(/Temp Hum Sensor/sensor.temp,5m)>{$TEMP_CRIT:""}'
recovery_mode: RECOVERY_EXPRESSION
recovery_expression: 'max(/Temp Hum Sensor/sensor.temp,5m)<{$TEMP_CRIT:""}-3'
name: '{$LOCATION}: 温度高于临界值: >{$TEMP_CRIT:""}℃'
opdata: '{ITEM.LASTVALUE1}'
priority: HIGH
-
uuid: ba1e02e7d97f4f9f91a21ce61ef80757
expression: 'avg(/Temp Hum Sensor/sensor.temp,5m)>{$TEMP_WARN:""}'
recovery_mode: RECOVERY_EXPRESSION
recovery_expression: 'max(/Temp Hum Sensor/sensor.temp,5m)<{$TEMP_WARN:""}-3'
name: '{$LOCATION}: 温度高于警告值: >{$TEMP_WARN:""}℃'
opdata: '{ITEM.LASTVALUE1}'
priority: WARNING
dependencies:
-
name: '{$LOCATION}: 温度高于临界值: >{$TEMP_CRIT:""}℃'
expression: 'avg(/Temp Hum Sensor/sensor.temp,5m)>{$TEMP_CRIT:""}'
recovery_expression: 'max(/Temp Hum Sensor/sensor.temp,5m)<{$TEMP_CRIT:""}-3'
-
uuid: fc428f3e82f34203a0ba02074f19be36
name: 传感器可用性
type: INTERNAL
key: 'zabbix[host,agent,available]'
history: 7d
valuemap:
name: zabbix.host.available
tags:
-
tag: 环境
value: 传感器状态
triggers:
-
uuid: 385456b1a3bc4fca9fd2ba16ac53bc67
expression: 'max(/Temp Hum Sensor/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0'
name: '{$LOCATION}: 传感器已失效'
opdata: '{ITEM.LASTVALUE1}'
priority: DISASTER
manual_close: 'YES'
macros:
-
macro: '{$AGENT.TIMEOUT}'
value: 30s
description: 超时时间,在此超时之后,传感器被视为不可用。仅适用于可从Zabbix服务器/代理访问的代理(被动模式)。
-
macro: '{$HUM_CRIT}'
value: '80'
description: '高湿度临界值 单位: %'
-
macro: '{$HUM_CRIT_LOW}'
value: '35'
description: '低湿度临界值 单位: %'
-
macro: '{$HUM_WARN}'
value: '75'
description: '高湿度警告值 单位: %'
-
macro: '{$INDEX_HUM}'
value: '0'
description: 返回数据数组湿度索引
-
macro: '{$INDEX_TEMP}'
value: '1'
description: 返回数据数组温度索引
-
macro: '{$LOCATION}'
value: 机房
description: 传感器位置
-
macro: '{$MODBUS_ADDRESS}'
value: '0'
description: 'Modbus 地址 默认00001'
-
macro: '{$MODBUS_COUNT}'
value: '2'
description: 'Modbus 返回数量 默认1'
-
macro: '{$MODBUS_ENDIANNESS}'
value: be
description: 'Modbus 字节顺序:be-高位解码、le-低位解码、mbe、mle'
-
macro: '{$MODBUS_ENDPOINT}'
value: 'rtu://com4:4800:8n1'
description: 'Modbus TCP或RTU连接字符串'
-
macro: '{$MODBUS_FUNCTION}'
value: '3'
description: 'Modbus 功能码:1-读取线圈状态 2-读取离散输入状态 3-读取保持寄存器 4-读取输入寄存器'
-
macro: '{$MODBUS_OFFSET}'
value: '0'
description: 'Modbus 偏移量'
-
macro: '{$MODBUS_SLAVEID}'
value: '1'
description: 'Modbus 地址码'
-
macro: '{$MODBUS_TYPE}'
value: int16
description: 'Modbus 返回值类型:bit、int8、uint8、uint16、int16、uint32、int32、float、uint64、double'
-
macro: '{$TEMP_CRIT}'
value: '35'
description: '高温度临界值 单位: ℃'
-
macro: '{$TEMP_CRIT_LOW}'
value: '18'
description: '低温度临界值 单位: ℃'
-
macro: '{$TEMP_WARN}'
value: '30'
description: '高温度警告值 单位: ℃'
valuemaps:
-
uuid: 1f9d9355ce8145d99bfc7dfb74ba29c5
name: zabbix.host.available
mappings:
-
value: '0'
newvalue: 异常
-
value: '1'
newvalue: 正常
-
value: '2'
newvalue: 未知
graphs:
-
uuid: 54e87629e451438a9e865089fd31c869
name: 温湿度传感器
width: '600'
show_triggers: 'NO'
graph_items:
-
sortorder: '1'
drawtype: BOLD_LINE
color: FF0000
item:
host: 'Temp Hum Sensor'
key: sensor.temp
-
sortorder: '2'
color: 42A5F5
item:
host: 'Temp Hum Sensor'
key: sensor.hum
边栏推荐
- [Architect (Part 39)] connecting MySQL database developed by server
- 前馈和反向传播
- 进程状态汇总
- Why use gradient descent method
- Function summary (1)
- 一个老开源人的自述-如何干好开源这件事
- Module usage of pytorch: linear model (incomplete)
- Php+stripe payment API, the latest PHP version of stripe overseas payment tutorial
- 機器學習|nltk_Data下載錯誤|nltk的stopwords語料下載錯誤解决方法
- Process status summary
猜你喜欢

Sound and shadow 2022 heavy release! Detailed explanation of the new functions of Huisheng Huiying 2022
![[target detection] | detection error mechanism why object detectors fail: investigating the influence of the dataset](/img/d2/101c8ef5dac517718bbe44ee4fd607.png)
[target detection] | detection error mechanism why object detectors fail: investigating the influence of the dataset

希望越来越多的女性从事科技工作

np. Arange and np Linspace nuances (data overflow problem)

Why use gradient descent method

Node cannot recognize the 'node' entry as the name of a cmdlet, function, script file, or runnable program. Please check the spelling of the name. If the path is included, make sure the path is correc

DOM programming

机器学习|nltk_Data下载错误|nltk的stopwords语料下载错误解决方法

模糊查询和聚合函数

Didi's two-sided summary
随机推荐
微服务架构概述
Monaco editor format JSON, SQL
值(址)传递,看清名字,别掉沟里
The circular queue is implemented in super detail. I understand it in a few seconds
scnprintf和snprintf的区别
Yiwen approaches ZMQ
list_head
锁-ReentrantLock
Didi's two-sided summary
Sound and shadow 2022 heavy release! Detailed explanation of the new functions of Huisheng Huiying 2022
There are three ways to traverse the map. Second, you know
Have you ever paid attention to those classes in the collection that are thread safe?
Variable things
Cocoscreator compilation error record could not write cache value gradle\daemon\4.10.3\regi
Embedded development terminology concept summary
Development error reporting record
PHP output color image with specified height and width for web page background image
接口抽象类的比较
论文笔记:DETR: End-to-End Object Detection with Transformers (from 李沐老师and朱老师)
[node] please accept the crawler. We won't worry about the data any more