
最近買了個(gè)樹莓派,瞎搗鼓了一些小東西,昨天把一個(gè)一直想實(shí)現(xiàn)的功能做了出來。將機(jī)房溫濕度監(jiān)控與溫濕度異常告警集成到了Zabbix,寫來與大家分享。
*所需軟硬件:
樹莓派一個(gè),我買的帶電源+散熱器+外殼,總共269塊
DHT22溫濕度傳感器一個(gè),20塊
SD卡+讀卡器,我買的閃迪32G,78塊
Raspbian(樹莓派OS),免費(fèi),下載鏈接:https://www.raspberrypi.org/downloads/raspbian/
Zabbix server+agent(常規(guī)操作,我先前的簡書里已經(jīng)有寫過了),免費(fèi)
總共367塊,用來實(shí)現(xiàn)機(jī)房溫濕度監(jiān)控還是很劃得來的。
*操作步驟:
1,為樹莓派安裝OS,OS下載鏈接上面已有,其中有core版和desktop版,剛玩的話建議下載desktop版。
下載完成后用Win32DiskImager寫錄到SD卡,然后插進(jìn)樹莓派通電即可啟動(dòng)。(注:請(qǐng)一定先插好各條信號(hào)線再通電啟動(dòng),比如HDMI線,如果先通電再插HDMI線那是無法顯示的。)
安裝完成后打開命令行,進(jìn)行基本配置:
pi@raspberrypi:~ $ sudo raspi-config #進(jìn)入控制面板更改配置

樹莓派的控制面板都是選擇性的,不用敲命令所以各位自己配置吧。主要就是配置時(shí)區(qū),固定IP,開啟SSH,VNC,更改Hostname,更改顯存(默認(rèn)64,建議改為16,反正基本都是SSH連接,不用顯存)最后再Update重啟即可。
2,連接溫濕度傳感器
DHT溫濕度傳感器的針腳從左至右分別是Left: 3.3v;Middle: GPIO;Right: Ground。樹莓派的兩排針腳圖解如下。

所以將三根線從左至右接到我紅線框出來的針腳上即可。
3,安裝軟件來讀取溫濕度傳感器數(shù)據(jù)。
安裝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,現(xiàn)在我們應(yīng)該可以在樹莓派上讀取溫濕度數(shù)據(jù)了。
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
其余配置都是基本操作,就不提了,如果有不知道怎么配置的情參考我以前寫的關(guān)于agent安裝的簡書。這里需要單獨(dú)配置的有兩條。
第一,在第234行增加Timeout=30(要不然zabbix讀取溫濕度數(shù)據(jù)時(shí)會(huì)因?yàn)槟_本執(zhí)行超時(shí)而無法讀取溫濕度數(shù)據(jù))
第二,在最后一行增加(使server可以從agent讀取到溫濕度數(shù)據(jù)):
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數(shù)據(jù)權(quán)限。
sudo visudo
在最后一行插入如下命令:
zabbix ALL=(ALL) NOPASSWD: /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py
Ctrl+X選Y即可保存退出。
6,SSH連接Zabbix服務(wù)器,安裝zabbix_get,這是zabbix server主動(dòng)從agent拉數(shù)據(jù)必要組件。
yum install zabbix-get.x86_64
下面即可從server測試讀取溫濕度數(shù)據(jù),命令如下:
zabbix_get -s 10.187.101.147 -k dht.pull[2] #dht.pull[2]為溫度鍵值,在添加監(jiān)控項(xiàng)時(shí)需要用到
zabbix_get -s 10.187.101.147 -k dht.pull[4] #dht.pull[4]為濕度鍵值,在添加監(jiān)控項(xiàng)時(shí)需要用到
在zabbix_server.conf中將434行Timeout值改為30,與上面改agent配置一樣,然后重啟zabbix server即可。
7,Zabbix網(wǎng)頁端配置。
這就不贅述了,跟添加普通Linux agent監(jiān)控主機(jī)一樣,然后通過上面說的鍵值增加監(jiān)控項(xiàng)即可。最后的效果如下圖:

如果監(jiān)控項(xiàng)創(chuàng)建有問題的朋友可以留言給我,我可以導(dǎo)個(gè)模板給您,最后祝各位看機(jī)房的朋友永遠(yuǎn)沒Downtime!