Zabbix5系列-使用温湿度传感器监控机房温湿度 (二十)

一、参考
  • Zabbix5系列
二、安装zabbix-agent2
2.1 Linux安装zabbix-agent2

以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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Halyace

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值