|
|
之前用过一款监控网络流量的插件,感觉不太好用。因为他的in和out值只能限制到一个值。下面新用一个插件in和out值能够分别定义。和以前的插件方法大概相同。
& R4 \0 D1 V: y7 W5 N & D! h5 B- s" K7 Z7 e: l
1. nagios主机安装net-snmp和RRDTOOL
0 f/ b% z, A9 C; i2. 参照cacti,windows和linux的监控。在被监控主机上添加nagios主机IP
* A# t- X: ?4 ~5 d0 r' c
% o$ g$ N- p" j) S- s" I! s1. 查找以下字段1 w4 {2 K; D. O+ G6 A K
# sec.name source community
9 z0 R* s7 B7 K4 \* scom2sec local 127.0.0.1 public
+ h) t0 [) u) T; N( Rcom2sec local 192.168.2.2 public
/ D7 s2 @" ^8 |2 r#将"comunity"字段改为你要设置的密码.比如"public".将“default”改为你想哪台机器可以看到你的snmp信息,如192.168.2.2,我这里将source修改成了nagios主机。
e( j: D$ a8 ~8 q% q2. 查找以下字段9 _9 {2 c- a0 q% O) `* Y' ~
# context sec.model sec.level match read write notif/ \8 N: i. P8 T( I
access MyROGroup "" any noauth exact all none none
J# |3 M: n! C& G0 e% caccess MyRWGroup "" any noauth exact all all none: M: _6 i8 d) L- M) g/ x5 Q+ g* s. k& ~
#将read字段修改成all0 w4 g/ L3 L' ?
3. 查找以下字段
& {0 J1 l. H% ~" z# incl/excl subtree mask+ J- T1 E. B/ z& K+ f# c/ V# [5 H
view all included .1 80
5 q- H. n6 M6 e6 k#把view前的#去掉
( R( t. _# m; y1 Y 5 D) f J6 c7 d3 \; Q: l2 L6 Z5 d# k7 \
3. 测试
) g' z, S/ z6 b+ n8 z2 ^4 \重启 snmp. G+ G* D8 ?+ u7 M" @$ @
service snmpd restart) V: y$ _4 M* r8 ^/ B
在被空端:
7 o( T' V: T4 o; E+ @snmpwalk –c public –v 2c localhost
/ e% P! j9 v$ m3 R* |% [& `在主控端测试
( f& Z1 |* u/ m. \1 Csnmpwalk -v 2c -c public 被控端ip |grep IF
- n9 n0 U5 M9 X' \( |如果没有if信息不能获取流量
2 u. P1 b# z' _) K6 y3. 获取被控端网卡信息, n% {, A3 S. L* J
2 o9 z1 J( H V+ Y: V
[root@localhost libexec]# ./check_traffic.sh -V 2c -C public -H 192.168.2.6 -L* T9 Q9 m7 K8 \1 x
List Interface for host 192.168.2.6.
" ^8 ?* i6 w0 M1 `, BInterface index 1 orresponding to lo
0 c+ s, w0 B+ Y+ R) J4 OInterface index 2 orresponding to eth05 @( V5 |, i& H) B, b
Interface index 3 orresponding to eth1
" [6 S4 Y; [* G# X/ T z + }! J6 T: {, ^9 J4 D
4. 在nagios主机上添加check_traffic脚本
8 @3 d/ _/ r) ]1 P3 e - o! Y- W% B' y3 t5 _6 V0 d
[root@localhost libexec]# ./check_traffic.sh -h3 U- a& K# P) z
Usage:6 d7 Y( T& J2 h2 d z2 i1 z2 r
./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
& d" V1 R5 T& m$ ]Example:3 @/ K8 h+ B9 c6 @( Q
./check_traffic.sh -V 2c -C public -H 127.0.0.1 -I 4 -w 200,100 -c 300,200 -K -B
/ |( J# n! t& a7 `8 a+ z5 \8 dOr -r to use Range Value Options:
, v8 f8 z n; X3 ~2 s./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
) v b0 G# E5 v O+ u7 W, {If you don't use -K/M -B/b options, default -K -b, corresponding to Kbps. (默认单位)
( @' ?( ]" s. a9 e2 r' E" QMake sure that the check interval greater than 5 Seconds.1 ]0 D" E7 E5 b
Or modify the Min_Interval var in this file Line 180.% L& {. {$ S. Y- V% [
And, if you want in Verbose mode, use -v, to check the debug messages in the file /tmp/check_traffic.$$.9 |8 z/ w2 u* T* x) J* M
Or use ./check_traffic.sh [ -v ] -V 1|2c|3 -C snmp-community -H host -L
6 }* h4 ~4 I( m* _( Z5 gTo list all interfaces on specify host.$ `: u0 D1 P4 u8 \9 I* {8 z% w
4 F N4 T& M% v6 P[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严重警告。, [" Y6 _) m$ z6 }
OK - It's the first time for this plugins run. We'll get the data from the next time.3 X* j( x6 |8 T/ ~) S
第一次执行,history data file(/var/tmp/check_traffic_${Host}_${Interface}.hist_dat)不存在,因此会由此提示,可以忽略,再执行一次可以正正常获取
/ \. ^% a2 N/ EOK - 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' i$ j$ u+ v0 q1 g; x( V/ s
5 e' C f# n) x- Y, y5. 在nagios的command文件里面定义check_traffic命令
0 C1 q5 H- n( L" B 8 z+ p: F9 j# ~8 x
# 'check_traffic' command definition! ?* D3 M1 m9 U5 Z$ F3 Y
define command{4 s% Z* A( [/ F
command_name check_traffic( G& J4 h, o' u* R. e. h# z
command_line $USER1$/check_traffic.sh -V 2c -C public -H $HOSTADDRESS$ -I $ARG1$ -w $ARG2$ -c $ARG3$ -K -B 监控单位可以自定义$ Q2 V# |- }( J8 _" z. `$ ?; O9 }4 m* \
}
3 w" t/ n+ ]# J9 U$ G7 g8 e
# }& C* b5 K# _( _1 W6. 在nagios的监控对象cfg文件里面添加check_traffic1 P7 v) ]5 R# B# A
% N% V$ B/ {" z* A2 l; }define service{0 m& W, u4 P* A+ ^- s
use generic-service
4 R! ?; O7 f4 J5 n7 P& }9 w/ I host_name linux' Y+ ~, N# i- Y! m) q% `6 L
service_description traffic
Z. W7 C+ ?/ V6 S check_command check_traffic!3!200,300!400,500 监控eth1网卡
, @0 c& _9 e' \ } #与定义的宏对应添加参数值 |
|