mrtg linux linux软件安装包
其实mrtg linux的问题并不复杂,但是又很多的朋友都不太了解linux软件安装包,因此呢,今天小编就来为大家分享mrtg linux的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
史上最详细的mrtg设置说明
Multi Router Traffic Grapher------MRTG是一个监控网络链路流量负载的工具软件,通过snmp协议得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML文档方式显示给用户,以非常直观的形式显示流量负载。
一、前期准备
(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
#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]: nbsp; Memory Usage:
Legend1[memory]: nbsp; Total Memory:
Legend2[memory]: nbsp; Used Memory:
LegendI[memory]: nbsp; Total Memory:
LegendO[memory]: nbsp; Used Memory:
Options[memory]: growright,gauge,nopercent
PageTop[memory]:H1Memory/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]:H1Swap/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]: H1CPU/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"$total/n";
print"$usage/n";
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]: H1Disk 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]: H1Disk I/O/H1
在Linux系统上配置SNMP的方法
在Debian或Ubuntu上配置SNMP
要在基于Debian的系统上安装SNMP代理(snmpd),请运行以下命令:
代码如下:
root@server:~# apt-get install snmpd
然后,如下编辑配置文件。
代码如下:
root@server:~# vim/etc/snmp/snmpd.conf
#使snmpd监听再所有接口上
agentAddress udp:161
#定义一个只读的 community'myCommunity'和源网络
rocommunity myCommunity 172.17.1.0/24
sysLocation Earth
sysContact email@domain.tld
在编辑完配置文件后,重启snmpd。
代码如下:
root@server:~# service snmpd restart
在CentOS或RHEL上配置SNMP
要安装SNMP工具和库,请运行以下命令。
代码如下:
root@server:~# sudo yum install net-snmp
然后,如下编辑SNMP配置文件。
代码如下:
root@server:~# vim/etc/snmp/snmpd.conf
#定义一个使用 community'myCommunity'和源网络 172.17.1.0/24的用户'myUser'
com2sec myUser 172.17.1.0/24 myCommunity
#将 myUser加到'myGroup'组,定义组权限
group myGroup v1 myUser
group myGroup v2c myUser
view all included.1
access myGroup"" any noauth exact all all none
root@server:~# service snmpd restart
root@server:~# chkconfig snmpd on
重启snmpd服务,然后添加到启动服务列表。
测试SNMP
SNMP可以通过运行snmpwalk命令进行测试。如果SNMP已经配置成功,该命令会生成大量输出。
代码如下:
root@server:~# snmpwalk-c myCommunity 172.17.1.44-v1
iso.3.6.1.2.1.1.1.0= STRING:"Linux mrtg 3.5.0-17-generic#28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 x86_64"
iso.3.6.1.2.1.1.2.0= OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0= Timeticks:(2097) 0:00:20.97
~~输出截断~~
iso.3.6.1.2.1.92.1.1.2.0= Gauge32: 1440
iso.3.6.1.2.1.92.1.2.1.0= Counter32: 1
iso.3.6.1.2.1.92.1.2.2.0= Counter32: 0
iso.3.6.1.2.1.92.1.3.1.1.2.7.100.101.102.97.117.108.116.1= Timeticks:(1) 0:00:00.01
iso.3.6.1.2.1.92.1.3.1.1.3.7.100.101.102.97.117.108.116.1= Hex-STRING: 07 DD 0B 12 00 39 27 00 2B 06 00
用软件lmsensors监测Linux系统和CPU温度
lm_sensors的软件可以帮助我们来监控主板,CPU的工作电压,风扇转速、温度等数据。这些数据我们通常在主板的 BIOS也可以看到。当我们可以在机器运行的时候通过lm_sensors随时来监测着CPU的温度变化,可以预防呵保护因为CPU过热而会烧掉。
1.安装lm_sensors
现在基本上每个Linux都已经有lm_sensors包了,我们主要安装了就可以了。或者我们也可以通过源文件来自己编译。
1)在FC,RH, CENTOS下,用rpm:
[root@securitycn~]# rpm-ivh lm_sensors-2.10.0-3.1.i386.rpm
3)编译源文件安装
我们可以通过:这里下载源文件
这里我们要注意的问题是要先安装libsysfs库,是Sysfsutils,Sysfsutils-devel软件
tar xzvf lm-sensors-xxx.tar.gz
make user
make user_install testing
下面我们就用一些简单的命令来利用lm_sensors来得到CPU的数据。我们要用root的身份来:
sensors-detect,然后它会自动搜索主板上的chipset和相应的driver,我们全部答YES就可以了
[root@securitycn~]# sensors-detect
# sensors-detect revision 1.413(2006/01/19 20:28:00)
This program will help you determine which I2C/SMBus modules you need to
load to use lm_sensors most effectively. You need to have i2c and
lm_sensors installed before running this program.
Also, you need to be `root', or at least have access to the/dev/i2c-*
files, for most things.
If you have patched your kernel and have some drivers built in, you can
safely answer NO if asked to load some modules. In this case, things may
seem a bit confusing, but they will still work.
It is generally safe and recommended to accept the default answers to all
questions, unless you know what you're doing.
We can start with probing for(PCI) I2C or SMBus adapters.
You do not need any special privileges for this.
Do you want to probe now?(YES/no):
全部默认YES即可。
然后我们启动lm_sensors:
/etc/init.d/lm_sensors start
Starting lm_sensors: [ OK ]
我们可以通过lsmod来确定我们需要的driver已经加载了没有
lsmod| grep i2c
i2c_isa 9153 2 w83627hf,w83781d
i2c_i801 11341 0
i2c_dev 12613 0
i2c_ec 9025 1 sbs
i2c_core 23745 6 w83627hf,w83781d,i2c_isa,i2c_i801,i2c_dev,i2c_ec
然后我们用sensors的命令就可以了:
[root@securitycn~]# sensors
w83627hf-isa-0290
Adapter: ISA adapter共2页。
VCore 1:+3.33 V(min=+0.00 V, max=+0.00 V) ALARM
VCore 2:+3.36 V(min=+0.00 V, max=+0.00 V) ALARM
+3.3V:+0.93 V(min=+3.14 V, max=+3.46 V) ALARM
+5V:+5.11 V(min=+4.73 V, max=+5.24 V)
+12V:+4.56 V(min=+10.82 V, max=+13.19 V) ALARM
-12V:-7.10 V(min=-13.18 V, max=-10.88 V) ALARM
-5V:-1.93 V(min=-5.25 V, max=-4.75 V) ALARM
V5SB:+5.51 V(min=+4.73 V, max=+5.24 V) ALARM
VBat:+0.02 V(min=+2.40 V, max=+3.60 V) ALARM
fan1: 0 RPM(min= 2732 RPM, div= 2) ALARM
fan2: 0 RPM(min= 0 RPM, div= 2)
fan3: 0 RPM(min= 0 RPM, div= 2)
temp1:+38癈(high=+50癈, hyst=+45癈) sensor= thermistor
temp2:+33.5癈(high=+80癈, hyst=+75癈) sensor= thermistor
temp3:+33.5癈(high=+80癈, hyst=+75癈) sensor= thermistor
vid:+0.000 V(VRM Version 10.0)
alarms:
beep_enable:
Sound alarm enabled
这里我们可以看到温度还没有相对应CPU,我们主要稍微修改一下/etc/sensors.conf就可以了,不过其实都不用我们自己去动手,一般我们都可以从主板生产商那里下载到配置文件。通过lmsensors我们就可以得到主板温度,CPU电压,风扇转速这些信息。我们可以根据这些数据来监察系统的运行情况来预防系统的问题。
接下来让它和MRTG整合在一起吧
[root@securitycn~]# cd/usr/local/mrtg/bin
[root@securitycn~]# vi temp.sh
#内容如下
#!/bin/bash
cputemp=`/usr/bin/sensors| grep temp1|awk'{print$2}'|cut-c 2-4`#这句是说找出有temp1那一行,印出第二个列的2-4个字
systemp=`/usr/bin/sensors| grep temp2|awk'{print$2}'|cut-c 2-5`不用解释了吧
echo$cputemp
echo$systemp
# the uptime
uptime| sed's:^.* up\(.*\), [0-9][0-9]* users.*$:\1:'
# my name
uname-n
[root@securitycn~]# chmod+x temp.sh改成可执行
[root@securitycn~]#./temp.sh试试看有没有问题
39
33.5
15:36:19 up 22:28, 1 user, load average: 0.04, 0.09, 0.04
securitycn
再来写下面的文件
[root@securitycn~]# cd../etc/
[root@securitycn~]# vi temp.cfg
WorkDir:/data1/usr/apache/htdocs/mrtg/temp/
Target[index]: `/usr/local/mrtg/bin/temp.sh`
MaxBytes[index]:80
Options[index]: gauge, nopercent, growright
YLegend[index]: Temp(度)
ShortLegend[index]:度
LegendO[index]:系统温度;
LegendI[index]: CPU温度;
Title[index]:系统温度表
PageTop[index]:
主机温度表
[root@securitycn~]#/usr/local/mrtg/bin/mrtg/usr/local/mrtg/etc/temp.cfg
执行3次就不报错了
然后加入到crontab里面
*/5****/usr/local/mrtg/bin/mrtg/usr/local/mrtg/etc/temp.cfg共2页。