Linux AS3下通过MRTG,SNMP,APACHE进行监测流量,内存,CPU
感谢 abel 对我的支持和帮助,以及platinum的指点才能
完成MRTG的配置,下面是我总结的文档,有什么错误的地方
请高手指点
--------------------------------------------------------------
本机IP地址: 192.168.1.10
RedHat Linux AS3 U2
这里apache的安装和配置就略过了
MRTG是用Perl写成的,并且使用了zlib、gd以及png等函数(zlib用来压缩图表、gd用来绘制图表)。服务器中已经含有下列的软件:perl(perl-5.0xx以上)、zlib(zlib-1.1.3-xx以上)、gd(gd-1.3.xx以上)、libpng和Apache。
rpm -qa | grep perl
rpm -qa | grep zlib
rpm -qa | grep gd
rpm -qa | grep libpng
安装SNMP ucd-snmp-4.2.1.tar.gz。
[root@tooth src]#cd /usr/local/src
[root@ tooth src]#cp /root/ucd-snmp-4.2.1.tar.gz
[root@ tooth src]#tar -zxvfucd-snmp-4.2.1.tar.gz
[root@ tooth src]#cd ucd-snmp-4.2.1
[root@ tooth cd-snmp-4.2.1]# ./configure --prefix=/usr/local/snmp
[root@ tooth cd-snmp-4.2.1]# make
[root@ tooth cd-snmp-4.2.1]# makeinstall
System Contact Information (root@): localhost
System Location (Unknown):
Location to write logfile (/var/log/snmpd.log):
Location to write persistent information (/var/ucd-snmp):
启动ucd-snmp。
直接在shell下面打上/usr/local/snmp/sbin/snmpd start即可,或者直接加在/etc/rc.d/rc.local当中,就可以自动开机启动了。
[root@tooth root] # /etc/rc.d/init.d/snmpd start
修改snmpd.conf文件
将#view systemview included mib2的内容修改为:
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
将access notConfigGroup "" any noauth exact systemview none none修改为:
access notConfigGroup "" any noauth exact mib2 none none
然后再重新启动snmpd
-----------------------------------------------
安装 MRTG
[root@tooth root] # cd/usr/local/src
[root@tooth src]# cp/root/mrtg-2.9.17.tar.gz
[root@tooth src]# tar-zxvfmrtg-2.9.17.tar.gz
[root@tooth src]# cd mrtg-2.9.17
[root@tooth mrtg-2.9.17]# ./configure --prefix=/usr/local/mrtg-2
[root@tooth mrtg-2.9.17]# make;make install
生成mrtg的工作目录和mrtg的配置文件mrtg.cfg
[root@tooth mrtg-2.9.17]# mkdir /tmp/wsbm/mrtg/conf
[root@tooth rtg-2.9.17]# cp images/* /tmp/wsbm/mrtg/conf
[root@tooth mrtg-2.9.17]# cd /usr/local/mrtg-2/bin
[root@tooth bin]# perl cfgmaker public @192.168.1.10 --global "WorkDir: /tmp/wsbm/mrtg" --ifref=ip --output=/tmp/wsbm/mrtg/conf/mrtg.cfg
[root@tooth bin]# vi /tmp/wsbm/mrtg/mrtg.cfg
如图1
不过由于程序自动设定的mrtg.cfg会有问题,因此,请将下面这三行修改成你自己的样式。
WorkDir: /tmp/wsbm/mrtg/conf/
Options[_]:growright,bits
Language:GB2312
[root@tsaibin]# ./mrtg /tmp/wsbm/mrtg/conf/mrtg.cfg
在/mrtg-2.9.29/bin下有cfgmaker indexmaker mrtg rateup 4个文件,如果执行不了可以#chmod a+x rateup
---------------------------------------------------------------------------
开始测试你的参数项,要执行三次,就可以正常工作了,不过,若是有问题的话,就需要改mrtg.cfg,再执行直到没有错误发生为止。
这里的--global参数表示后面的选项是对后面指定的设备都是有效的(如果希望对多个设 备进行监控时,该参数就会发生作用)。WorkDir用来指示mrtg的工作目录;Options用来 指定一些特定的选项,这里的growright,bits是用来指定默认options配置的,对于常见 的应用来说默认options配置就可以满足需求了。ifref用来指示用什么选项来标识设备接 口,这里指定使用IP地址来标识网络设备接口。ifref可以指定为 nr、ip、eth、descr、name。nr表示用接口在MIBII库中Interface接口的ifIndex来识别 接口;IP表示使用ip地址识别接口;eth表示使用接口的物理地址标识接口;descr表示使 用接口的描述信息来标识接口;name表示使用接口名来标识接口。一般来说ip地址是唯一 的,但是有些情况下接口是没有IP地址的,例如交换机就会出现这种情况。对于接口来说 nr(接口号)是唯一的,因此对于一般情况使用IP地址就可以了,而对于其他一些情况则需 要采用nr了。"--output /etc/mrtg.cfg"标识将生成的配置文件存放在/etc/目录 下。"public@192.168.1.10"表示监控IP地址为192.168.1.10的设备,采用public作为共同 体名通过snmp协议来监控设备192.168.1.10。
-----------------------------------------------------------------------------
--------------------------------------------
生成监测流量的页面
[root@tooth bin]# ./indexmaker --output=/tmp/wsbm/mrtg/conf/index.html --title=Vbird /tmp/wsbm/mrtg/conf/mrtg.cfg
上面这个程序indexmaker是在制作首页。会自动地输出一个index.html的文件中。
打开浏览器输入地址:http://192.168.1.10/mrtg/conf 我们可以看到mrtg的页面(图2)
但这并不是我们想看到的流量监测页面,在生成index.html文件的同时,在/tmp/wsbm/mrtg下生成了192.168.1.10_2.html文件,现在我们在浏览器地址输入http://192.168.1.10/mrtg/192.168.1.10_2.html,我们可以看到了mrtg监测流量的页面,但使用手工运行mrtg并不能定时产生适当的统计信息,因此最好还是定时自动运行mrtg来生 成统计信息,默认为五分钟运行一次。作为root身份crontab -e进入编辑状态,添加内容 如下:
*/5 * * * * /usr/local/mrtg-2/bin/mrtg /etc/mrtg.cfg
到此我们就可以对一台服务器进行流量监测工作。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
-----------------------------
内存的监测
编写MEM数据的抓取脚本:
(上面一个数据是内存使用量,下面的是内存总量,M)
修改mrtg.cfg文件内容
上面我们已经进行了修改,这里我们只修改Options[_]:
否则会有错误提示
找个地方再添加下面内容:
这样就可以监测服务器的内存情况
好,但图在哪里:)
-----------------------------
连接数监测:
编写脚本
修改mrtg.cfg文件,添加下面内容:
-------------------------------
CPU负载的监测
编写脚本:
修改mrtg.cfg文件,添加下面内容:
注意事项:person.sh 和 mfree.sh 两个脚本的权限;脚本和mrtg.cfg文档中mrtg.cfg 的路径,以及Options[_]: growright,bits,gauge,nopercent 的设置
发不了图片哦
牙齿兄,好强喔!!!
顶
收起來,備用!
牙齿兄~不錯哦,很大的進步
相信這個過程中有許多甘苦~冷暖自知,
但自己學習,實作,碰到問題並努力克服,久了,你碰到任何問題大概都知道應
如何去思考,我並沒有給您什麼幫忙,只是告知您學習上的盲點而以
----------------------
以下,對本文的一些建議:
1.Options 的項目可以再弄清楚些,這個很重要.
若可以加看 mrtg.cfg 中的 LogFormat: rrd 用法,再加看
http://my14all.sourceforge.net/
2. snmpd.conf 的項目可以再加強,不然您可密切注意 DNS 版,近期我會發一篇介紹
對於您之前的問題, Web 及 Oracle , 我相信怎麼做您應該有頭緒了,
只要您真的了解 SNMP, Oracle 的運行狀況從 Oracle 的 MIBs 中
都可以得到,這並沒有任何困難.
至於 Web 就看您要測的是什麼項目,例如您提到的 Connection 計算
或是 Web In/Out 流量 or 每個 virtualhost 流量等, httpd 程式運行狀\r
況等....,這些都可以畫出來.
好样的!
能看看效果吗?