用shell寫的check_traffic.sh能對服務器進行流量的監控。而且不用安裝任何軟件,拿來就用。于是就選了這個腳本作為流量監控的工具來使用。目前這個腳本的版本是check_traffic_v1.2.2。
操作很簡單。首先將check_triffic.sh腳本拷貝到/usr/local/nagios/libexec/里面。然后在/usr/local/nagios/etc/objects/commands.cfg 文件中添加
####################################################################### # # check_traffic # ####################################################################### define command{ command_name check_traffic command_line $USER1$/check_traffic.sh -V 2c -C zhuzhu -H $HOSTADDRESS$ -I $ARG1$ -w $ARG2$,$ARG3$ -c $ARG4$,$ARG5$ }
當然這是我的command文件內容。大家可以參照網上的自行定義。但要注意單位。
默認是Kbps。
然后通過/usr/local/nagios/libexec/check_traffic.sh -V 2c -C zhuzhu -H 192.168.0.202 -L
去確認自己要監控對象的網卡代號
List Interface for host 192.168.0.202.
Interface index 1 orresponding to MS TCP Loopback interface
Interface index 2 orresponding to Citrix PV Ethernet Adapt
輸出信息中index后面的數字就是你要監控網卡的代號
可以自己通過命令先執行一下:
/usr/local/nagios/libexec/check_traffic.sh -V 2c -C zhuzhu -H 192.168.0.202 -I 2 -w 10,10 -c 30,30
輸出:
OK - The Traffic In is 4Kbps, Out is 0.0Kbps, Total is 4Kbps. The Check Interval is 127s |In=4Kbps;10;30;0;0 Out=0.0Kbps;10;30;0;0 Total=4Kbps;20;60;0;0 Interval=127s;1200;1800;0;0
V 代表snmp版本
C 代表community的名稱
H 代表主機IP
I 代表網卡號
w 、c就不必說了吧
補充:10,10 30,30(代表in,out)
現在編輯services.cfg
define service{
host_name 192.168.0.202
service_description traffic
check_command check_traffic!2!10!10!30!30
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups wingroup
}
然后重啟nagios服務就應該齊活了。但是其實不然,我在監控公司服務器外網情況時,尤其是監控windows服務器(而且是跑了hyper-v的服務器時)。報了諸如:
SERVICE ALERT: 192.168.0.202;traffic;UNKNOWN;SOFT;1;Maybe 32 bit counter overflow, because we got a negative value here.
SERVICE ALERT: 192.168.0.202;;traffic;UNKNOWN;SOFT;3;Unknown - Read or Write File /var/tmp/check_traffic_192.168.0.202;_11.hist_dat_root__32 Error with user uid=517(nagios) gid=517(nagios) groups=517(nagios)
等報錯著實廢了會兒工夫排錯,后來參考石頭版主的方法:
如果以非nagios用戶身份,手動測試執行過該腳本,請在正式使用該腳本前,刪除/var/tmp下對應測試生成的/var/tmp/check_traffic_${Host}_${Interface}.hist_dat文件,否則會造成nagios用戶無法讀寫該文件的錯誤。
均將問題一一解決!
然后就能看到以下信息:
check_traffic.sh非常好用,結合網上還有監控mysql的slave狀態等自己寫的小腳本。我不得不說開源的魅力確實太大了?。?!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。