Linux系统mrtg安装设置教程

MRTG(Multi Router Traffic Grapher)是一套可用来绘出网络流量图的软件,由瑞士奥尔滕的Tobias Oetiker与Dave Rand所开发,此软件以GPL授权。

下面是网卡流量监控图

MRTG最早的版本是在1995年春天所推出,以Perl所写成,因此可以跨平台使用,它利用了SNMP送出带有物件识别码(OIDs)的请求给要查询的网络设备,因此设备本身需支援SNMP。MRTG再以所收集到的资料产生HTML档案并以GIF或PNG格式绘制出图形,并可以日、周、月等单位分别绘出。它也可产生出最大值最小值的资料供统计用。

原本MRTG只能绘出网络设备的流量图,后来发展出了各种plug-in,因此网络以外的设备也可由MRTG监控,例如服务器的硬盘使用量、CPU的负载等。

Mrtg可用来监视linux的各种详细参数,如果不明白可以去搜索一下就知道了.今天我主要讲解的是他的设置方法.

一、前期准备

(1)MRTG需要以SNMP服务为基础,所以请确保你的系统已经启用了此服务,修改SNMP的配置:
#vi /etc/snmp/snmpd.conf
将62行:
access notConfigGroup "" any noauth exact systemview none none
改为
access notConfigGroup "" any noauth exact mib2 none none
把第89行前面的注释符号#去掉,变成
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc

(2)linux Mrtg监控主机流量启动http服务和snmp服务:
首先查看两个服务在系统启动时是否已经开启
#chkconfig --list | grep nginx
没有启动的话需要修改下在什么启动模式下要自己启动:
# chkconfig --level 35 nginx on
对 snmpd 服务采用同样的设置,现在手动启动下
#service nginx start
#service snmpd start
啟動之後最好是用setup配置服務,讓其隨機自動啟動

查看端口的开启状况也可確認其是否已經被啟動
# netstat -tunlp |grep snmp
tcp 0 0 0.0.0.0:199 0.0.0.0:* LISTEN 4973/snmpd
udp 0 0 0.0.0.0:161 0.0.0.0:* 4973/snmpd

(3)MRTG生成供浏览图像需要http服务的支持,同时也需要gd、libpng和zlib三个软件包的支持,而gd的正常运行也需要其它的几个软件,(系統默認自帶,如果沒有自帶則需要我們手工安裝)
1.安装zlib-1.2.3
#tar zxvf zlib-1.2.3.tar.gz
#cd zlib-1.2.3
#./configure --prefix=/usr/local/zlib
#make
#make install

2.安装httpd-2.2.4
#tar zxvf httpd-2.2.4.tar.gz
#cd httpd-2.2.4
#./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-track-vars --enable-rewrite --with-z-dir=/usr/local/zlib
#make
#make install
启动httpd
/usr/local/apache/bin/apachectl -k start

3.安装libpng-1.2.14
#tar zxvf libpng-1.2.14.tar.gz
# cd libpng-1.2.14
# cp scripts/makefile.linux makefile
# make (若是提示找不到zlib库文件或者头文件,多半是makefile文件里zlib的默认路径有误。可编辑makefile文件,找到zlib项并重新指定路径到/usr/local/zlib/lib和/usr/local/zlib/include)。
# make install

4.安装freetype-2.1.10
# tar -zvxf freetype-2.1.10.tar.gz
# cd freetype-2.1.10
# mkdir -p /usr/local/freetype
# ./configure --prefix=/usr/local/freetype
# make;make install

5.安装jpegsrc.v6b
jpeg默认不会自建目录,因此需手动建立目录:
# mkdir -pv /usr/local/jpeg6/{,bin,lib,include,man/{,man1},man1}
安装
#tar zxvf jpegsrc.v6b.tar.gz
# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
# make
# make install
# make install-lib

6.安装libxml2-2.6.19
# tar -zxf libxml2-2.6.19.tar.gz
# cd libxml2-2.6.19
# mkdir -p /usr/local/libxml2
# ./configure --prefix=/usr/local/libxml2
# make; make install
#cp xml2-config /usr/bin

7.安装GD-2.0.33库
# tar -zvxf gd-2.0.33.tar.gz
# mkdir -p /usr/local/gd2
# cd gd-2.0.33
# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ --with-png=/usr/local/lib/ --with-zlib=/usr/local/zlib/ --with-freetype=/usr/local/freetype/
# make
# make install

(4)修改系統語言配置
#vi /etc/profile
增加如下兩行
LC_ALL=C
LANGUAGE=on

二、开始安装

(1)开始安装mrtg
#cd /usr/local/src
#wget http://oss.oetiker.ch/mrtg/pub/mrtg-2.14.5.tar.gz
#tar zvxf mrtg-2.14.5.tar.gz
#cd mrtg-2.14.5
#./configure --prefix=/usr/local/mrtg 注意:“--prefix=/usr/local/mrtg”是指定的安装路径
#make
#make install

