PogoPlug折腾全过程--监控小盒子状态

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 public "" any noauth exact all none none
access private "" any noauth exact all all all
extend .1.3.6.1.4.1.2021.51 hdd_temperauter /bin/sh /etc/snmp/hdd_temperauter.sh

获取硬盘温度的脚本

我是放在/etc/snmp/hdd_temperauter.sh,与上面的snmpd.conf对应。snmpd进程是用snmp账号来运行的,smartctl前面加super可以以root身份运行smartctl,这样才有权限读取/dev/sda。

#!/bin/sh
#
#snmpget HDD Temperauter scripts
#By D2O
#v0.1 2013/2/26

super smartctl -A /dev/sda | grep Temperature | awk '{print $10}'


当然不是所有命令都可以super的,默认是所有的命令都不能super,通过编辑/etc/super.tab来添加可以super的命令。

在文件最后的地方加入。

smartctl          /usr/sbin/smartctl arg1 user~.*


cacit里面可以用以下语句获取自定义脚本的内容的OID。然后添加自定义模板,加入获取到的oid就可以作图了。

snmpwalk -c public -v 2c 198.18.8.252:161 .1.3.6.1.4.1.2021.51

PogoPlug折腾全过程--监控小盒子状态_第1张图片

 

PogoPlug折腾全过程--监控小盒子状态_第2张图片PogoPlug折腾全过程--监控小盒子状态_第3张图片

 

enjoy!!

原文首发 CSDN博客 ,转载请保留作者和出处,谢谢!

你可能感兴趣的:(nas,pogoplug,Debian,cacti,snmp)