|
|
之前用过一款监控网络流量的插件,感觉不太好用。因为他的in和out值只能限制到一个值。下面新用一个插件in和out值能够分别定义。和以前的插件方法大概相同。9 D0 _. o+ E0 M
& P& v/ x3 @9 X' {( G6 Z1. nagios主机安装net-snmp和RRDTOOL/ [! a4 ?2 f6 V& G" d4 [% x6 n
2. 参照cacti,windows和linux的监控。在被监控主机上添加nagios主机IP
$ `2 C- `0 \7 r) v0 m+ ?" ] : Z& j- ]% K x2 Z4 s' n
1. 查找以下字段+ F8 N# s4 h9 r- i1 R
# sec.name source community' x B9 w2 N4 K5 Q
com2sec local 127.0.0.1 public: J- A; @6 p0 M! v2 } \
com2sec local 192.168.2.2 public$ f4 w5 H8 \4 {) z1 S+ |$ ?
#将"comunity"字段改为你要设置的密码.比如"public".将“default”改为你想哪台机器可以看到你的snmp信息,如192.168.2.2,我这里将source修改成了nagios主机。
. u1 H5 l0 @% `! [& H& o! O! K2. 查找以下字段1 R7 }/ J! E9 |/ a' O9 M6 M, S8 O
# context sec.model sec.level match read write notif& O8 b: P! O0 G: \' d
access MyROGroup "" any noauth exact all none none$ c* _8 [( n) _+ j7 R
access MyRWGroup "" any noauth exact all all none; n( L5 X) g; ]6 |6 u0 F$ \
#将read字段修改成all
& g! ^( a) t* d% u3. 查找以下字段
; V9 C" z2 ?7 m# incl/excl subtree mask2 _2 b. R6 B8 |) u4 k6 t2 U' v4 E
view all included .1 80
2 g+ M) I$ Q Y* Q; d' l( m#把view前的#去掉
; Z; D/ h! c; v 5 |$ @9 q5 I# V( N J* _1 F
3. 测试
: N$ L; E* v' b- a! @重启 snmp+ w/ G7 ^/ B& `
service snmpd restart
% L2 |$ x0 S6 w在被空端:
& Y5 b* c0 R) b/ _& G& \% lsnmpwalk –c public –v 2c localhost
% |- G v4 E* {3 k- Q1 U( a0 Y在主控端测试
, y( b0 b& A4 t# p' ^snmpwalk -v 2c -c public 被控端ip |grep IF
9 Y. u) g' ]" `) u S% h! W* ]如果没有if信息不能获取流量4 f+ U$ A* j/ @
3. 获取被控端网卡信息2 J- P0 K: g& j
- N* k7 Z! c" b6 Z' t2 b, f3 K+ w# M1 P
[root@localhost libexec]# ./check_traffic.sh -V 2c -C public -H 192.168.2.6 -L
4 F, h% _2 ]. n1 ZList Interface for host 192.168.2.6.
5 k% b& H* D bInterface index 1 orresponding to lo E# M' s' b0 h3 Q: l8 [
Interface index 2 orresponding to eth05 Y6 |; P" ?8 w9 _
Interface index 3 orresponding to eth1
a# \4 F: E( b' a- d 3 l0 a$ g. A; a* a
4. 在nagios主机上添加check_traffic脚本2 p# L# {8 T4 r7 l
& A( i1 m& Y1 D W [root@localhost libexec]# ./check_traffic.sh -h' W% V9 d$ h# _& \
Usage:3 g; B! T, Q; j. Q% W% Y: |) B9 D
./check_traffic.sh [ -v ] [ -6 ] [ -r ] -V 1|2c|3 -C snmp-community -H host [ -L ] -I interface -w in,out-warning-value -c in,out-critical-value -K/M -B/b
. f6 u8 v1 c# T: MExample:
9 R0 z- A2 Y! X. v* O" t./check_traffic.sh -V 2c -C public -H 127.0.0.1 -I 4 -w 200,100 -c 300,200 -K -B
9 m0 ] @+ v, l8 W3 V& L3 X4 wOr -r to use Range Value Options:
8 A* y! A: C' p$ Z./check_traffic.sh -V 2c -C public -H 127.0.0.1 -I 4 -r -w 200-300,100-200 -c 100-400,50-250 -K -B
# S: U3 u& S' o. }- OIf you don't use -K/M -B/b options, default -K -b, corresponding to Kbps. (默认单位)
0 B! U6 v" I0 y, {Make sure that the check interval greater than 5 Seconds.+ W4 ?8 v' ]; \1 I4 R& {
Or modify the Min_Interval var in this file Line 180.+ _ b2 \3 ^- a) W
And, if you want in Verbose mode, use -v, to check the debug messages in the file /tmp/check_traffic.$$.% E v# [% m. x: M
Or use ./check_traffic.sh [ -v ] -V 1|2c|3 -C snmp-community -H host -L7 s% L, j$ T1 Q" a! U8 R
To list all interfaces on specify host./ h* Q1 G# o1 h; t5 V8 g: _
. H6 ~& S6 |) F9 `
[root@localhost libexec]# ./check_traffic.sh -V 2c -C public -H 192.168.2.6 -I 3 -w 200,300 -c 400,500 -K –B 定义in和out值分别超过200K、300K警告,超过400K,500k严重警告。" ]# D3 S; T6 L" b. M/ l5 O2 n' x
OK - It's the first time for this plugins run. We'll get the data from the next time.
0 Q# \) r( ?) ~, h9 G3 k+ S第一次执行,history data file(/var/tmp/check_traffic_${Host}_${Interface}.hist_dat)不存在,因此会由此提示,可以忽略,再执行一次可以正正常获取
9 v" V7 C$ L# e5 h+ VOK - The Traffic In is 1.3750KB, Out is 0.0KB, Total is 1.3750KB. The Check Interval is 104s |In=1.3750KB;200;400;0;0 Out=0.0KB;300;500;0;0 Total=1.3750KB;500;900;0;0 Interval=104s;1200;1800;0;0. [# u$ B; ], U& U5 a& j- y) r9 e
! v" b# k, _: D' \. S" ]5. 在nagios的command文件里面定义check_traffic命令
6 F. s# f) p7 @0 }! D! q, I
# v3 B9 @% S( k8 ^( \# 'check_traffic' command definition
3 J- i6 e$ x6 P4 y' }" [define command{- `1 a6 `8 H/ }, I
command_name check_traffic; u W& @4 I& p8 x: J: x! M
command_line $USER1$/check_traffic.sh -V 2c -C public -H $HOSTADDRESS$ -I $ARG1$ -w $ARG2$ -c $ARG3$ -K -B 监控单位可以自定义" v& J8 ?* t' _! F
}$ Q2 B L0 d$ X3 z1 ~' b
# K3 Q- r0 K! z b- b" q7 I8 W
6. 在nagios的监控对象cfg文件里面添加check_traffic
- I3 T6 O* n) v0 w 7 Z% G f' a* F" t! f
define service{
& i$ |4 w( a& D3 K1 F: \ use generic-service
- \0 H t$ }; r) i* t) m2 H host_name linux
+ c. C+ v# y, l2 E5 n" B service_description traffic9 ?7 L3 _* A+ _7 F. g
check_command check_traffic!3!200,300!400,500 监控eth1网卡
2 T# ]! R1 U! k% `3 S& W2 x8 z } #与定义的宏对应添加参数值 |
|