+ 湖南.大学生科技创新平台's Archiver

maozilee 发表于 2008-3-26 23:55

MRTG配置完整全功略

MRTG 主要功能: a|6l%Qq6LU}
}:o&e#^3F"~'oT`
用一个网页来监视系统的CPU,NIC,MEM,SWAP,DISK usage, DISK I/O.情况.
PK5iMfr*B*|
g!MS#|)T7P)ja6{
-a8VB)IZw] MRTG 配置完整全功略. d@ _7q%|Ct3@)r
最近有不少朋友在问MRTG的问题,我前一段时间也搞了一些,今天花了一天的时间一边重新做一遍,一边写文档.现在文档写完了,把它拿出来共享给大家. 写文档是件辛苦的事,由于水平有限,里面如果有什么错误的话,就帮忙指出. f+a*Yrp5M1[6T
请相信如果照着这个来做,MRTG就会做好. xJp9tG5sQ0g3N

gE-i?~+fY 主要功能:
k&q7ON(OM]1?8X 用一个网页来监视系统的CPU,NIC,MEM,SWAP,DISK usage, DISK I/O.情况.
Z.OH g#E|vT 里面的script有部分是自已写的,也有部分是下载的.像磁盘空间那个script是下载的,但是觉得功能不是很好用,由于有现在的也就没有再写,如果哪位有更好的script忘请共享.!`-L^XR,t _8ETc
eAn8e w
5dW$ZZ K*W`3rs
一、安装. #@ ?-`w.k"Y3tS&b:]g
P\4s^L+?3i"V*A
B[rV|(B6Hv y(}6Q
1.需要的RPM 9|2?Pb6[r
RHEL 3.0/4.0的安装CD带有MRTG的RPM安装包. 为了使用MRTG的一些脚本,需要安装其他的一些安装包.
d GiIvV Sysstat.rpm 系统状况监视安装包.(cpu.sh)
y H?wV*@| Procps.rpm 内存,Swap 使用情况工具等(cpu.sh,mem.sh,swap.sh) x0mI2FgPb
Coreutils.rpm (df.pl,disk.sh) 0Bw TQo"^4d
gd-1.8.4-4 s!}Y&]*u
gd-devel-1.8.4-4 |8F%Cg&Dk2^.k
perl-5.6.0-17 h+Q~ aF3p6O3S\#r
perl-CGI
j;Fj-B5^6m mod_perl-1.24_01-3
F3w,A'kE$F)x.l J I libpng-1.0.12-2
o-Z(U6K%?;Y+V7pj} libpng-devel-1.0.12-2 M)A0~m.m4~?Z;Z
gcc-2.96-98
7dIE1@1^eP2H gcc-g77-2.96-98
\/j!e6nzy6s gcc-c++-2.96-98
3n { sml v/{Ae zlib-1.1.3-24 c2v+nn,f1Gh
zlib-devel-1.1.3-24 #`tdK8|)u,mVPY
httpd(apache)
^W,}Mpk7a]p net-snmp O.M,[ uUp
mrtg
-?,an|y J7Ru E)t 检查装有没有上面rpm包.
\+f+hN(Y,v3K
3RZe3k,R4u_@8e%pjN 4R_hyzJN2{7d'F
2.安装MRTG ]L2J^ d
Rpm –ivh mrtg -2.9.29-4.ent.i386.rpm
X^-pq#Ar!D![*i
UQCB!^#o 3l!BGEk
$Y6M;?j5RZ.l2l8m
.}y+g4|$L4V

8jNe#EX#Nn%c g b 二、 配置SNMP 让他可以配合MRTG工作 }x!mR1e@
编辑/etc/snmp/snmpd.conf +_'YBLb:xL
把下面的#号去掉 h}e;a0]%r cV+i
#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc #在89行
2?'\b R e 把下面的语句#在62行 @;{M!Sz_c;S
access notConfigGroup "" any noauth exact systemview none none   z}mA;W
改为:
;C[Ney FA7H access notConfigGroup "" any noauth exact mib2 none none /fM\w*c&?+Gj
改完重启一下snmp ,`2ez-l)U t(t~
Service snmpd restartxk&iJz#I `

QEV8q(?4g!L 检查snmp服务是否正常c q_zn%{#s^
snmpwalk -v 1 192.168.104.201 -c public interface&U{@U5M3i
snmpwalk -v 1 192.168.104.201 -c public system
zv%K[#`2j 如果snmp工作不正常收集不到interface信息则mrtg无法工作正常
G$NtD&g4S5} 删除/etc/snmp/snmpd.conf
hw(p8Q9a0a 执行snmpconf来创建新的snmp MIB库和帐号
5M?dj sBP
i3E,A$B*t 8]8F P5QswA:Pe
@ I2U*Bb v L3r
三、 配置MRTG
0nU1ET"u&{ 1. mkdir /var/www/html/mrtg
v&\z rO/Z1s'g 2. mkdir /opt/mrtg  
&G{ MLY7pSD U 3. 复制mrtg的script 从xmnitplatform01 到/opt/mrtg Cpu.sh , mem.sh , swap.sh, diskperf.sh, disk.pl S \?9X9HW_#N
4. cp /var/www/mrtg/* /var/www/html/mrtg g3e*xh%Nq%J!w
5. /usr/bin/cfgmaker –output=/var/www/html/mrtg/mrtg.cfg [email=public@10.102.17.100][color=#0000ff]public@10.102.17.100[/color][/email] 用来配置一个mrtg7{X([V"v*fQ
配置文件.J2E3o V}(K+U
如果添加多个机器的话可采用下面的格式X'YU E+UV^
6c5PT W f'f|H
cfgmaker --output /var/www/html/mrtg/mrtg.cfg \
!osOuDF-j_1\ --global "WorkDir: /var/www/html/mrtg" \0Rnt&e1{,y&NHgA6\ ts
--global "Options[_]: growright,bits" \
!yME:W-w g,}-up --ifref=ip \
)y!l&a|z [email=public@192.168.104.205][color=#0000ff]public@192.168.104.205[/color][/email] \
7r6G ]d3_ --global "WorkDir: /var/www/html/mrtg" \4K(z!k._M&r!kj9Z
--global "Options[_]: growright,bits" \
"^C3}?0O^$\ J;K --ifref=ip \D]K/ii CXJ n
[email=zzvcom@192.168.104.201][color=#0000ff]zzvcom@192.168.104.201[/color][/email] \
%Zkg R*h0?1n (6) 编辑MRTG的配置文件 vi /var/www/html/mrtg/mrtg.cfg '? q:[7J)af+I7V
  (1)把WorkDir: /var/www/html/mrtg 加入到配置文件的前面. uM+tj w
(2)把Options[_]: growright, bits 前面的#删掉. |M NV"mp(q
(3)把要监测的几个ITEM加入到配置文件里面去.
5O,E%r;D { E9X0C 1) CPU q\ iDC
  ################CPU######################
@f^&` q ^%P|[ Target[cpu]: `/opt/mrtg/cpu.sh`
D"^ i3p0jz2K0o1}2g MaxBytes[cpu]: 12500000 ^9`{ `x;e j
Title[cpu]: CPU -- XMNLINUXTEST02
cgq|u:Th Options[cpu]: gauge,nopercent,growright
*jE9RJk}b,E YLegend[cpu]: CPU loading (%)
/^9QZR[ A+O+C5n ShortLegend[cpu]:% 8|7N+x ]2]t-~Vy
LegendO[cpu]: & CPU USER;
4M5u1C M#r LegendI[cpu]: & CPU SYSTEM; j_$t2Y#tj[:C6^+L
PageTop[cpu]: <H1>CPU  -- XMNLINUXTEST02</H1>
Jo,c NL"I 2)NIC 用配置文件自动配好的. "XH9F!a w)[ g:z
3)MEM  这个图最大设为2G,如果服务器有更大的内存,可以修改Maxbytes.
t fwn"@ y2G ###############    MEM  2G  ################# j%J"r c'ku1q
Target[managemem]:`/opt/mrtg/mem.sh`
;m$r)v1M-cNI Unscaled[managemem]: dwym
6{t5vd9Y;GNY n MaxBytes[managemem]: 2048000
@pJ+F a'[h Title[managemem]:Memory ;QW7u6xVoU
ShortLegend[managemem]: & 5kzT0dc5V
kmg[managemem]:kB,MB I M;w fO
kilo[managemem]:1024
zn3vp6i*K|F"T\5C YLegend[managemem]: Memory Usage )}!J"`4J5Goo2joU,W?
Legend1[managemem]: Total Memory
#P+l|v*M Legend2[managemem]: Used Memory l#_-oLj$??y
LegendI[managemem]: Total Memory t%^Nb b/Q
LegendO[managemem]: Used Memory 7k G1o$][` V
Options[managemem]: growright,gauge,nopercent
6b vJ@ |9Jq/}` [f PageTop[managemem]:<H1>Memory -------XMNLINUXTEST2</H1> `+L2h rHB:N4fl3Y
4)Swap   也是设为2G,根据实际情况改MaxBytes. &D/`-qv5?$C X
################### Swap  2G####################### *ZU$`f,jm
Target[swap]:`/opt/mrtg/swap.sh` eY-p6u,x2wm"x5JW-N
Unscaled[swap]: dwym
NTt5U!]^Kh;@/J MaxBytes[swap]: 2048000
Y%Scx Mm@!~ Title[swap]:Memory State of Server *[LU:e!d
ShortLegend[swap]: &
&r&oHW,V-dh r kmg[swap]:kB,MB 7Z$UA.ca-\A:]
kilo[swap]:1024 /KU-S#AZ9S!QA%q
YLegend[swap]: Swap Usage
U8`vpR3wp Legend1[swap]: Total Swap
/F S9Z#f8~h @5q Legend2[swap]: Used Swap 0c(gi6H(d ?MKp
LegendI[swap]: Total Swap
0M!z\4C@ LegendO[swap]: Used Swap
p'Ku4dvn Options[swap]: growright,gauge,nopercent mB ^iR&\
PageTop[swap]:<H1>Swap-------XMNLINUXTEST02</H1>
q}3Fdpw b qj$ooyg E:[Z
5)设置磁盘使用量  最大为480G,可以根据实际情况修改MaxBytes lTY$Uc
################## Disk Space  480G  ######################### v1Zc2f:ulc$?'@$tV
Target[disk]: `/opt/mrtg/df.pl` 9r*R/pa K9eZF
Title[disk]: Disk Space ----XMNLINUXTEST02 t"N iQ-`Aub$R!^ i
Unscaled[disk]: dwym
)K#HP4O/^8T MaxBytes[disk]: 465247550
#E-u,Af4j kmg[disk]: KB,MB,GB
+J*Jv\ |d(H LegendI[disk]: Total Disk Space
C1h:aP:Pbr#?.z LegendO[disk]: Used Disk Space UWg M9P D
Legend1[disk]: Total Disk Space G3A@7Z8L#htu)R
Legend2[disk]: Used Disk Space
m&wsfNK%x YLegend[disk]:  Megabytes
l*Fl-m.^f Mi ShortLegend[disk]: &
7TsaR.g1@6D&[ Options[disk]: growright,gauge,nopercent
'McI*z][ PageTop[disk]: <H1>Disk Space --------XMNLINUXTEST02</H1>;R:V9T:N6n,YS#Gf*ix/JY
6)磁盘I/O的检测,如果需要的检,更多的分区,修改并复制这个部分,并修改diskperf.sh
`D*VxQ*V ################## Disk I/O 100K/sec  /DEV/SDA  ########## $x8?|5h/S5T RM/x
# If you want monitor more disk, please copy below create 6T1J2{`|
# now monitor job, and copy & modify the diskperf.sh to setting disk.
2zj DT/H0G&~R0R Target[diskIO]: `/opt/mrtg/diskperf.sh` @?7s Rjy"z.E
Title[diskIO]: Disk HDA I/O Utilization Report 5x;g?'sm
Unscaled[diskIO]: dwym :b,NXwA c,E
MaxBytes[diskIO]: 100
8ge-P.@sbX PageTop[diskIO]: <H1>Disk I/O Utilization Report</H1>
`0~{ Zo*B7w r kmg[diskIO]: KB,MB,GB
)Tji4D w{ LegendI[diskIO]: Disk I/O KBread/sec
W4y%y J:OJ LegendO[diskIO]: Disk I/O KBwrite/sec
].uXMY Legend1[diskIO]: Disk I/O KBread/sec 5^!lP)u"g0k2c!k A l
Legend2[diskIO]: Disk I/O KBwrite/sec XU${vrU I X _y-x+W
YLegend[diskIO]:  Megabytes '|?Q5WBR$T
ShortLegend[diskIO]: & lb'rqqU8@
Options[diskIO]: growright,gauge,nopercentC GOq@/`5Q

;HU7_ U m ?
7\'\a%Es$Z:P :iS%n"i&~n5a,y

g,jq&[P vQeNc.i 4. 编译配置文件
q}4_R5E#k 先在/etc/profile 加入两个参数 +{9s!{m \;p
LC_ALL=C )LVz5Ej#O$K
LANGUAGE=on kQ6{g-| Mz$w.B

[ w%y)L j2`;Shg"C @ # env LANG=C /usr/bin/mrtg /var/www/html/mrtg/mrtg.cfg   |b!zd XW
前面两次会出错,多运行几次就没有问题. ?M+v P*sgx c6`
5. 生成html文件.
| ? L#x ]b x-Y+\!L /usr/bin/indexmaker –output=/var/www/html/mrtg/index.html –title=主机名 /var/www/html/mrtg/mrtg.cfg
3c b2FY4P+m 还可以
h'YO2q x$l [] /usr/bin/indexmaker –output=/var/www/html/mrtg/index.html  /var/www/html/mrtg/mrtg.cfg
It$IeX0nins\_ 6. 配置apache 的设置.
8?'xf@F8]e #vi /etc/httpd/conf.d/mrtg.cfg
o,Ag Y3i3h'K 把Alias /mrtg /var/www/mrtg 改为Alias /mrtg /var/www/html/mrtg b0p7D^+aP2j7}
把Allow from localhost  改为Allow from all
-t2K-I'S o I`V #service httpd restart ,重启apache.
cO"q-C&J1G 7. 配置,自运行脚本,每五分钟自动运行一次.
]A8xy9p!| s9p&H 在root 下启动 crontab –e 添加计划
^$A7r`$a     */5 * * * *  env LANG=C /usr/bin/mrtg /var/www/html/mrtg/mrtg.cfg
m,s0|3Z i7B 8.  确认service http&crontab的运进级别.
.J.U Ad ~ 可以用下面两个命令查看这个服务的进行状况,
(|1\ K\$H%r #chkconfig –list |grep httpd
q-m\3O `;M#j P #chkconfig –list |grep crontab
&O$@,[n A&{    或用设定运行级别
^2Zw"rRqu e C chkconfig --level 35 httpd on
FK$}&U-sa/}^_ chkconfig --level 35 crontab on
3{$^&kTpY)`
d7c,Hy{1sX0Xv
~8C1J'q;h*?$mF ox8v k-H$F c
H4U$E7a S
5. 常见问题
Af.}*pz/h"eC (1)问:实际内存或硬盘跟的图里面的值相差太多,要吗线超出图表,要吗,在图表的下面. 如何更改图表的比例? 如内存实际上只有512M,但表里面内存显示最大为2G. :_{2C:]#C] A8q
答:修改/var/www/html/mrtg/mrtg.cfg 找到相关的部分, 修改MaxBytes[managemem]: 2048000 中的2048000为512000
T k6r9lt8B+O,k*o (2)问:我有几个硬盘,如果要监测其他的硬盘IO? ^2ju!F'Pt C0O
答:首先复制一份diskperf.sh 成diskperf2.sh ,再修改diskperf2.sh里面把hd=xxx改为你要监测的硬盘,再修改/var/www/html/mrtg/mrtg.cfg 复制sda的那一部门,并修改相关的部分. /`*n~/jig
如Target[diskIO]:`/opt/mrtg/diskperf.sh` 改成Target[diskIO]: `/opt/mrtg/diskperf2.sh`
uQH l"Pq~   这一部份的[diskIO]改为disk2IO YeT1RXUar*U1P
(3)问:修改了配置文件/var/www/html/mrtg/mrtg.cfg 后,网页没有生效 %Z xT%T'a6Mz
答:修改完配置文件应该要重新用下面命令生成新的网页. ` W,B)y)cF
/usr/bin/indexmaker –output=/var/www/html/mrtg/index.html –title=主机名 /var/www/html/mrtg/mrtg.cfg
;v9L!mc _9_ l*W        (4)问:如何看我的MRTG图. MV |{6{.Lo
         答:用http://你的IP/mrtg/ 就可以看到了. K:[&B*f7Cp
    -I:d$@.sh(JM
附:1: mrtg.cfg 里面几个参数的意思.
6AH1\n!j,f n Target:是要执行的脚本
3Y U%E7Y.V'xIZnL/o Xsize:生成图表的横向宽度(最大600)
Pf^vTY5el Ysize:生成图表的纵向高度(最大200)
m'?5[u$zJ} Title:标题
u!A9A1rI$rVF0N kMG: Change the default multiplier prefixes
GTMEb$k3g0R(]h Ytics:纵向划分为几个块(格子) ]g"T wnA|2|f
MaxBytes:图表纵向数值的最大上限
&AA?R.G.A+lcrb PageTop:页面上面的提示
%bo5\XI2yD kilo:一般是写1024,如果需要的话,是1000在计算机里的单位 _j{1u7w @8d8q8Q&q+i
LegendI:从SHELL返回的数据中的第一个 Bk fV/iJ
LegendO:从SHELL返回的数据中的第二个 C4giX!K%nQ
Options: growright,表示图表向右延展
1b3k~6`m O2Y 附2:各个script
-tUKo'v/Y&mB%Y Q%XN (1)
M;YcL8aS j c+v cat /opt/mrtg/cpu.sh
"f4Lf/^l0v #!/bin/bash K?-?8bE(Fz
cpuusr=`/usr/bin/sar -u 1 3 |grep Average |awk '{print }'`
+A.K8iD+R#].F K+fOE+Z cpusys=`/usr/bin/sar -u 1 3 |grep Average |awk '{print }'`
2qN*@EB*[}thw UPtime=`/usr/bin/uptime |awk '{print """"}'`
DRA?ug echo $cpuusr
2}:A f0IRC%l e echo $cpusys "y7ym'C1C[8E
echo $UPtime O'?`x GKA
hostname
|'@diX5?i (2)
Z(a|L$TC @-U.}m'| Ab Disk usage &NlI5v$H6eYCUJ
cat /opt/mrtg/df.pl Y'O Y7{s~7o9?I
#!/usr/bin/perl
wgJ#N d-|1iz9i # This script was written on Debian 3.0, it assumes that the command U4Rcs(j1u!` hN
# output(df -kl) looks like this: +P%p(}5x i
# Filesystem           1k-blocks      Used Available Use% Mounted on CYA9mLvq.l
# /dev/md0              95645100  30401312  64272080  33% / $ie T,D|EkjS5v
# /dev/hde1                14119      1159     12231   9% /boot ]^*aBK w h G
#
9g;X\A)}5Pte _ # In which case, this script returns : [Pp ` ~.T
# 95659219
S"c.[)t6w # 30402503 N*T;yZ5q3t~M
# when run.
8hq%~IE:U#]1zI foreach $filesystem (`df -kl | grep -v "Filesystem"`) 'sh9w3~}?g"Q\
{
E+?5Wn%J1s%u$Is @df = split(/\s+/,$filesystem); u?Z y4n j
$total += $df[1]; ,`wlG4BD!xV
$usage += $df[2];
NYD4~q*DVUN }
_!B FP_J9l print "$total\n";
/z6e(s6h&lS%T3T J print "$usage\n"; "Xztk?u+r"jp
hostname c3DaG+O/ny$q
(3) DISK IO
R^b&th`)LT ]# cat /opt/mrtg/diskperf.sh :v_%WqJ/n)DS4[
#!/bin/bash
x:f.yIFXj
5S5J|o\4e*]3G8| # This script will monitor the KBread/sec &KBwriten/sec of Disk, and sent out the Blk_read/s and Blk_wrtn/s to MRTG, to make the performance image.
*T;yY'H;f](?A #   Creater: CCC IT loren  ext:2288   2005/8/3 9hua{l v
# Set the who need monitor device. As sda ,sdb,sdc,sdd,hda.
lA%t jbO@ c "n m:{$F(C-F$H^SB+T

L]*c&e\&d#~*x#l _? f1t # disk=sda
0^0b KT @o'b hd=sda #^Kb$cxkK@&Cg
disk=/dev/$hd 2x,g(^$O!@/x/E9S0}
UPtime=`/usr/bin/uptime |awk '{print """"}'` ||2DUs0^+A
KBread_sec=`iostat -x $disk|grep $hd |awk '{print }'` 8\3Be`S#vX
KBwrite_sec=`iostat -x $disk|grep $hd |awk '{print }'`
N.l)d'`Ba!Ks echo "$KBread_sec"
H6[r,SM(Z$RR echo "$KBwrite_sec"
L(NnUi*s A.j hostname
6|.nN;Rg (4)MEMORY
*M Ec_j*M&^lU \@ cat /opt/mrtg/mem.sh
e i \ a#Ck.J&t #!/bin/bash MJ+QL EPf
# run this script to check the mem usage. #X(uS _2p$~%c [2r
totalmem=`/usr/bin/free |grep Mem |awk '{print }'` $@:R3}#k2{!p
usedmem=`/usr/bin/free |grep Mem |awk '{print }'` X.`SL[/N
echo "$totalmem"
7Bs*w|-lhl'D'f"l echo "$usedmem" 2TGk.p#U/z:i
(5)SWAP H/kWo:M A
cat /opt/mrtg/swap.sh
~:@N C.h uaPET #!/bin/bash
.CUb \De,A*Y(x2ZM # run this script to check the swap usage.
sUk/D*Cu"B2q T totalswap=`/usr/bin/free |grep Swap |awk '{print }'` 3Sp/@sd`
usedswap=`/usr/bin/free |grep Swap |awk '{print }'`
_wF+fl echo "$totalswap"
@p7@2^+V7iW echo "$usedswap"

maozilee 发表于 2008-3-27 00:01

MA5200取得PPPOE在线用户数

找MIB值,加在MRTG中:J:`/mMI
MRTG摸板:
9c9z}!wTz{ p # MA5200在线用户数
s*UXJ5m1td5}/I N Target[MA5200]: MIB-lj6[4Yq$h
RouterUptime[MA5200]: IPy,QV,N a)mWs'|L
MaxBytes[MA5200]: 1018*c} e1{'VIB
Title[MA5200]: MA5200在线用户数 E#G^_&a5W? g
PageTop[MA5200]: <H1>MA5200在线用户数</H1>
DKq8Vp)a(E Unscaled[MA5200]: mwd
s3|X.mN4C&g ShortLegend[MA5200]: 在线用户
X8o5}h:\6oyA suppress[MA5200]: y
'yu$h^uK&S0tX _ XSize[MA5200]: 350
p1oA O(Cm:Ye YSize[MA5200]: 200
(A;\C#f9dl%jx9z YLegend[MA5200]: MA5200
V#Gmwa Legend1[MA5200]: 用户在线数T1~4Db*H1Vl X
Legend2[MA5200]: 用户在线数9` vEY9w-`%p1Y2O
Legend3[MA5200]:
z'm%}3v7c Legend4[MA5200]:;U"]D!ZBS0V
LegendI[MA5200]:
/G"j3l:l3I:{w7l LegendO[MA5200]:

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.