最近買了個(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)樹莓派通電即可啟動宾袜。(注:請一定先插好各條信號線再通電啟動,比如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í)會因?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主動從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!