Dec 20

[原]让MRTG从脚本获取信息画图 晴

linuxing , 14:48 , 网络服务 » 性能监控 , 评论(0) , 引用(0) , 阅读(39310) , Via 本站原创 | |
    已经讲过,MRTG实际上是一个画图工具。它可以接受一些数值参数,并根据这些值构建一个二维图形以供监控使用。在 mrtg 这个程序中,其实他总共需要要求四个数据(前两个用来作图,后两个提供相关信息,基本上,绘图只会用到前两个数据),因此,你可以随时制作 MRTG 的图表,只要你能提供两个数字(x轴和y轴)给 mrtg 即可制图!下面,我就是要用脚本收集信息,然后提供数据给MRTG使用。

一、前提
正如上面提到的,只要提供数据即可。所以,snmp服务并不是必须的。但snmp协议是硬件信息发送的标准协议,只要打开相应的支持,其也可以提供CPU等资源信息的。而我下面描述的内容,仅是为了说明MRTG的用法,并不一定是最好的方式。
这里假设你已经按照[原]使用MRTG画图进行监控,实现简单的网络流量监控,才开始下面的配置。

二、编写脚本
以监控CPU负载为例,首先准备好对应的目录:

# mkdir /opt/mrtg

然后编写脚本,内容为:
引用
#!/bin/bash
cpuusr=`/usr/bin/sar -u 1 3 |grep Average |awk '{print $3}'`
cpusys=`/usr/bin/sar -u 1 3 |grep Average |awk '{print $5}'`
UPtime=`/usr/bin/uptime | awk '{print $3 " " $4 " " $5}'`
echo $cpuusr
echo $cpusys
echo $UPtime
hostname

给与执行权限,并运行:

# chmod +x cpu.sh
# ./cpu.sh

结果是:
引用
0.33
2.32
2 days, 10:23,
mail.zoosoft.net

可以看到,我们可以从脚本中得到4个值,其中前面两个是MRTG的x轴和y轴,后面两个是参考信息,分别是运行时间和主机名。

三、修改MRTG配置
修改您的MRTG配置文件/etc/mrtg/mailmrtg.cfg,在最后增加:
引用
Target[cpu]: `/opt/mrtg/cpu.sh`
MaxBytes[cpu]: 100
Title[cpu]: CPU 负载图
#Options[cpu]: gauge,nopercent
Options[cpu]: growright,gauge,nopercent
YLegend[cpu]: CPU loading (%)
ShortLegend[cpu]:%
LegendO[cpu]: & CPU 使用者负载
LegendI[cpu]: & CPU 纯系统负载
PageTop[cpu]: <H1>CPU -- 主机负载率</H1>
<TABLE>
   <TR><TD>System:</TD>     <TD>RedFlag DC Server 5.0 SP2 in Linux Kernel 2.6.9-42.7</TD></TR>
</TABLE>

配置文件含义如下:
引用
[ID]:其中定义的是装置名称,用于分组、区别,同一个装置需要使用相同的ID标识,生成的图片以此区分
Target:有两种定义方法
    从snmp获取信息:2: public@192.168.1.2 <--2表示从snmp获得的设备号标识,后面是community认证信息和服务器地址
    从脚本获取信息:指定要执行的脚本路径,使用“`”号分割
Xsize:生成图表的横向宽度(最大600)
Ysize:生成图表的纵向高度(最大200)
Title:标题
kMG: Change the default multiplier prefixes
Ytics:纵向划分为几个块(格子)
MaxBytes:图表纵向数值的最大上限
PageTop:页面上面的提示
kilo:一般是写1024,如果需要的话,是1000在计算机里的单位
LegendI:从SHELL返回的数据中的第一个
LegendO:从SHELL返回的数据中的第二个
Options: 一些可用参数
    growright:将数据随时间变化的顺序以右而左绘图;
    bits:数据单位为 bits;
    nopercent:在图下方的说明文字中,不显示百分比;
    gauge:图表的上限固定。
常见:
Options[192.168.228.153_2]: growright, bits  (用在网络流量中)
Options[192.168.228.153_3]: growright, nopercent, gauge  (用在 CPU 负载中)

详细可见man mrtg-reference。

四、应用配置
重新生成新的index.html文件:

# indexmaker --output=/var/www/html/mrtg/index.html --title=PrintServer /etc/mrtg/mailmrtg.cfg

生成数据:

# /usr/bin/mrtg /etc/mrtg/mailmrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok

结果:
点击在新窗口中浏览此图片
若出现乱码,可在/etc/mrtg/mailmrtg.cfg的全局选项中加入:
引用
Language: gb2312

或修改/etc/httpd/conf/httpd.conf:
引用
AddDefaultCharset GB2312
内文分页: [1] [2]
Tags: ,
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]