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

 

 

enjoy!!

原文首發CSDN博客,轉載請保留作者和出處,謝謝!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章