由于最近老要分析数据,并生成流量图。网上找了好久没找到,后来找朋友写了个java的和python的,感觉不是很如意,只能无奈的每次都使用excel生成流量图。
今天无意间看到一篇文章:【原】让mrtg从脚本获取信息画图,终于燃起了我的希望,于是自己实践了一番,并写下了步骤。
1.安装http和mrtg
yum install httpd
yum install mrtg
2.创建脚本目录和脚本
mkdir /opt/data
vi /opt/data/data.sh
cat /opt/data/data.sh
#!/bin/bash
echo
date +%H
##输出小时,作为横坐标echo $RANDOM ##输出一个随机值,作为纵坐标
chmod +x /opt/data/data.sh
3.编辑mrtg配置文件
vi /etc/mrtg/mrtg.cfg
添加如下内容:
Target[data]:/opt/data/data.sh
##运行脚本MaxBytes[data]:10000000 ##最大上限
Title[data]:data Analysis ##标题
Xsize[data]:600 ##横坐标尺寸
Ysize[data]:200 ##纵坐标尺寸
Kmg[data]:MB ##单位
Options[data]:growright,gauge,nopercent
legendI[data]:&hour
legendO[data]:&Mbps
PageTop[data]:<H1>one day data Analysis</H1>
配置文件含义如下:
[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。
vi /etc/http/conf.d/mrtg.conf
修改内容如下:
Order allow,denyallow from all
然后重启httpd服务
service httpd restart
4.启动mrtg
indexmaker –output=/var/www/mrtg/index.html –title=DATA /etc/mrtg/mrtg.cfg ##生成index.html
env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg –lock-file /var/lock/mrtg/mrtg_l –confcache-file /var/lib/mrtg/mrtg.ok ##生成数据
制定计划任务:
crontab -e
添加如下内容:
0 /usr/bin/env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg –lock-file /var/lock/mrtg/mrtg_l –confcache-file /var/lib/mrtg/mrtg.ok
保存退出,然后重启crond服务
service crond restart
5.通过web访问mrtg(记得关闭防火墙和selinux)
截图: