使用MRTG打造IDC网络流量监控平台 |
发布时间: 2012/9/16 1:32:17 |
一个IDC机房,倘若没有流量监控平台,那就等于两眼一抹黑。利用流量监控不仅能监控一些服务器的访问量情况,而且还能监控一些大规模的网络攻击。下面我们来看一个比较老的流量监控软件—MRTG MRTG有windows版本和Linux版本。今天我们看一下Linux的MRTG是如何搭建的。
MRTG(Multi Router Traffic Grapher),通常讲是一个监控网络链路流量负载的开源软件,它可以从所有运行SNMP协议的设备上(包括服务器、路由器、交换机等)抓取信息。事实上它不仅可以监控网络设备,任何其它的支持SNMP协议的设备都可以做为MRTG的监控对象,并自动生成包含PNG图形格式的HTML文档,通过HTTP方式显示给用户。
一、安装GD库(用于图片的生成)
1、安装libpng
#tar xvf libpng-
#cd libpng-
#./configure --prefix=/usr/local/png
#make;make install
#ln -s /usr/local/png/lib/* /usr/lib/
2、安装jpeg
#mkdir /usr/local/jpeg
#mkdir /usr/local/jpeg/bin
#mkdir /usr/local/jpeg/lib
#mkdir /usr/local/jpeg/include
#mkdir /usr/local/jpeg/man
#mkdir /usr/local/jpeg/man/man1
#tar xvf jpegsrc.v7.tar.tar
#cd jpeg-7
#./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
#make;make install
#ln -s /usr/local/jpeg/lib/* /usr/lib/
3、安装 freetype
#tar xvf freetype-
#cd freetype-
#./configure --prefix=/usr/local/freetype
#make;make install
4、安装fontconfig
#tar zxvf fontconfig-
#cd fontconfig-
#./configure --prefix=/usr/local/fontconfig --with-freetype-config=/usr/local/freetype/bin/freetype-config
#make;make install
5、安装GD
#tar zxvf gd-
#cd gd-
#./configure --prefix=/usr/local/gd --with-png=/usr/local/png --with-jpeg=/usr/local/jpeg --with- freetype=/usr/local/freetype --with-
fontconfig=/usr/local/fontconfig
** Configuration summary for gd
Support for PNG library: yes
Support for JPEG library: yes
Support for Freetype 2.x library: yes
Support for Fontconfig library: yes
Support for Xpm library: no
Support for pthreads: yes
#cp /usr/local/png/include/png.h ./
#cp /usr/local/png/include/pngconf.h ./
#make;make install
6、安装zlib-
#tar zxvf zlib-
#cd zlib-
#./configure --prefix=/usr/local/zlib
#make && make install
#./configure --prefix=/usr/local/apache --enable-modules=most
#make && make install
三、安装MRTG
#tar -zxvf mrtg-
#cd mrtg-
#./configure --prefix=/usr/local/mrtg --with-gd=/usr/local/gd --with-gd-lib=/usr/local/gd/lib --with-gd-inc=/usr/local/gd/include --with-
png=/usr/local/png --with-png-lib=/usr/local/png/lib --with-zlib=/usr/local/zlib --with-zlib-lib=/usr/local/zlib/lib
#make&&make install
需要gd库,同样采用源码编译,在编译过程中碰到 `png_check_sig’ 错误。
google了一下,发现由于使用的新的 libpng 1.4版本,去掉了png_check_sig函数,替换为了png_sig_check函数 ,于是编辑gd库的 gd_png.c文件,将 if (!png_check_sig (sig, 8)) { /* bad signature */ return NULL; } 修改为 if (png_sig_cmp (sig, 0, 8)) { /* bad signature */ return NULL; } 再次编译通过 来源:http://www.sunnyu.com/?p=211 四、配置MRTG
1、 生成MRTG配置文件mrtg.cfg,用于存放mrtg的配置信息
首先我们新建一个目录,用于存放MRTG配置文件
#mkdir /usr/local/mrtg/etc
#/usr/local/mrtg/bin/cfgmaker --output /usr/local/mrtg/etc/mrtg.cfg luwenju @202.106.0.20
注:luwenju @202.106.0.20是我们所要监控的交换机,luwenju为交换机SNMP的团体名,202.106.0.20是交换机的管理IP地址。交换机上如何开启SNMP请自行参阅资料,有一点切忌:为了服务器的安全起见,交换机上的SNMP配置时应该配置成只读,不允许有写入或者执行权限!
2、修改MRTG配置文件mrtg.cfg
#vi /usr/local/mrtg/etc/mrtg.cfg
把Workdir后的路径改成/usr/local/apache/htdocs 意思是指定mrtg流量页面存放目录.把#Options[_]: growright, bits 前面的#去掉,意思是定义流量单位大小,然后在另起一行,加入Language:Chinese 意思是使mrtg支持中文
3、收集交换机每个端口的状态信息并把搜集的信息存储到MRTG配置文件当中
#env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/mrtg.cfg
注:执行时多执行几遍,只到不出现任何提示信息
4、为交换机生成html文件,以供用户访问
# /usr/local/mrtg/bin/indexmaker --output /usr/local/apache/htdocs/index.html --title=ruishengIDC --sort=title --sort=name --sort=descr --sort=original /usr/local/mrtg/etc/mrtg.cfg
5、让MRTG监控信息自动更新
我们可以利用cron进程,让MRTG自动刷新,方法如下
#crontab -e
然后写入*/5 * * * * env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/mrtg.cfg
意思是让MRTG每5分子更新一次
6.测试
下面我们在浏览器中输入服务器的IP地址或者域名就可以看到我们要监控的流量了,如下图
四、为MRTG做授权访问
倘若一个机房的网络带宽使用情况谁查看都可以,那未免也有点太那啥了吧。。。 因此,我们做授权访问是有必要的
1. 建立虚拟用户
建立这个虚拟用户的目的就在于只让这个用户访问MRTG的监控页面,首先我们建立一个目录,用于存放虚拟用户的用户密码
# mkdir /etc/webpasswd
#/usr/local/apache/bin/htpasswd -c /etc/webpasswd/luwenjupwd luwenju
注:执行完上述命令后会要求设置此用户的密码,我们输入想要设置的密码即可。Apache自带的htpasswd命令提供了建立和更新存储用户名、密码的文本文件的功能。-c选项表示无论口令文件是否已经存在,都会重新写入文件并删去原有内容。
2、配置用户认证
修改apache配置文件vi /usr/local/apache/conf/httpd.conf 在配置文件最后加入以下内容(倘若我们想在某个虚拟主机中实现身份验证,那么我们就把如下信息加入某个虚拟主机中即可)
<Directory "/usr/local/apache/htdocs">
AuthType Basic
AuthName "Rui Sheng IDC"
AuthUserFile /etc/webpasswd/luwenjupwd
Require user luwenju
</Directory>
注:Directory定义我们针对那么目录进行授权,我们配置MRTG时让html文件生成到了/usr/local/apache/htdocs
AuthType 的意思是采用哪种模式进行验证,我们使用basic
AuthName 的意思是登陆窗口的名称
AuthUserFile 的的意思是指定用户的密码配置文件
Require user 的意思是允许哪个用户来访问
OK,完成上面设置后我们重启一下Apache,然后再浏览器中访问时会弹出以下页面
然后我们输入正确的用户名和密码后就可以看到MRTG的流量监控页面了,如下图
在这篇文章中我有一个很大的疑惑:我没有在Linux系统中安装SNMP,在网上,我看到不少网友针对交换机每个端口流量的监控还在系统上再安装SNMP,个人感觉没必要,因为我们是监控的交换机每个端口出入的流量。倘若我们要监控的是某台服务器的流量,才需要在某台服务器上安装SNMP。
亿恩-天使(QQ:530997) 电话 037160135991 服务器租用,托管欢迎咨询。 本文出自:亿恩科技【www.enkj.com】 |