|
|
之前用过一款监控网络流量的插件,感觉不太好用。因为他的in和out值只能限制到一个值。下面新用一个插件in和out值能够分别定义。和以前的插件方法大概相同。) ?. v" J) b; |0 G7 [' i) V" o4 A, B4 w
4 f$ B+ H9 j5 r8 x, j- u/ W/ ~2 [& P1 o1. nagios主机安装net-snmp和RRDTOOL% e. F; y; l; i2 j, Z- T
2. 参照cacti,windows和linux的监控。在被监控主机上添加nagios主机IP: h& m5 `' p$ `+ o7 ?- |0 c+ |% Y2 m
" G N5 B# m- D# A0 i% }2 G7 V1. 查找以下字段/ P( a! h3 l t
# sec.name source community
4 U F4 O% V8 b4 X0 o( @com2sec local 127.0.0.1 public
' N7 E/ M* e& R( k* Ucom2sec local 192.168.2.2 public. c8 c, D+ O+ W5 `
#将"comunity"字段改为你要设置的密码.比如"public".将“default”改为你想哪台机器可以看到你的snmp信息,如192.168.2.2,我这里将source修改成了nagios主机。" a" U# _ a0 h* ~
2. 查找以下字段
! F# M0 ?# ^$ G. Q" B4 s# context sec.model sec.level match read write notif
! G: H; P- S8 W; v4 G, m- Aaccess MyROGroup "" any noauth exact all none none+ U) e1 C2 U& ~8 [: m! G
access MyRWGroup "" any noauth exact all all none: ]3 L8 ?" ?! n# ]6 Q5 M. Q
#将read字段修改成all
" Z8 B* T: V% L9 x' L3. 查找以下字段
. a# N) m0 ]* h3 E# incl/excl subtree mask
2 [+ _$ n* b5 C% w' E7 `view all included .1 804 J$ `% x5 K8 F- y C7 }
#把view前的#去掉8 S( s r& i1 q) F" n3 A" E
) q6 s# b; I' J m H3 Q- H4 p" L
3. 测试
% Y7 t) ~' t. S# h5 q( R8 }重启 snmp* K H% u A/ x1 u6 Z
service snmpd restart
- C- V" h* N( m$ V在被空端:& k5 k2 u% ]% Z+ K+ p2 Z
snmpwalk –c public –v 2c localhost1 X& ^7 H/ h, O5 h' M8 ^, S: z [
在主控端测试
& S; d% p2 @4 O7 E( t7 G; Wsnmpwalk -v 2c -c public 被控端ip |grep IF
' W' v/ K5 Z* S% f, J% p如果没有if信息不能获取流量
4 T7 G& X4 W* T, j3. 获取被控端网卡信息8 Y- y' m. b8 z
5 H( }, U* C; y/ O7 K
[root@localhost libexec]# ./check_traffic.sh -V 2c -C public -H 192.168.2.6 -L$ c* J {0 ?1 Y4 k9 o7 E! j9 h6 e' W
List Interface for host 192.168.2.6.
# V$ F/ D4 G2 ]. LInterface index 1 orresponding to lo& p! f. h8 w# Z
Interface index 2 orresponding to eth0& p2 p2 B5 d) H$ d
Interface index 3 orresponding to eth1
8 w2 G. e, ?" g ! G0 S0 v! N, b) X
4. 在nagios主机上添加check_traffic脚本
3 T# M2 g5 c9 o5 k* E ^( R' U/ q( G* d, x& c4 y0 D) h; m
[root@localhost libexec]# ./check_traffic.sh -h
" W4 o3 M# y4 l3 f+ S% \: rUsage:2 J9 E+ z/ t' e6 }5 P5 ]
./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/b7 \. P. u) s# E
Example:- T6 `3 ?" G1 T# E0 q
./check_traffic.sh -V 2c -C public -H 127.0.0.1 -I 4 -w 200,100 -c 300,200 -K -B" z; i. B) K" y7 c
Or -r to use Range Value Options:
! u8 Z1 V" r* G$ J' E2 p./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
/ F/ |8 \/ _! h3 c( [; _3 W2 `If you don't use -K/M -B/b options, default -K -b, corresponding to Kbps. (默认单位). f! [; {8 g( R6 T) D& L
Make sure that the check interval greater than 5 Seconds.
1 M7 s p/ Z5 D* `& r0 }Or modify the Min_Interval var in this file Line 180.
, d% O# h1 X X9 f! v1 Z: KAnd, if you want in Verbose mode, use -v, to check the debug messages in the file /tmp/check_traffic.$$.
. D7 J' X* m$ {/ W& [$ hOr use ./check_traffic.sh [ -v ] -V 1|2c|3 -C snmp-community -H host -L0 S& J9 u* I z4 q; I
To list all interfaces on specify host.
; d8 }( }( x* \0 q) \+ P % P) g- K( y. F4 d/ M4 E
[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严重警告。
' H% |( a* j8 u8 A# bOK - It's the first time for this plugins run. We'll get the data from the next time.
. A* u8 F' P2 E! U. S5 O第一次执行,history data file(/var/tmp/check_traffic_${Host}_${Interface}.hist_dat)不存在,因此会由此提示,可以忽略,再执行一次可以正正常获取" m {% |2 T" k+ L+ Z
OK - 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;09 L; z* x* v3 r/ g) l
1 s5 p, s# b4 U( E3 d5. 在nagios的command文件里面定义check_traffic命令6 O! }& \5 o) I4 B
% T. S6 o6 j* `$ d0 G: v/ p
# 'check_traffic' command definition
/ G b- R: c$ edefine command{
4 D2 B4 B4 C0 K# W+ [. o command_name check_traffic y ]5 q# z% M1 w! q2 @# y
command_line $USER1$/check_traffic.sh -V 2c -C public -H $HOSTADDRESS$ -I $ARG1$ -w $ARG2$ -c $ARG3$ -K -B 监控单位可以自定义" |( c$ U* s0 G' C6 c, ]
} A; N8 \' b& m# d: }% {
3 \3 V4 s4 J( Z6 k0 T; X; ?
6. 在nagios的监控对象cfg文件里面添加check_traffic
- \ o8 P" E1 R/ U
: K2 H# q1 I7 t/ V2 ydefine service{6 w2 Q, |5 K! H( l% A- x' z k
use generic-service
2 w3 p3 Z9 o- O4 Q% P host_name linux8 ` e: p( V8 Y! ]. d4 l3 h
service_description traffic& W# V( z3 k2 c2 r
check_command check_traffic!3!200,300!400,500 监控eth1网卡- S# x! W. ]! D t0 ^: U2 r2 U2 Z; b( U
} #与定义的宏对应添加参数值 |
|