树莓派+Nagios高效监控机房温度
过去两个月我一直在为开发/生产系统落地监控方案。Nagios作为最爱/最恨的监控工具,我有义务搞懂它。历经权限、防火墙、依赖地狱等诸般折磨,终于跑通Nagios。偏爱Bootstrap与无痛配置,我上了Adagios做前端——强烈推荐,体验大幅提升、颜值炸裂。
顺势而为:我爱用树莓派,体积小、功耗低、IO够挂传感器。最近刷r/sysadmin看到"清洁阿姨弄坏我心爱服务器"帖子。触动我:已监控磁盘/内存/CPU,何不加上机房温度?
所需工具
- 树莓派
- 4.7kΩ电阻
- DS18B20
接线
先面包板跳线验证再焊接。无条件可直焊4.7kΩ电阻跨接3.3V(红线)与数据线(黄线)。
接线参考Adafruit教程原理图。
部署NRPE
Nagios监温需Pi跑NRPE Agent。快速部署指南:
- 下载解压NRPE-2.x:
https://sourceforge.net/projects/nagios/files/nrpe-2.x/ tar -zxvf nrpe-2.15.tar.gzcd nrpe-2.15/- 建ARM SSL库软链:
sudo rm /usr/lib/libssl.so
sudo ln -s /usr/lib/arm-linux-gnueabihf/libssl.so /usr/lib/libssl.so ./configure(缺依赖自行解决)- 建nagios用户/组,root编译安装:
sudo useradd nagios
sudo make all
sudo make install
sudo make install-plugin
sudo make install-daemon - 部署配置与启动脚本:
sudo mkdir /usr/local/nagios/etc
sudo cp sample-config/nrpe.cfg /usr/local/nagios/etc/nrpe.cfg
sudo chown -R nagios:nagios /usr/local/nagios/etc/sudo cp init-script.debian /etc/init.d/nrpe
sudo chmod 700 /etc/init.d/nrpe - 编辑
nrpe.cfg:allowed_hosts=127.0.0.1,YOUR_NAGIOS_SERVER_IP
command[check_temp]=/usr/local/nagios/libexec/check_temp.sh -w 30 -c 40
放行5666端口:nrpe 5666/tcp #nrpe - 启动NRPE:
sudo service nrpe start - 验证进程:
ps aux | grep nrpe应见nagios 8869 0.0 0.2 4084 980 ? Ss 21:43 0:00 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d - 开机自启:
sudo update-rc.d nrpe defaults
NRPE Agent落地完成,接下来部署check_temp.sh脚本。
脚本代码
保存为check_temp.sh至/usr/local/nagios/libexec/
赋执行权:chmod +x /usr/local/nagios/libexec/check_temp.sh
详见:Monitoring Room Temperatures with a Raspberry Pi and Nagios
制造工艺
- 树莓派多路DS18B20 1-Wire温度监测:接线与编程全指南
- 树莓派2上使用DS18B20读取温度完整指南
- 树莓派家庭温湿度监测系统:Web仪表盘实时远程追踪
- 树莓派专业温度监测:基于 DS18B20 传感器的完整指南
- 树莓派结合 Maxim 1-Wire 传感器与 DS2482 I2C 桥接器的多点温度测量
- 家庭能源中心:树莓派与 Moteino 监测光伏、光热与室温
- 树莓派精准监测机柜温度:DS18B20 多点部署实战
- 树莓派 3 配合 PubNub 实现远程气象监测
- 树莓派室温监测系统:Gnuplot 绘图与邮件报警
- 基于 Sensorflare 与树莓派的 433 MHz 智能家居控制器构建指南
- 树莓派 + Arduino UNO + 三星 SAMI 极速构建火灾检测系统
- 树莓派多传感器温度光照监测系统:DS18B20 实战构建