最近买了个树莓派,瞎捣鼓了一些小东西,昨天把一个一直想实现的功能做了出来。将机房温湿度监控与温湿度异常告警集成到了Zabbix,写来与大家分享。
*所需软硬件:
树莓派一个,我买的带电源+散热器+外壳,总共269块
DHT22温湿度传感器一个,20块
SD卡+读卡器,我买的闪迪32G,78块
Raspbian(树莓派OS),免费,下载链接:https://www.raspberrypi.org/downloads/raspbian/
Zabbix server+agent(常规操作,我先前的简书里已经有写过了),免费
总共367块,用来实现机房温湿度监控还是很划得来的。
*操作步骤:
1,为树莓派安装OS,OS下载链接上面已有,其中有core版和desktop版,刚玩的话建议下载desktop版。
下载完成后用Win32DiskImager写录到SD卡,然后插进树莓派通电即可启动。(注:请一定先插好各条信号线再通电启动,比如HDMI线,如果先通电再插HDMI线那是无法显示的。)
安装完成后打开命令行,进行基本配置:
pi@raspberrypi:~ $ sudo raspi-config #进入控制面板更改配置
树莓派的控制面板都是选择性的,不用敲命令所以各位自己配置吧。主要就是配置时区,固定IP,开启SSH,VNC,更改Hostname,更改显存(默认64,建议改为16,反正基本都是SSH连接,不用显存)最后再Update重启即可。
2,连接温湿度传感器
DHT温湿度传感器的针脚从左至右分别是Left: 3.3v;Middle: GPIO;Right: Ground。树莓派的两排针脚图解如下。
image.png
所以将三根线从左至右接到我红线框出来的针脚上即可。
3,安装软件来读取温湿度传感器数据。
安装DHT py模块。
sudo apt-get update && sudo apt-get -y install git python-dev
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT/
sudo python setup.py install
4,现在我们应该可以在树莓派上读取温湿度数据了。
pi@max1987:~/Adafruit_Python_DHT $ sudo /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 22 2
Temp=13.8* Humidity=44.4%
5,安装Zabbix agent。
sudo apt-get -y install zabbix-agent
编辑agent配置文件
sudo nano /etc/zabbix/zabbix_agentd.conf
其余配置都是基本操作,就不提了,如果有不知道怎么配置的情参考我以前写的关于agent安装的简书。这里需要单独配置的有两条。
第一,在第234行增加Timeout=30(要不然zabbix读取温湿度数据时会因为脚本执行超时而无法读取温湿度数据)
第二,在最后一行增加(使server可以从agent读取到温湿度数据):
UserParameter=dht.pull[*],sudo /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 22 2 | awk -F[=*%] '{print '$'"$1"}'
Ctrl+X选Y即可保存退出。
重启agent
sudo service zabbix-agent restart
授予zabbix用户读取GPIO数据权限。
sudo visudo
在最后一行插入如下命令:
zabbix ALL=(ALL) NOPASSWD: /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py
Ctrl+X选Y即可保存退出。
6,SSH连接Zabbix服务器,安装zabbix_get,这是zabbix server主动从agent拉数据必要组件。
yum install zabbix-get.x86_64
下面即可从server测试读取温湿度数据,命令如下:
zabbix_get -s 10.187.101.147 -k dht.pull[2] #dht.pull[2]为温度键值,在添加监控项时需要用到
zabbix_get -s 10.187.101.147 -k dht.pull[4] #dht.pull[4]为湿度键值,在添加监控项时需要用到
在zabbix_server.conf中将434行Timeout值改为30,与上面改agent配置一样,然后重启zabbix server即可。
7,Zabbix网页端配置。
这就不赘述了,跟添加普通Linux agent监控主机一样,然后通过上面说的键值增加监控项即可。最后的效果如下图:
image.png
如果监控项创建有问题的朋友可以留言给我,我可以导个模板给您,最后祝各位看机房的朋友永远没Downtime!
网友评论