现在的位置: 首页 > 综合 > 正文

mrtg 的配置和使用(从网上搜集的资料,自己整理过的)

2012年08月04日 ⁄ 综合 ⁄ 共 3667字 ⁄ 字号 评论关闭

预备条件:

mrtg在安装前需要有以下包:gcc,Perl,gd,libpng,zlib

可以使用rpm –qa|grep ** 来查看服务器中是否有这些文件

安装步骤:

1.       安装mrtg

./configure –prefix-/usr/local/mrtg  (安装到自定义的目录上,本例子是安装到/usr/local/mrtg的目录下)

make ---编译

make install ---安装

2.       配置snmpconf 文件

vi /etc/snmp/snmp.conf

#view systemview included mib2

改为

view all included .1

access notConfigGroup “” any noauth exact systemview none none

改为

access notConfigGroup “” any noauth exact all none none ----以只读方式查看

保存,重启snmpd服务

 

其实配制一个snmpd.conf文件不算太难,

1)首选是定义一个共同体名(community),这里是public,及可以访问这个public的用户名(sec name),这里是notConfigUserPublic相当于用户notConfigUser的密码:)

#       sec.name  source          community

com2sec notConfigUser  default       public

2)定义一个组名(groupName)这里是notConfigGroup,及组的安全级别,把notConfigUsr这个用户加到这个组中。 

            groupName      securityModel securityName

group   notConfigGroup   v1           notConfigUser  

group   notConfigGroup   v2c           notConfigUser

3)定义一个可操作的范围(view)名, 这里是all,范围是 .1

    #       name           incl/excl     subtree         mask(optional)

       view  all             included     .1

4)定义notConfigUser这个组在all这个view范围内可做的操作,这时定义了notConfigUser组的成员可对.1这个范围做只读操作。

     #       group          context sec.model sec.level prefix read   write  notif

access  notConfigGroup ""      any       noauth    exact  all  none none

 

3.       建立mrtg的工作目录。将生成的web页放到该目录下。最好直接建立在apache默认的目录下。也可以单独建立,如:mkdir /var/www/html/mrtg,但需要在apache配置文件中设定指向路径。如:

<VirtualHost 10.217.10.89:80>

    ServerAdmin webmaster@dummy-host.example.com

    DocumentRoot /var/www/html

#    ServerName dummy-host.example.com

#    ErrorLog logs/dummy-host.example.com-error_log

#    CustomLog logs/dummy-host.example.com-access_log common

</VirtualHost>

这样,就可以在ie栏上直接输入ip/mrtg/,就可以访问了

4.       生成配置文件

/usr/local/mrtg/bin/cfgmaker –output /etc/mrtg.cfg  public@10.217.10.89(监控的服务器ip

5.       修改配置文件

vi /ect/mrtg.cfg

#for UNIX

#WorkDir: /home/http/mrtg

改为

#for UNIX

WorkDir: /var/www/html/mrtg  ----刚才建立的工作目录

加入

Language:gb2312  --指定页面显示语言为中文

保存并关闭

6.       执行mrtg

/usr/local/mrtg/bin/mrtg /etc/mrtg.cfg

此时会报告错误,不用理会,连续执行3次后错误应该会消失,如还继续保错,则应为配置文件出错

7.       ie窗口中打开对应的url 即可看到了

8.       可以使用crontab –e 编写自动更新时间

*/5 * * * * /usr/local/mrtg-2/bin/mrtg /etc/mrtg.cfg

5分钟运行一次

这样就配置好了,默认的

mrtg只监控网络流量。不过,我们可以通过编写脚本来实现对cpumem 等东西的监控。下面介绍一下如何添加脚本。以mem为例

 

配置步骤:

1.       编写脚本(perl  shell 都可以)

vi mfree.sh

#!/bin/sh
/usr/bin/free -m | grep Mem |awk '{print $4}'
/usr/bin/free -m | grep Mem |awk '{print $2}'

 

2.       修改snmp配置文件

添加:

exec .1.3.6.1.4.1.2021.53 mfree  /bin/sh /root/mfree.sh

其中.1.3.6.1.4.1.2021.53中的53是自定义的,只要不与其他的重复即可

mfree 是文件名字,后面是他的存放的路径

3.       修改mrtg.cfg的配置文件

添加:

Target[wy1_mem]:`snmpwalk -v 1  192.168.13.103 -c public .1.3.6.1.4.1.2021.53 | grep 53.101 | awk -F\" '{print $2}'`  --------------192.168.13.103,为要监控的服务器ip
Xsize[wy1_mem]: 300
Ysize[wy1_mem]: 100
Ytics[wy1_mem]: 7
MaxBytes[wy1_mem]: 1006
Title[wy1_mem]:Memory State of WY1 IP 192.168.13.103 Server
PageTop[wy1_mem]:<H1>Memory State of WY1 IP 192.168.13.103 Server</H1>
ShortLegend[wy1_mem]: MB
kmg[wy1_mem]: MB
kilo[wy1_mem]:1024
YLegend[wy1_mem]: Memory Usage
Legend1[wy1_mem]:
可用内存
Legend2[wy1_mem]:
总内存量
Legend3[wy1_mem]:
可用内存
Legend4[wy1_mem]:
总内存量
LegendI[wy1_mem]:
可用内存
LegendO[wy1_mem]:
总内存量
Options[wy1_mem]: growright,gauge,nopercent

各个标签的含义:

Target指的是mrtg从那里取画曲线的值,此处可以从snmp和脚本取值,如从脚本取值需注意,需要前后用`来指定脚本路径

 []指这个配置段的名称,这里为wy1_mem,届时会在mrtgworkdir里建立同名的目录
Maxbytes
mrtg取值后能表现的最大值
YLegend
指再图标中纵向的名称
ShortLegend
指在图标中数值后面所跟的单位
LegendI
传递过去的第一个值,即snmpwalk -v 1  192.168.13.103 -c public .1.3.6.1.4.1.2021.53 | grep 53.101 | awk -F\" '{print $2}' 返回的第一个值
LegendO
传递过去的第二个值
Title
网页title
Pagetop
网页显示名称

注:有的不支持中文,换成英文即可。

4.       重新启动snmpdmrtg即可

贴上几个有用的脚本:

CPU数据的抓取脚本

[root@wy1 root]# cat  cpustat.sh
#!/bin/sh
idle=`sar  -u 1 3 | grep Average | awk '{print $6}'`
used=`echo "101 - $idle" | bc -l -s`
echo $used
echo $idle

DiskIO数据的抓取脚本

[root@wy1 root]# cat  iostat.sh    (显示硬盘IOk/s
#!/bin/sh
used1=`sar -d 1 3 | tail -1 | awk '{print $4}'`
used2=`echo "$used1 / 2" | bc -l`
echo $used2
echo $used2

 

 

 

 

 

抱歉!评论已关闭.