- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
之前用过一款监控网络流量的插件,感觉不太好用。因为他的in和out值只能限制到一个值。下面新用一个插件in和out值能够分别定义。和以前的插件方法大概相同。. m, A7 E& Y, P7 A @+ ^
) M& O, d; P3 X( m. z _+ h5 [! x1. nagios主机安装net-snmp和RRDTOOL
% ?" X1 ]0 i5 Z9 [+ N2. 参照cacti,windows和linux的监控。在被监控主机上添加nagios主机IP
9 A7 M7 R. k L! e: ~
) H; o* Y6 Y2 Q# C- ~1. 查找以下字段
' x! r5 j c( c- X. [# sec.name source community
& x v* X* b: S& B8 x, gcom2sec local 127.0.0.1 public. j8 i; {8 ~( C* j6 [
com2sec local 192.168.2.2 public% g, B h" A8 c( r4 h
#将"comunity"字段改为你要设置的密码.比如"public".将“default”改为你想哪台机器可以看到你的snmp信息,如192.168.2.2,我这里将source修改成了nagios主机。" K. J% G) x! \
2. 查找以下字段: o8 `) W5 B w2 K x
# context sec.model sec.level match read write notif4 e5 o9 t% z# w9 a1 ^
access MyROGroup "" any noauth exact all none none6 c1 J9 f6 D6 w9 K- H
access MyRWGroup "" any noauth exact all all none, H$ p( o6 s8 N0 C
#将read字段修改成all
& o, {1 l% q$ e$ e$ V6 t3. 查找以下字段; k! x- ^0 z% V
# incl/excl subtree mask
) L) I$ f% q5 jview all included .1 80! D8 c" V3 r' M# N& t! n8 J5 w
#把view前的#去掉8 ?) ?8 D$ ]1 |) G
5 K% Q! F. Q9 ]8 f8 S3. 测试6 `+ D, j4 S0 ]6 v- J
重启 snmp$ {: y5 R+ ~: ?* J: b
service snmpd restart
5 S5 }- A' a q5 n- d, r在被空端:3 i6 b3 U2 `$ V# h
snmpwalk –c public –v 2c localhost
4 A) @: h5 F% r7 U! \' C在主控端测试
% @" v* j( q6 j9 {snmpwalk -v 2c -c public 被控端ip |grep IF. p/ e9 ^0 ~1 H9 m! E
如果没有if信息不能获取流量6 y' P/ J' K; _0 U# W3 Z! C
3. 获取被控端网卡信息
) S0 h- c- x9 d$ h
) } l$ E! ]$ @[root@localhost libexec]# ./check_traffic.sh -V 2c -C public -H 192.168.2.6 -L
, Q9 h' h/ D$ ^List Interface for host 192.168.2.6.0 c1 N% Q0 w) X* d9 M
Interface index 1 orresponding to lo
9 @* w& u# ]5 g# h# |- GInterface index 2 orresponding to eth0
8 V0 N. X% ?0 W2 v2 P3 gInterface index 3 orresponding to eth1
- _( q& w* r: S+ g( ~2 E* Y $ g3 ?2 I, m1 @' V3 r: h- J
4. 在nagios主机上添加check_traffic脚本
, l, D. c ]- j6 U
1 P R, e5 {: W' r [root@localhost libexec]# ./check_traffic.sh -h
9 Z+ y% \- y1 E7 lUsage:5 v9 }' o. E4 M* \+ ]9 p4 ]# }
./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
+ @* U" A }& k( w+ RExample:
1 P* M8 u! V' |./check_traffic.sh -V 2c -C public -H 127.0.0.1 -I 4 -w 200,100 -c 300,200 -K -B
& A& q$ H0 O, [! lOr -r to use Range Value Options:
! d; z! P7 V7 E./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
& W. y) t- y# [" p* P' uIf you don't use -K/M -B/b options, default -K -b, corresponding to Kbps. (默认单位)
- n8 C6 ~0 P' B+ `% y5 C0 Z. tMake sure that the check interval greater than 5 Seconds.4 ^+ R8 M$ e* i
Or modify the Min_Interval var in this file Line 180., a2 i# x# E4 o3 I& z
And, if you want in Verbose mode, use -v, to check the debug messages in the file /tmp/check_traffic.$$.' y9 s4 p4 C" ]0 m/ ~1 Q5 Y
Or use ./check_traffic.sh [ -v ] -V 1|2c|3 -C snmp-community -H host -L
! w: H: [' \5 Z+ nTo list all interfaces on specify host.
5 L4 {- O0 K# D) b
; }2 ?% e) Z5 H7 e1 ?+ _% L& M[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严重警告。+ c+ \4 o7 Z$ ` m: n7 T4 Q1 ^
OK - It's the first time for this plugins run. We'll get the data from the next time.
+ Z+ {: d& `* U; p+ i1 j3 x& t) e第一次执行,history data file(/var/tmp/check_traffic_${Host}_${Interface}.hist_dat)不存在,因此会由此提示,可以忽略,再执行一次可以正正常获取
/ E$ S3 b" `/ ^3 W& m4 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
8 s7 X- }/ S }0 C
- p$ N# x+ G) B6 [5. 在nagios的command文件里面定义check_traffic命令" c3 _6 z z1 j, h- u
# W# g7 `- o0 L$ b
# 'check_traffic' command definition; a3 j" n. X4 E; z7 K
define command{2 d; C1 g% D! j& g0 s. w/ v
command_name check_traffic) }! ]% T% }) f. Y `
command_line $USER1$/check_traffic.sh -V 2c -C public -H $HOSTADDRESS$ -I $ARG1$ -w $ARG2$ -c $ARG3$ -K -B 监控单位可以自定义
' Z+ V4 u5 p9 U8 J }
5 X) T) z) q* i$ y1 n* r5 o( {8 ^
' r1 Z4 {/ h1 B d9 ^& ^6. 在nagios的监控对象cfg文件里面添加check_traffic
3 ]+ k V* [8 h. b
, @ Y2 t- ^6 \0 B) q* e6 @define service{ F6 Q8 ? h1 @# ]3 G: d4 Q0 i
use generic-service& t+ O: J0 D# h) }, W( ^
host_name linux( {4 u1 ^5 `, y( c, [
service_description traffic
/ p* E7 {! U; G4 s9 n check_command check_traffic!3!200,300!400,500 监控eth1网卡
9 H, L! @1 @' c3 ^2 T } #与定义的宏对应添加参数值 |
|