zabbix上添加机房温度监控以及报警

mkingiii · · 5440 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

配件及准备

树莓派(装好centos7系统和zabbix agent) 1
ds18b20 1

公司自建机房,然后空调故障,扣了我们背锅侠每人500块钱,表示很郁闷。够吃多少顿大排档了!!本背锅侠表示不服!由于正在做公司的ZABBIX监控,手上正好有块树莓派(本背锅侠自己的,已被公司征用),于是想着把温度整合到zabbix里面。从某宝买了一个DS18B20板子,已经焊好电阻等器件,如图:


DS18B20

0x01 经过若干天的等待,某宝的DS18B20到了之后,接上树莓派,接线如下图所示:


接线图

0x02 修改树莓派的boot配置,添加对ds18b20的驱动支持,不然读取不到温度信息

echo "dtoverlay=w1-gpio" >> /boot/config.txt

蓝后,重启树莓派,发现可以读取到ds18b20的驱动信息

cat /sys/bus/w1/devices/w1_bus_master1/28-0316a281adff/w1_slave 
7f 01 4b 46 7f ff 0c 10 ba : crc=ba YES
7f 01 4b 46 7f ff 0c 10 ba t=23937

注:28-0316a281adff是设备号,每个人的设备号会不一样。
其中t=23937就是温度,计算出实际问题,只需要除以1000就可以。

0x03 使用代码获取温度

这一步很简单,对于会linux的小伙伴应该超级简单。一条awk就可以搞定

awk -F= '$0~/t=/{print $2/1000}' /sys/bus/w1/devices/w1_bus_master1/28-0316a281adff/w1_slave
24.25

ps:最近本背锅侠在看golang,于是闲的无聊,就用golang写了一版

package main

import (
        "fmt"
        "io/ioutil"
        "strconv"
        "strings"
)

func main() {
        date, err := ioutil.ReadFile("/sys/bus/w1/devices/28-0316a281adff/w1_slave")
        if err != nil {
                return
        }
        tmp := fmt.Sprintf("%s", date)
        buffer := strings.Split(tmp, "=")
        buffer1 := strings.Split(buffer[2], "\n")
        temp, err := strconv.Atoi(buffer1[0])
        if err != nil {
                fmt.Println(err)
        }
        fmt.Println(float64(temp) / 1000.0)
}

0x03 接入zabbix

修改zabbix_agentd的配置文件,添加key和对应程序的路径(本背锅侠用golang写的,所以直接编译成二进制了)

UserParameter=get_temp,/opt/zabbix_agent/script/get_temp

0x04 zabbix server添加监控项、触发器和图形

监控项配置如下:信息要选浮点数


监控项

触发器配置如下:


触发器

图形配置如下:在监控项里面选择上面配置的温度监控项


图形

0x04 zabbix效果图和grafana上的效果图

zabbix效果图


zabbix效果

grafana效果图


grafana效果

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:mkingiii

查看原文:zabbix上添加机房温度监控以及报警

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5440 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传