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
group private v1 rw
group private v2c rw
group private usm rw
view all included .1
access