(2)配置MRTG
首先为mrtg的主页在web目錄下建立一个目录,假如web目錄是:/home/wwwroot/
在此目录下新建目录mrtg和sh即:
#cd /home/wwwroot/
#mkdir mrtg
#cd mrtg
#mkdir sh

如果路径嫌长感到不方便的话可以建立軟連接:
#cd /
#ln –s /home/wwwroot/mrtg _mrtg
#ln –s /usr/local/mrtg/bin _mrtgbin

把一些圖片複製過去
#cd /usr/local/src/mrtg-2.14.5 //進入mrtg安裝目錄
#cp ./images/*.* /_mrtg/

然后需要创建一个配置文件:
#/_mrtgbin/cfgmaker public@改成本機IP --output=/_mrtg/lxy.cfg

修改配置文件:
#vi /_mrtg/lxy.cfg
将 #WorkDir:/home/http/mrtg 去掉注释并改为 WorkDir: /home/wwwroot/mrtg (此处是MRTG的WEB目录)
将 #Options[_]: growright, bits 前面的#去掉,靠左对齐
在最后加上Language: big5,然后保存

(3)測試配置檔(如果出錯就多測幾次)
LANG=C /_mrtgbin/mrtg /_mrtg/lxy.cfg

===================================================
(4)根據下方的說明建立sh和pl檔案,然後修改.sh檔案讓其可執行(.sh檔案內容在下方)
#cd /_mrtg/sh
#chmod 0755 *

(5)生成MRTG網站首頁文件:已在root目录下
#/_mrtgbin/indexmaker --output=/_mrtg/index.html --title="Lidalin's MRTG" /_mrtg/lxy.cfg

(6)接下来运行程序
#/_mrtgbin/mrtg /_mrtg/lxy.cfg 有的人用這種方法啟動#env LANG=C /_mrtgbin/mrtg /mrtg/lxy.cfg
如果有警告或錯誤,則多运行几次,當警告或錯誤不再出现時就OK了

(7)MRTG生成的web页面是静态的,为了能让其不断的刷新,需要将以上命令添加进crontab
#crontab -e
添加如下一行
*/1 * * * * /_mrtgbin/mrtg /_mrtg/lxy.cfg
保存,然后reboot
打開瀏覽器,輸入 http://改成本機IP/mrtg 应该就可以看到网络使用情况的曲线了,一分鐘后再看比較準確!

注意:如果你设置了中级防火墙而又没有开启80端口访问,需要编辑/etc/sysconfig/iptables允许别人访问80端口

三、mrtg.cfg 里面参数的意思
Target:是要执行的脚本
Xsize:生成图表的横向宽度(最大600)
Ysize:生成图表的纵向高度(最大200)
Title:标题
kmg: Change the default multiplier prefixes
Ytics:纵向划分为几个块(格子)
MaxBytes:图表纵向数值的最大上限
PageTop:页面上面的提示
kilo:一般是写1024,如果需要的话,是1000在计算机里的单位
LegendI:从SHELL返回的数据中的第一个
LegendO:从SHELL返回的数据中的第二个
Options: growright,表示图表向右延展

四、配置其他範例
注意:修改了配置一定要重設第二大步驟中的第(3)(4)(5)(6)步驟

其他配置的部份均放入此資料夾下
#cd /_mrtg/sh

(1)監視内存使用狀況
建立脚本文件
#vi mem.sh

添加(步驟五的)脚本:
保存后要让其具有執行权限
#chmod 0755 /_mrtg/sh/*

(2)编辑/mrtg/lxy.cfg并添加(步驟五的)内容:

五、各个SHELL(修改了配置之後要重新生成首頁,然後重啟)
(1)MEMORY:mem.sh
#!/bin/bash
# This script to monitor the mem usage.
totalmem=`/usr/bin/free |grep Mem |awk '{print $2}'`
usedmem=`/usr/bin/free |grep Mem |awk '{print $3}'`
echo "$totalmem"
echo "$usedmem"

编辑MRTG的配置文件:MaxBytes的值根據實際狀況修改
# Mem
Target[memory]: `/_mrtg/sh/mem.sh`
Unscaled[memory]: dwym
MaxBytes[memory]: 2048000
Title[memory]:Memory
ShortLegend[memory]: &
kmg[memory]:kB,MB
kilo[memory]:1024
YLegend[memory]:   Memory Usage :
Legend1[memory]:   Total Memory :
Legend2[memory]:   Used Memory :
LegendI[memory]:   Total Memory :
LegendO[memory]:   Used Memory :
Options[memory]: growright,gauge,nopercent
PageTop[memory]:<H1>Memory</H1>
(2)SWAP:swap.sh
#!/bin/bash
# This script to monitor the swap usage.
totalswap=`/usr/bin/free |grep Swap |awk '{print $2}'`
usedswap=`/usr/bin/free |grep Swap |awk '{print $3}'`
echo "$totalswap"
echo "$usedswap"

