如何在Linux中安装和配置MRTG

时间:2020-03-05 15:29:01  来源:igfitidea点击:

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分钟的间隔。