24小时在线的设备,不免要加个监控。我这里用的是snmp和smartmontools。 smartmontools可以监控硬盘的各种状态,这个是非常重要的。
使用自定义的脚本把smartmontools获取到的状态通过snmp协议发送给cacti,就可以实现硬盘的监控了。
本例中主要监控硬盘温度、cpu使用率、网络使用率等。
首先安装snmp,smartmontools和super,super软件包是提权用的。由于运行snmpd的用户snmp没有读取设备的权限,su和sudo只能在终端里面使用,后台运行的程序无法获得root权限。这个问题折腾了我很久,由于英语水平实在一般,逛了几天debian官网才找到了super这个软件包,可以为其他用户以root的身份执行特定指令。
apt-get update
apt-get install snmpd
apt-get install smartmontools
apt-get install super
配置snmpd.conf,编辑/etc/snmp/snmpd.conf。
配置团体名、监听端口等等,具体看配置,应该很容易明白。
特别注意的是新版本的snmpd不能使用exec来执行自定义脚本,改成用extend了。注我的snmpd版本5.4.3
agentaddress UDP:161
sysLocation home
sysContact D2O
sysName PogoPlug
com2sec ro default public
com2sec rw localhost private
group public v1 ro
group public v2c ro
group public usm ro