编辑MRTG的配置文件:MaxBytes根據實際狀況修改
# Swap
Target[swap]:`/_mrtg/sh/swap.sh`
Unscaled[swap]: dwym
MaxBytes[swap]: 3048000
Title[swap]:SWAP
ShortLegend[swap]: &
kmg[swap]:kB,MB
kilo[swap]:1024
YLegend[swap]: Swap Usage
Legend1[swap]: Total Swap
Legend2[swap]: Used Swap
LegendI[swap]: Total Swap
LegendO[swap]: Used Swap
Options[swap]: growright,gauge,nopercent
PageTop[swap]:<H1>Swap</H1>
(3)CPU:cpu.sh
#!/bin/bash
# run this script to check the mem usage.
totalmem=`/usr/bin/free |grep Mem |awk '{print $2}'`
usedmem=`/usr/bin/free |grep Mem |awk '{print $3}'`
UPtime=`/usr/bin/uptime | awk '{print $3""$4""$5}'`
echo $totalmem
echo $usedmem
echo $UPtime
hostname

编辑MRTG的配置文件:MaxBytes根據實際狀況修改
# Cpu
Target[cpu]: `/_mrtg/sh/cpu.sh`
MaxBytes[cpu]: 100
Title[cpu]: CPU
Options[cpu]: gauge,nopercent,growright
YLegend[cpu]: CPU loading (%)
ShortLegend[cpu]:%
LegendO[cpu]: & CPU USER
LegendI[cpu]: & CPU SYSTEM
PageTop[cpu]: <H1>CPU</H1>
(4)磁盤佔用:df.pl
#!/usr/bin/perl
# output(df -kl) looks like this:
# Filesystem 1k-blocks Used Available Use% Mounted on
# /dev/md0 95645100 30401312 64272080 33% /
# /dev/hde1 14119 1159 12231 9% /boot
#
# In which case, this script returns :
# 95659219
# 30402503
# when run.
foreach $filesystem (`df -kl | grep -v "Filesystem"`){
@df = split(/s+/,$filesystem);
$total += $df[1];
$usage += $df[2];
}
print "$totaln";
print "$usagen";
hostname

编辑MRTG的配置文件:MaxBytes根據實際狀況修改
# Disk used
Target[disk]: `/_mrtg/sh/df.pl`
Title[disk]: Disk Space
Unscaled[disk]: dwym
MaxBytes[disk]: 115247550
kmg[disk]: KB,MB,GB
LegendI[disk]: Total Disk Space
LegendO[disk]: Used Disk Space
Legend1[disk]: Total Disk Space
Legend2[disk]: Used Disk Space
YLegend[disk]: Megabytes
ShortLegend[disk]: &
Options[disk]: growright,gauge,nopercent
PageTop[disk]: <H1>Disk Space</H1>
(5)磁盤I/O:io.sh
#!/bin/bash
# This script will monitor the KBread/sec &KBwriten/sec of Disk.
# Creater: CCC IT loren ext:2288 2005/8/3
# As sda ,sdb,sdc,sdd,hda.
# disk=sda
hd=sda
disk=/dev/$hd
KBread_sec=`iostat -x $disk|grep $hd |awk '{print $8}'`
KBwrite_sec=`iostat -x $disk|grep $hd |awk '{print $9}'`
echo "$KBread_sec"
echo "$KBwrite_sec"
hostname

编辑MRTG的配置文件:如果需要檢測更多的分区則修改io.sh
# Disk I/O
Target[diskIO]: `/_mrtg/sh/io.sh`
Title[diskIO]: Disk HDA I/O
Unscaled[diskIO]: dwym
MaxBytes[diskIO]: 100
kmg[diskIO]: KB,MB,GB
LegendI[diskIO]: Disk I/O KBread/sec
LegendO[diskIO]: Disk I/O KBwrite/sec
Legend1[diskIO]: Disk I/O KBread/sec
Legend2[diskIO]: Disk I/O KBwrite/sec
YLegend[diskIO]: Megabytes
ShortLegend[diskIO]: &
Options[diskIO]: growright,gauge,nopercent
PageTop[diskIO]: <H1>Disk I/O</H1>

时间: 2024-04-22 12:43:26

Linux系统mrtg安装设置教程的相关文章

