如何在Linux中安装和配置MRTG
MRTG是一个开源网络流量监控工具。
它以图形的形式创建PNG镜像,显示网络节点的流量负载。
MRTG适用于SNMP协议以请求从节点请求。
因此MRTG监视的设备必须启用SNMP。
许多受管交换机和路由器都是SNMP启用。
MRTG在PNG镜像中创建了报告。
这些镜像嵌入到网页中。
因此,它需要运行的Web服务器,其中可以将报告生成的报告。
MRTG是用Perl编写的。
此Perl脚本读取路由器或者交换机的流量计数器。
MRTG集成了记录数据并创建PNG镜像的C程序。
MRTG创建4种图形:
1)每日图(平均5分钟)2)每周图(平均30分钟)3)每月图(平均2小时)4)年图(平均1天)
用于创建这些图形,MRTG需要数据。
此数据不会随着时间的推移而增长,因为日志自动整合。
尽管如此,它包含过去2年交通的所有相关数据。
MRTG不仅限于交通监控。
它可以查询任何SNMP数据,如天气监控,CPU负载监控,磁盘使用等。
MRTG安装在Linux上
MRTG在安装之前需要一些软件包。
1)GCC - GNU C编译器
需要编译其他包。
确保它安装在系统上。
可提供预编译的GCC版本。
在Debian/Ubuntu上安装GCC,运行
$apt-get install gcc
2)Perl.
MRTG的很大一部分是用Perl写的。
像GCC一样,它必须已经安装在大多数系统上。
但在需要Perl安装时,请安装Perl
$apt-get install perl
3)GD
用于动态操作镜像的图形绘图库。
4)Libpng.
GD要求以生产PNG图形文件。
5)Zlib.
libpng需要压缩创建的图形文件。
库 汇编
其中提供了两种库安装方法:从源和通过APT-GET。
如果apt-get不安装所需的版本,则可能希望通过源选择手动编译。
1)安装zlib
从源编译和安装
$wget http://www.zlib.net/zlib-1.2.3.tar.gz $gunzip -c zlib-*.tar.gz | tar xf $rm zlib-*.tar.gz $mv zlib-* zlib $cd zlib $./configure $make $cd ..
或者你可以
$apt-get install zlib1g zlib1g-devel
2)安装libpng
从源编译和安装
$wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.40.tar.gz $gunzip -c libpng-1.2.34.tar.gz | tar xf $mv libpng-* libpng $cd libpng $env CFLAGS="-O3 -fPIC" ./configure --prefix=$INSTALL_DIR $make $rm *.so.* *.so $cd ..
或者
$apt-get install libpng12-0 libpng12-dev
3)安装GD
同样,GD可以安装
$wget http://www.boutell.com/gd/http/gd-1.8.4.tar.gz $gunzip -c gd-*.tar.gz |tar xf $rm gd-*.tar.gz $mv gd-* gd $cd gd $perl -i~ -p -e s/gd_jpeg.o//g Makefile $make INCLUDEDIRS="-I. -I../zlib -I../libpng" \ LIBDIRS="-L../zlib -L. -L../libpng" \ LIBS="-lgd -lpng -lz -lm" \ CFLAGS="-O -DHAVE_LIBPNG" $cd ..
对于从2.0.11开始的版本,
$wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz $gunzip -c gd-2.0.33.tar.gz |tar xf $mv gd-2.0.33 gd $cd gd $env CPPFLAGS="-I../zlib -I../libpng" LDFLAGS="-L../zlib -L../libpng" \ ./configure --disable-shared --without-freetype --without-jpeg $make $cp .libs/* .
或者通过apt-get,
$apt-get install libgd2-xpm
MRTG需要GD.h标题文件。
这可以在GD开发包中找到。
执行以下操作,以防我们在执行配置脚本以进行MRTG安装时出现错误。
对我来说,安装libgd2-noxpm的工作:
$apt-get install libgd2-noxpm
这将删除现有LibGD2-XPM安装)
4)安装MRTG
$cd /usr/local/src $gunzip -c mrtg-2.17.4.tar.gz | tar xvf $cd mrtg-2.17.4
如果已预先安装库,只需配置提供安装路径:
$./configure --prefix=/usr/local/mrtg-2
否则,我们可能必须提供适当的库路径:
$./configure --prefix=/usr/local/mrtg-2 \ --with-gd=/usr/local/src/gd \ --with-z=/usr/local/src/zlib \ --with-png=/usr/local/src/libpng
一旦配置,编译和安装:
$make $make install
Web服务器安装
如我们所知,MRTG以网页的形式创建其输出。
因此,它需要一个运行的Web服务器,可以将其输出放置。
1)安装apache2
$apt-get install apache2
2)启动Web服务器
$/etc/init.d/apache2 start
或者
$service apache2 start
Apache的默认DocumentRoot是/var/www。
我们可能希望在我们想要放置MRTG文件的地方创建一些目录。
$mkdir /var/www/mrtg
MRTG配置
SNMP协议提供与社区的访问控制。
不同的SNMP社区具有不同的特权。
大多数SNMP设备都有名为"公共"的默认社区。
我们可能希望查看SNMP社区为交换机/路由器。
MRTG配置工具CFGMaker通过探测不同端口的交换机/路由器为我们创建配置文件。
这会检查出口已启动,从而在配置文件中创建相应的条目。
我们可以根据需要提供作为最多的SNMP设备。
运行CFGMaker以创建MRTG配置文件:
$cfgmaker --global 'WorkDir: /var/www/mrtg' \ --output /etc/mrtg/mrtg.cfg \ [email protected] \ [email protected]
Web服务器必须可读Workdir目录。
创建索引
索引制剂
IndexMaker命令为MRTG创建索引文件(index.html)。
它默认读取MRTG配置并将输出发送到STDOUT。
我们可以使用--output选项提供输出文件。
要查看MRTG输出,我们可能需要索引文件,否则Web服务器将点亮目录中的文件。
$indexmaker /etc/mrtg/mrtg.cfg --output=/var/www/mrtg/index.html
运行MRTG.
现在一切都被设置了。
我们所需要的只是运行MRTG。
$/usr/local/mrtg-2/bin/mrtg /etc/mrtg/mrtg.cfg
这将查询SNMP设备并为设备上的流量创建PNG镜像。
但是对于长期运行,我们希望以规则的间隔查询路由器。
所以我们为MRTG创建一个Cron作业:
$crontab -e
这将在编辑器或者可视变量指定的编辑器中打开文件。
在文件中输入以下内容
*/5 * * * * /usr/local/mrtg-2/bin/mrtg /etc/mrtg/mrtg.cfg --logging /var/log/mrtg.log
我们每5分钟运行命令,因为MRTG图形所示的最小单元是5分钟的间隔。