在Linux系统中安装Go语言的详细教程

  这篇文章主要介绍了在Linux系统中安装Go语言的详细教程,由于国内很多人对谷歌的盲目追捧,导致Go语言在国内的人气远超国外...需要的朋友可以参考下 Go (也叫 "golang")是一款由Google最初开发的编程语言.它自诞生就有几个设计原则:简单性.安全性和速度.Go语言发行版拥有各种调试.测试.调优和代码审查工具.如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用,用默认的包管理器就可以安装. 在Ubuntu.Debian 或者 Linux Mint上安装G

Linux系统中安装使用ntfs-3g挂载NTFS分区的教程

  Linux系统中安装使用ntfs-3g挂载NTFS分区的教程.系统环境默认安装后,不能访问ntfs分区,在安装和配置ntfs-3g以后即可. 1.安装ntfs-3g 代码如下: apt-get -y install ntfs-3g 2.创建挂载的文件夹 我windows下面有三个磁盘.都需要访问.所以在/mnt中新建了三个文件夹,分别是/mnt/C./mnt/D./mnt/E 3.挂载分区 首先使用fdisk命令查看目前磁盘情况 代码如下: debian-hcshangxinli:/home

Linux系统Gentoo安装Kde5怎么设置

Linux系统Gentoo安装Kde5怎么设置   配置方法: 1.添加kde的overlay: layman -a kde echo -e "-qt5" >> /etc/portage/profile/use.stable.mask 或者在/etc/portage/make.conf的USE中添加qt5. 2.解除kde5的mask 方法一:按官方wiki中的方法做软链接: cd /etc/portage/package.accept_keywords ln -s /va

如何在 Linux 系统上安装 Suricata 入侵检测系统

如何在 Linux 系统上安装 Suricata 入侵检测系统 随着安全威胁的不断发生,入侵检测系统(IDS)在如今的数据中心环境中显得尤为必要.然而,随着越来越多的服务器将他们的网卡升级到10GB/40GB以太网,对如此线路上的硬件进行计算密集型的入侵检测越来越困难.其中一种提升入侵检测系统性能的途径是多线程入侵检测系统,它将 CPU 密集型的深度包检测工作并行的分配给多个并发任务来完成.这样的并行检测可以充分利用多核硬件的优势来轻松提升入侵检测系统的吞吐量.在这方面有两个知名的开源项目,分别

2.0 Linux系统的安装之Fedora安装单系统(2)

2.0 Linux系统的安装之Fedora安装单系统(2) *Linux系统的安装之Fedora安装单系统 恐怕最好装的系统就是Linux系统了,或者与Windows并列.此篇教程为Fedora的单系统安装,如果装双系统即Windows和Linux请移步下一篇3.0 Windows和Linux双系统安装(3). 简介下Fedora,我用Fedora是从大二Linux课程开设的时候开始的,那时候为了方便学习,自己变装上了Linux系统,在选择发行版时,选择了Fedora. 在下粗鄙的观点如下,当然

Linux系统下安装谷歌Google拼音输入法的方法

  Linux系统下安装谷歌Google拼音输入法的方法.目前,网络上提供的拼音输入法非常多,不过,不少网友会觉得使用谷歌拼音输入法这款软件更顺手.那么,谷歌拼音输入法怎么安装使用呢?在今天的教程中,我们就以Linux系统为例子,给大家分享一下谷歌拼音输入法的安装方法.需要说明的是,本操作方法是基于Linux系统的CentOS 5进行的! 谷歌拼音输入法安卓版 推荐:谷歌拼音输入法安卓版 SCIM-GooglePinyin 项目试图将 Android 上的 Google 拼音输入法移植到 GNU

Linux系统下安装rz/sz命令及使用说明(详解)_Linux

对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能,但是很多Linux系统初始并没有这两个命令. 今天,我们就简单的讲解一下如何安装和使用rz.sz命令. 1.软件安装 root 账号登陆后,依次执行以下命令: cd /tmp wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz tar zxvf lrzsz-0.12.20.tar.gz &

在linux系统下安装两个nginx的简单方法_Linux

在linux下安装nginx的时候,一般在./configure的阶段会要求通过prefix设置安装路径.因此,在./configure的时候指定不同的prefix就可以安装多个nginx啦. 值得注意的是,安装完之后,两个nginx的监听端口要设置成不同的监听端口.否则,会有一个nginx无法启动. ./configure --prefix=/home/work/nginx1 .....//第一个nginx的安装配置 make && make install ./configure --

linux系统如何安装PHP-json扩展

最近打算做个个人博客,网上找了一个口碑不错的建站系统--蝉知系统,功能挺齐全的.今天在倒腾站点时出现个问题,查看了下日志文件,发现下面错误: Fatal error: Call to undefined function json_decode() 根据错误提示发现原来是我的服务器上PHP环境没有安装php-json扩展库,估计是我当初搭建WEB服务环境时漏掉了.所以本文和大家一起分享如何在linux系统中安装PHP-json扩展. linux系统篇 1.CentOS系统 php安装包目录:/d