FreeBSD-4.7下安装网络流量统计分析工具MRTG2005-08-24 10:00 am作者:linux宝库 来自:linux宝库 现存:
http://www./2294.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论!reeBSD-4.7下安装网络流量统计分析工具MRTG
原始URL:
http://www.webrj.com/read.php?id=323MRTG(MultiRouter Traffic Grapher, MRTG)是基于SNMP的典型网络流量统计分析工具,它耗用的系统资源很小,现在最新版本是2.9.25(mrtg-2.9.25.tar.gz),可从
http://people.ee.ethz.ch/~oetike ... /mrtg-2.9.25.tar.gz取得.
实践笔记由seelinux在2002-02-19整理,Email:
seelinux@webrj.com URL:www.webrj.com
系统环境:FreeBSD-4.7 mini,hostname为(.com)
FreeBSD-4.7下安装网络流量统计分析工具MRTG所需软件:
mrtg-2.9.25.tar.gz
http://people.ee.ethz.ch/~oetike ... /mrtg-2.9.25.tar.gz
zlib-1.1.4.tar.gz
http://www.gzip.org/zlib/zlib-1.1.4.tar.gzlibpng-1.2.5.tar.gz
http://www.gzip.org/zlib/zlib-1.1.4.tar.gzgd-1.8.3.tar.gz
http://www.boutell.com/gd/http/gd-1.8.3.tar.gz新建一个/usr/local/src目录,并把相关文件放在些目录下,当然你可以放置到其它位置,看个人爱好啦^.^
# mkdir -p /usr/local/src
# cd /usr/local/src
1、设置zlib
#tar zxvf zlib-1.1.4.tar.gz
#mv zlib-1.1.4 zlib
#cd zlib
#./configure
#make
#cd ..
2、设置zlib
#tar zxvf libpng-1.2.5.tar.gz
#mv libpng-1.2.5 libpng
#cd libpng
#make -f scripts/makefile.std CC=gcc ZLIBLIB=../zlib ZLIBINC=../zlib
#cd ..
3、设置gd
#tar zxvf gd-1.8.3.tar.gz
#mv gd-1.8.3 gd
#cd gd
#make INCLUDEDIRS="-I. -I../zlib -I../libpng"
LIBDIRS="-L../zlib -L. -L../libpng"
LIBS="-lgd -lpng -lz -lm"
#cd ..
4、安装MRTG
#tar zxvf mrtg-2.9.25.tar.gz
#cd mrtg-2.9.25
#./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
到此有关MRTG相关得就安装完成,APACHE和MRTG的相关用法可以参考其它文章,也可到www.linuxaid.com,www.linuxcn.org,www.webrj.com,www.linuxforum.net获取。不明白?欢迎到 linux论坛 参加讨论!
mrtg安装手记2006-05-29 16:31 pm作者:linux知识宝库 来自:linux知识宝库 现存:
http://www./5761.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论!环境是:RedHatLinux9.0.
必备软件:
gd-1.8.4-11
gd-devel-1.8.4-11
libpng-1.2.2-16
libpng-devel-1.2.2-16
libpng10-1.0.13-8
libpng10-devel-1.0.13-8
perl-5.8.0-88
zlib-1.1.4-8
zlib-devel-1.1.4-8
httpd-manual-2.0.40-21
httpd-2.0.40-21)
gcc-3.2.2-5
net-snmp-5.06-17
mrtg-2.9.29.tar.gz
当然,上面列举的软件不一定版本都必须一样,而且有些包系统已经为你安装好了,比如
gcc和Perl,也可以事先查看一下这些软件包你是否已经安装了
#rpm -qa | grep gd
#rpm -qa | grep libpng
如果没有安装的话,可以去Google一下,国外的网站有很丰富这方面的资源。
我下载了如下rpm包:
gd-1.8.4-11.i386.rpm
gd-devel-1.8.4-9.i386.rpm
libpng-1.2.8.tar.tar
libpng-devel-1.2.8-2.i386.rpm
zlib-devel-1.1.4-8.i386.rpm
httpd-2.0.40-21.i386.rpm
httpd-manual-2.0.40-21.i386.rpm
总之,确定了这些都已安装好之后,你就可以继续MRTG的安装了。
(1):首先,得修改snmp的配置文件:
#vi /etc/snmp/snmpd.conf
把第90行前面的注释符号去掉
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
在62行先去掉#然后再进行修改:
access notConfigGroup "" any noauth exact systemview none none
改为
access notConfigGroup "" any noauth exact mib2 none none
然后在最后一行下添加一行内容:
rocommunity mrtg
(2)下面要启动你的snmp服务和http服务:
首先查看一下是否这两个服务在系统启动时已经开启
#chkconfig --list | grep httpd
httpd 0ff 1ff 2ff 3:off 4:off 5:off 6:off
说明在每种启动模式下,http服务都没有启动,需要修改一下:
# chkconfig --level 35 httpd on
然后再查看一下,结果如下
httpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
说明已经成功修改,以后每次系统以方式3或者5启动的话,http服务都回自动加载
对snmpd 服务采用同样的设置
然后手动启动
#/etc/rc.d/init.d/httpd start
#/etc/rc.d/init.d/snmpd start
(3):开始安装mrtg
#tar zvxf mrtg-2.9.29.tar.gz
#cd mrtg-2.9.29
#./configure --prefix=/usr/local/mrtg --with-gd=/usr/include --with-gd-lib=/usr/lib --with-gd-inc=/usr/include --with-png=/usr/include --with-zlib=/usr/include
#make
#make install
如果上面某一步出现错误的话,可能是某个软件包没有正确安装,或者是其他原因,请仔细分析
倘若OK的话,我们就可以进行mrtg的配置了
(4):安装后配置
首先为mrtg的主页建立一个目录,常用的路径就是/var/www/html/
所以我们可以:
#mkdir /var/www/html/mrtg
#mkdir /var/www/html/mrtg/images
进入mrtg的安装目录后
#cp ./images/* /var/www/html/mrtg/images/
然后需要创建一个配置文件:
#/usr/local/mrtg/bin/cfgmaker --output=/var/www/html/mrtg/mrtg.cfg
mrtg@192.168.1.100修改配置文件:
#vi /var/www/html/mrtg/mrtg.cfg
将
# for UNIX
#WorkDir: /home/http/mrtg
改为
# for UNIX
WorkDir: /var/www/html/mrtg
将
#Options[_]: growright, bits前面的#也去掉,靠左对齐
Options[_]: growright, bits
emailwht 姐姐在
http://bbs.chinaunix.net/viewthr ... &highlight=mrtg
中提到了要加上
Language:GB2312 ,可是我加上了这个语言支持的选项后,也不行,打开页面后会有乱码。
最后又找了其他的方法
在/etc/profile里面加上两句
LC_ALL=C
LANGUAGE=on
然后保存。
下来运行程序
如果没有在profile里面加入语言设置的话,可以直接
#/usr/local/mrtg/bin/mrtg /var/www/html/mrtg/mrtg/cfg
会有警告错,连着运行3次,警告错就没有了
,但是我在profilel里面进行了设置,所以,按照如下方式运行
#env LANG=C /usr/local/mrtg/bin/mrtg /var/www/html/mrtg/mrtg.cfg
一次,而且没有警告错误。
制作首页:
#/usr/local/mrtg/bin/indexmaker --output=/var/www/html/mrtg/index.html --title="server tranffic statistic" /var/www/html/mrtg/mrtg.cfg
设定5分钟运行一次:
如果你当前是root身份登录的话:
#crontab -e 编辑模式输入
*/5 * * * * root /usr/local/mrtg/bin/mrtg /var/www/html/mrtg/mrtg.cfg
保存
然后reboot,
http://192.168.1.100/mrtg 你应该就可以看到网络使用情况的曲线了
至于磁盘,内存等资源的监视也可以加进来,网络上有很多手册的。不明白?欢迎到 linux论坛 参加讨论!
mrtg的调试和使用2005-08-24 10:00 am作者:linux宝库 来自:linux宝库 现存:
http://www./5112.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论! 出处:
http://www.LinuxByte.net/作者:jogs(LinuxByte)
发布日期:2004-7-27
最近研究了下mrtg的使用
关于mrtg是干吗的就不说了,直接进入正题
安装:
mrtg需要有以下包
gcc,Perl,gd,libpng,zlib
安装过程:
./configure --prefix=/usr/local/mrtg
make
make install
配置:
mrtg重要的只有2个地方
一是就是它的conf文件
二是获取参数的源
它可以从snmp或者自写脚本来取得数据,不过linux下感觉snmp获得数据有一定的误差,感觉数据出来的但是实际mrtg根本拿不到,所以我以下都使用脚本方式来获得数据
生成配置文件:
由于生成mrtg配置文件默认带有网卡流量监控,需要snmp,所以首先需要修改下snmp的配置文件
vi /etc/snmp/snmpd.conf
将
#view systemview included mib2
修改为:
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
access notConfigGroup "" any noauth exact systemview none none
修改为:
access notConfigGroup "" any noauth exact mib2 none none
保存,重起snmpd
首先先建立一个mrtg工作的主目录,由于mrtg使用web方式,所以需要建立在apache的主目录下
mkdir /var/www/mrtg
然后使用mrtg的cfgmaker命令生成mrtg的配置文件
/usr/local/mrtg/bin/cfgmaker --output /etc/mrtg.cfg
public@192.168.0.1此处192.168.0.1为本机ip
mrtg.cfg配置文件生成后,会默认包含本机所有网卡的监控信息,如不需要可以删除
vi /etc/mrtg.cfg
将
# for UNIX
# WorkDir: /home/http/mrtg
修改为
# for UNIX
WorkDir: /var/www/mrtg
此处为我们的mrtg主目录
加入
Language: gb2312
指定页面显示语言为中文
制作首页
/usr/local/mrtg/bin/indexmaker --output=/var/www/mrtg/index.html /etc/mrtg.cfg
indexmaker会依据你的mrtg.cfg自动创建一个访问页面
正确保存配置文件后执行
/usr/local/mrtg/bin/mrtg /etc/mrtg.cfg
此时会报告错误,不用理会,连续执行3次后错误应该会消失,如还继续保错,则应为配置文件出错
注意:只有使用mrtg命令时,mrtg才会依据mrtg.cfg里的设置取值.
到这里,基本的mrtg已配置完成,确认snmp和httpd都已启动,打开浏览器,输入
http://192.168.0.1/mrtg就
可以看到你的网卡流量图了.
此时的mrtg只可以监控网卡流量,如果需要监控其他则需要自己编写脚本和mrtg.cfg来实现
以下是一个apache连接的例子
首先再mrtg.cfg里加入apache连接的配置段
Target[apache_conn]: `/bin/mrtg.apa.pl`
Options[apache_conn]: gauge,nopercent,growright
Directory[apache_conn]:apache_conn
MaxBytes[apache_conn]: 4000
YLegend[apache_conn]: apache连接数
ShortLegend[apache_conn]: 个
LegendI[apache_conn]: apache总连接数:
LegendO[apache_conn]: apache当前连接数
Title[apache_conn]: apache连接数
PageTop[apache_conn]: <h1>apache连接数</h1>
Target指的是mrtg从那里取画曲线的值,此处可以从snmp和脚本取值,如从脚本取值需注意,需要前后用`来指定脚本路径而不是' .
[]指这个配置段的名称,这里为apache_conn,届时会在mrtg的workdir里建立同名的目录
Maxbytes指mrtg取值后能表现的最大值
YLegend指再图标中纵向的名称
ShortLegend指在图标中数值后面所跟的单位
LegendI 传递过去的第一个值
LegendO 传递过去的第二个值
Title 网页title
Pagetop 网页显示名称
mrtg.apa.pl
#!/usr/bin/perl
$hostname=`hostname`;
$hostname=~s/\s+$//;
$apache_all_conn=`netstat -an|grep 192.168.0.1:80|wc -l`;
$apache_conn=`netstat -an|grep 192.168.0.1:80|grep ESTABLISHED|wc -l`;
$apache_all_conn=~s/\n$//;
$apache_conn=~s/\n$//;
$apache_all_conn=~s/^\s+|\s+$//;
$apache_conn=~s/^\s+|\s+$//;
$gettime=`uptime|awk '{print \$1" "\$3" "\$4}'`;
$gettime=~s/\,|\n$//g;
print("$apache_all_conn\n");
print("$apache_conn\n");
print("$gettime\n");
print("$hostname\n");
以上脚本为perl编写,由于apache的连接可以使用netstat查看,所以我用里一个简单的shell命令组合来获取apache的总连接数和当前建立连接的连接数.
需要注意以下几点
1) 使用命令传递值给mrtg时,mrtg只能接受4个参数,真正用于画图的只有2个
2) 4个参数必须依次为 值1,值2,运行时间,主机名
3) 4个参数后不得有\n等换行符
由于mrtg.cfg的改变,所以必须依次使用以下命令
/usr/local/mrtg/bin/indexmaker --output=/var/www/mrtg/index.html /etc/mrtg.cfg
使用mrtg的indexmaker重生成index.html文件,否则你无法看到新加入的apache连接的监控.
/usr/local/mrtg/bin/mrtg /etc/mrtg.cfg
使用mrtg命令传入数值,同样会报3次错,忽略即可
再打开浏览器,输入地址,应该可以看到首页除了网卡的流量外再下方会加入apache连接的图
确认无误后,可再/etc/mrtg.cfg里加入
RunAsDaemon: Yes
在使用一次
/usr/local/mrtg/bin/mrtg /etc/mrtg.cfg
mrtg就会使用daemon方式运行
你以后要做的只是每次使用浏览器看看图就可以了,是不是很轻松
最后附上我目前能做到监控的一些信息,由于屏幕有限所以没法截完整,目前已做到可以监控如下信息
网卡,tcp连接数,系统进程数,内存使用,swap使用,cpu负载,pop连接数,smtp连接数,diskio等
如果大家需要我可以贴出所有脚本不明白?欢迎到 linux论坛 参加讨论!
mrtg的中文版在什么地方下载2004-04-23 15:18 pm作者:linux宝库 来自:linux宝库 现存:
http://www./1671.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论!www.mrtg.org
没有什么中文版的,是在配置的时候,有一个字符选项的,在配置文件中加入就可以了,具体的可以参考其上的配置说明
在.cfg中加上一条Language=gb2312
不明白?欢迎到 linux论坛 参加讨论!
mrtg网络流量分析, 简单安装mrtg分析网络流量2005-08-24 10:00 am作者:linux宝库 来自:linux宝库 现存:
http://www./2738.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论! 网络流量分析:
一安装SNMP简单网络管理协议:
cd /usr/ports/net/net-snmp
make install
make clean
编辑snmp.conf配置文件:
cd /usr/local/share/snmp/
vi snmpd.conf
rocommunity mrtg
启动SNMP:
cd /usr/local/etc/rc.d
rm snmpd.sh
vi snmpd.sh
#! /bin/sh
/usr/local/sbin/snmpd
二安装MRTG:
cd /usr/ports/net/mrtg
make install
make clean
cd /usr/local/etc/mrtg
/usr/local/bin/cfgmaker
mrtg@192.168.1.100 > mrtg
vi mrtg
添加mrtg的工作目录:
WorkDir: /home/dyd/public_html/mrtg
Language: chinaese
在/home/dyd/public_html/mrtg目录里生成index.html
/usr/local/bin/indexmaker --title '标题' --output /home/dyd/public_html/mrtg/index.html mrtg
/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg #多执行几遍直到没有错误为止。
如果想定时执行mrtg的话就加入到crontab里就可以了。不明白?欢迎到 linux论坛 参加讨论!
sniffer入门介绍2005-12-16 13:34 pm作者:linux宝库 来自:linux宝库 现存:
http://www./4545.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论!本文是一简单的关于SHIFFER的描述,对于不太知道SNIFFER的人来说可能适用,高手就免进了,要深一层次的就看如袁哥,BACKEND写的文章吧。
什么是SNIFFER呢?
一般我们在讲的SNIFFER程序是把NIC(网络适配卡,一般如以太网卡)置为一种叫promiscuous杂乱模式的状态,一旦网卡设置为这种模式,它就能是SNIFFER程序能接受传输在网络上的每一个信息包。普通的情况下,网卡只接受和自己的地址有关的信息包,即传输到本地主机的信息包。要使 SNIFFER能接受处理这种方式的信息,就需要系统支持bpf,LINUX下如SOCKET-PACKET,但一般情况下网络硬件和TCP/IP堆栈是不支持接受或者发送与本地计算机无关的数据包,所以为了绕过标准的TCP/IP堆栈,网卡就必须设置为我们刚开始将的杂乱模式,一般情况下,要激活这种方式,必须内核支持这种伪设备bpfilter,而且需要ROOT用户来运行这种SNIFFER程序,所以大家知道SNIFFER需要ROOT身份安装,而你即使以本地用户进入了系统,你也嗅探不到ROOT的密码,因为不能运行SNIFFER。
基于SNIFFER这样的模式,可以分析各种信息包可以很清楚的描述出网络的结构和使用的机器,由于它接受任何一个在同一网段上传输的数据包,所以也就存在着SNIFFER可以用来捕获密码, EMAIL信息,秘密文档等一些其他没有加密的信息。所以这成为黑客们常用的扩大战果的方法,夺取其他主机的控制权。
下面描述了一些传输介质被监听的可能性:
Ethernet监听的可能性比较高,因为Ethernet网是一个广播型的网络,困扰着INTERNET的大多数包监听时间都是一些运行在一台计算机中的包监听程序的结果。这台计算机和其他计算机,一个网关或者路由器形成一个以太网。
FDDIToken-监听的可能性也比较高,尽管令牌网内的并不是一个广播型网络,ring实际上,带有令牌的那些包在传输过程中,平均要经过网络上一半的计算机。但高的传输率将使监听变得困难。
电话线监听的可能性中等,电话线可以被一些与电话公司协作的人或者一些有机会在物理上访问到线路的人搭线窃听,在微波线路上的信息也会被截获。在实际中,高速的MODEM比低速的MODEM搭线困难的多,因为高速MODEM引入了许多频率。
IP通过有监听的可能性比较高,使用有线电视信道发送IP数据包依靠RF调制线电视信道解调器,RF调制解调器使用一个TV通道用于上行,一个用于下行。
在这些线路上传输的信息没有加密,因此,可以被一些可以物?
访问到TV电缆的人截获。
微波和监听的可能性比较高,无线电本来上一个广播型的传输媒介,任何一
无线电一个无线电接受机的人可以截获那些传输的信息。
现在多数的SNIFFER只监视连接时的信息包,原因是SNIFFER如果接受全部的信息包,一个是LOG记录极其大,而且会占用大量的CPU时间,所以在一个担负繁忙任务的计算机中进行监听,由于占用的CPU和带宽就可以怀疑有SNIFFER在工作,当你觉得有异常现象的时候就先需要一些简单的方法检测。
虽然可以使用PS或者netstat的命令去查看是否有可以进程和连接信息的转态,但入侵者改变了ps或者netstat程序也就不能发现这些程序了,其实修改ps命令只须短短数条SHELL命令,即可将监听软件的名字过滤掉。
下面的两个方法原理简单,但操作起来比较困难:
1,对于怀疑运行监听程序的机器,用正确的IP地址和错误的物理地址去PING,运行监听程序的机器回有响应,这是因为正常的机器不接受错误的物理地址,处于监听状态的机器能接受,如果他的IPSTACK不再次反向检查的话,就会响应,这种方法依赖系统的IPSTACK,对有些系统可能行不通。
2,往网上发大量不存在的物理地址的包,由于监听程序将处理这些包,将导致性能下降,通过比较前后该机器性能(icmpechodelay等方法)加以判断,这种方法难度较大点。
一些流行的SNIFFER
SNIFFIT:这是一个比较的SNIFFER,它由BrechtClearhout所写,这是你应该最先用的程序,这个SNIFFER默认状态下只接受最先的400个字节的信息包,这对于一次登陆会话进程刚刚好。:p
SNORT:这个SNIFFER有很多选项供你使用并可移植性强,可以记录一些连接信息,用来跟踪一些网络活动。
TCPDUMP:这个SNIFFER很有名,FREEBSD还搭带在系统上,是一个被很多UNIX高手认为是一个专业的网络管理工具,记得以前 TsutomuShimomura(应该叫下村侵吧)就是使用他自己修改过的TCPDUMP版本来记录了KEVINMITNICK攻击他系统的记录,后来就配合FBI抓住了KEVINMITNICK,后来他写了一文:使用这些LOG记录描述了那次的攻击, HowMitnickhackedTsutomuShimomurawithanIPsequenceattack(
http://www.attrition.org/securit ... iffer/shimomur.txt)
ADMsniff:这是非常有名的ADM黑客集团写的一个SNIFFER程序。
linsniffer:这是一个专门设计杂一LINUX平台上的SNIFFER。
Esniffer:这个也是一个比较有名的SNIFFER程序。
Sunsniff:这个是用在SUNOS系统上的SNIFFER,此程序应该在十年前推出的吧。
Solsniffer:这是个Solarissniffer,主要是修改了SunSniff专门用来可以
方便的在Solair平台上编译。
这些程序attrition收集起来了,大家可以到下面的URL下载:
http://www.attrition.org/security/newbie/security/sniffer/一些流行的检测SNIFFER的程序:
http://www.attrition.org/securit ... sniffer/promisc.c--是一个很小的C程序,当编译好后,会查找本地机器上任何处于杂乱模式的NIC网络适配卡。
http: //www.attrition.org/security/newbie/security/sniffer/neped.c--是一个用来远程检查任何嗅探活动的程序,可惜它只在LINUX下编译,当然你也可以简单的使用ifconfig-a来检查你的UNIX机器是否有PROMISC标志。
http://www.l0pht.com/antisniff/这是L0pht写的很好的反SNIFFER程序,L0PHT还打算公开LINUX版本上的源码版本。
另外,如果机器上使用两块网卡,把一块设置为杂乱模式,并把IP地址设置为0.0.0.0,另一块卡处于正常的模式并是正确的地址,这样将很难发现SNIFFER的存在。
一些资源:
大家可以到
http://www.securityfocus.com/找到很多关于SNIFFER的程序, PHRACK54(FILE10)的文章awesomearticle很好的解释了很多方法和技巧来对付SNIFFER,
http://www.attrition.org/securit ... niffer/shimomur.txt
是Shimomura写的文章(HowMitnickhackedTsutomuShimomurawithanIPsequenceattack)
。也可以到
http://www.l0pht.com/站点下载Antisniffer,这确实是一个不错的工具。不明白?欢迎到 linux论坛 参加讨论!
SNMP+MRTG 网络流量分析2005-08-24 10:00 am作者:linux宝库 来自:linux宝库 现存:
http://www./5168.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论!作者:小苏子
1、 安装SNMP
一般版本的FreeBSD系统SNMP存放在 /usr/ports/net/net-snmp下面,但是有的版本不是。有些版本在安装Package的时候,除了要安装Net之外,还要安装Net- mgmt里面的SNMP,安装好之后,SNMP就存放在/usr/ports/net-mgmt/net-snmp下面了。下面就是安装过程:
# cd /usr/ports/net-mgmt/net-snmp #snmp的存放路径
# make install clean #安装snmp
# ee /etc/rc.conf
snmpd_enable=\"YES\"
snmpd_flags=\"-p /var/run/snmpd.pid\"
# /etc/netstart
# ee /usr/local/share/snmp/snmpd.conf
rocommunity public
# /usr/local/etc/rc.d/snmpd.sh start #启动snmp
2、 安装mrtg
mrtg根据不同的版本存放的位置不同,一般存放在/usr/ports/net/net-snmp下面,这里介绍的安装过程种mrtg存放在/usr/ports/net-mgmt/mrtg下面。
# cd /usr/ports/net-mgmt/mrtg #mrtg的存放路径
# make install clean #安装mrtg
# cd /home #以下四个命令是建立MRTG
# mkdir http #的WEB目录,具体目录可以
# cd http #根据个人的爱好自己设定
# mkdir mrtg
# cd /usr/local/etc/mrtg
# /usr/local/bin/cfgmaker
public@192.168.1.100 > mrtg #创建MRTG的cfg文件
192.168.1.100 :被监控设备的地址
mrtg :是要输出的档案
public :设备设定档的共同的名字(community name) 预设是public,
这个可以在/usr/local/share/snmp/snmpd.conf里面修改
# ee mrtg
WorkDir: /home/http/mrtg #指向已设定的WEB目录
# /usr/local/bin/indexmaker ?C-title ‘标题’ --output
/home/http/mrtg/index.html mrtg #生成index.html文件
# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg #运行mrtg(如果有错误,就
多运行几次)
#ee /etc/crontab #让mrtg每5分钟运行一次
*/5 * * * root /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg
3、 安装apache
apache存放在/usr/ports/www/apache2下面
# cd /usr/ports/www/apache2 #apache2的存放地址
# make install clean #安装apache2
# ee /etc/rc.conf
apache2_enable=”YES”
# /etc/netstart
# ee /usr/local/etc/apache2/httpd.conf #配置虚拟主机
NameVirtualHost *:80
<Directory \"/home/http/mrtg\">
Options Indexes Includes FollowSymlinks
Allow from all #允许访问
</Directory>
<VirtualHost *:80>
ServerAdmin
root@test.comDocumentRoot /home/http/mrtg
ServerName xxx.xxx.xxx.xxx #安装mrtg的主机地址
DirectoryIndex index.html #前面生成的index.html
ErrorLog /var/log/xxx.xxx.xxx.xxx-error_log
CustomLog /var/log/xxx.xxx.xxx.xxx-access_log common
</VirtualHost>
# /usr/local/etc/rc.d/apache2.sh start #启动apache
打开
http://xxx.xxx.xxx.xxx,就可以看到被监控设备的网络信息了。
4、 设置
http://xxx.xxx.xxx.xxx的访问权限
监控流量的网页做好之后,接下来就设置访问这个网页的权限。
1) 修改http.conf ,在<Directory \"/home/http/mrtg\">和</Directoy>
之间加入一行:
AllowOverride All
意思是在/home/http/mrtg下不同目录的访问权限由该目录下的.htaccess文件来控制,而且不同目录的权限策略可互相覆盖
2) 编辑.htaccess 文件
# cd /home/http/mrtg
# mkdir user #建立存放密码文件的文件夹
# ee .htaccess #访问权限控制文件
AuthUserFile /home/http/mrtg/user/pass #用户密码信息存放文件
AuthType Basic #认证类型为基本型
AuthName \"cnseaport\"
require valid-user #认证方式
3) 建立用户
# htpasswd ?Cc /home/http/mrtg/user/pass admin #建立用户admin
New password: #输入用户秘密
Re-type new password: #再次输入密码
Adding password for user admin #添加用户成功信息
可以建立多个用户
4) 重新启动apache,再次访问
http://xxx.xxx.xxx.xxx,这时应该出现一个
身份认证窗口,你需要输入用户名和密码才能访问这个页面。 不明白?欢迎到 linux论坛 参加讨论!
Squid+MRTG实现缓存代理2005-08-24 10:00 am作者:linux宝库 来自:linux宝库 现存:
http://www./2673.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论!Squid是一种源代码开放的高性能代理缓存服务器。它可支持FTP,gopher和Http数据对象的代理。另外,Squid也支持SSL,多样化访问控制和代理请求的完整日志功能。通过轻量级的网际缓存协议,Squid以网状或层次的方式分配内存,这样能节省额外的带宽。提供Http服务加速代理,Web服务器把Http数据推到Squid缓存中,外界的请求访问可以通过缓存提取所需数据,实现Web服务器的动态镜像。
另外,为了实现对Squid服务器的监控,采用MRTG。MRTG 是 Multi Router Traffic Grapher 的缩写,它主要的用途是监测网络服务设备的流量,并生成包括图片的HTML文件,可以直观的显示网络服务的流量,以提供Squid缓存服务的监测。
通过Squid+MRTG可以配置一个完善的代理服务提供方案。下面为具体配置步骤:
一.基础准备
Squid下载地址:
http://www.squid-cache.org 版本:squid-2.4.STABLE4-src.tar.gz
MRTG下载地址:
http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/ 版本:mrtg-2.9.22.tar.gz
机器配置为:256M内存,9G硬盘(其中4G分区专用缓存目录),PII433。
二.安装步骤
解压Squid(一般做法,把软件包括在/opt目录下)
#tar zxvf squid-2.4.STABLE4-src.tar.gz
#cd squid
//进行编译
#./configure --prefix=/usr/local/squid --enable-delay-pools --enable-snmp --enable-cache-digests --enable-auth-modules=”NCSA”
#make all
#make install
*对编译项目的解释:
--prefix 为编译Squid所存放的目录,这里为/usr/local/squid
--enable-delay-pools 此选项使能一个延时池,这样能对某些特定的请求限制额定带宽。
--enable-snmp 此选项可以让MRTG使用SNMP协议对服务器的流量状态进行监测,因此必须选择此项,使Squid支持SNMP接口。
--enable-cache-digests 使能缓存摘要,本来此项目的是为了在Squid集群服务之间迅速发现缓存对象,这里在本地使用,可以加快请求时,检索缓存内容的速度。
--enable-auth-modules 此编译选项启用认证模块,可以对访问代理用户进行授权。
安装MRTG
#tar zxvf mrtg-2.9.22.tar.gz
#cd mrtg*
#./configure --prefix=/usr/local/mrtg-2
#make
#make install
/* 几点说明:
1.MRTG大部分程序是用Perl脚本写成,需要Perl版本为5.005以上才能运行,RH 7.2带有perl版本为v5.6.0,非常满足要求。(如果版本不够,请到www.perl.com下载安装。)
2.MRTG需要zlib,gd和libpng三个处理图形的库支持,RH7.2满足此要求。(如果没有安装,请到
http://www.boutell.com/gd/ http://www.libpng.org/pub/png/src/ http://www.gzip.org/zlib 下载安装)
三.具体配置
lSquid配置(仅对必要选项配置并说明):
http_port 80
此选项用于Squid代理所侦听的端口,由于要实现Http加速代理,则侦听端口80
tcp_outgoing_address 255.255.255.255
此句法指定了远程服务器的IP地址,这里我们使用255.255.255.255来指定为所有地址
tcp_incoming_address
这里可以使用http_port语法进行绑定端口和IP地址。表示客户端的请求。可以不使用。
cache_mem 64 MB
由于Squid在读写磁盘,I/O通道,数据转贮等需要大量内存,我们可以把内存值稍微设置大一些,这样可以提供服务器性能。
cache_swap_low 95
这用做表示缓存内部对象的替换的衡量基线。当交换分区的磁盘利用率超越这个基线,那么缓存对象替换也就随之开始。这里是用百分率做衡量标准。
cache_swap_high 98
此标记用于缓存对象替换的最高程度,当交换分区磁盘利用率接近此设置,则表示对象的更新程度更为剧烈。这里由于我的缓存区设置比较大,因此设置为98%。
下面几个配置标记采用系统默认配置。
{ maximum_object_size 4096 KB
{ 超过此尺寸的对象将不缓存。
{ minimum_object_size 0 KB
{ 小于此尺寸的对象将不缓存。
{ maximum_object_size_in_memory 8 KB
{ 内存中能缓存的最大对象尺寸。
{ ipcache_size 1024
{ 指定IP缓存大小。
{ ipcache_low 90
{ 缓存IP地址的最低基线。
{ ipcache_high 95
{ 缓存IP地址的最高极限。
{ fqdncache_size 1024
{ 缓存DNS全域名解析的尺寸。
cache_replacement_policy lru
此标记用于当缓存新对象时,使用缓存策略来清除缓存中特定对象。这里使用lru表示:它只替换长时间没有被访问过的对象。其他策略请参看配置文档介绍。
memory_replacement_policy lru
此用法同上,区别在于替换内存对象。
cache_dir ufs /cache 4000 16 256
设置缓存根目录为/cache,类型为ufs,缓存区大小为4G,可以有16个二级子目录,每有二级目录有256个三级子目录。
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_swap_log /var/log/squid/swap.log
上面几项是缓存日志记录的路径和文件名。
log_ip_on_direct on
记录客户端主机的IP地址。
log_fqdn on
记录全DNS域名解析。
mime_table /usr/local/squid/etc/mime.conf
Squid所用mime的文件路径
pid_filename /usr/local/squid/logs/squid.pid
Squid进程ID的文件。
ftp_user
Squid@ynst.net.cn 这里可以使用匿名登陆FTP服务器。
ftp_list_width 32
FTP文件列表长度,超过长度则截断文件名。
ftp_passive on
允许主动连接FTP服务器。
dns_nameservers 202.98.187.1
指定代理的域名解析服务器。
authenticate_program /usr/local/squid/bin/ncsa_auth
/usr/local/squid/etc/passwd
代理认证程序,这里在/usr/local/squid/etc使用htpasswd产生一个密码文件,具体方法如下:
#htpasswd ?Ccdb passwd auth_usr1 pass1
#htpasswd ?Cdb passwd auth_usr2 pass2
#htpasswd ?Cdb passwd auth_usr3 pass3
创建passwd文件,并添加auth_usr1,auth_usr2,auth_usr3三个认证用户。
authenticate_children 5
所需要要产生的认证进程数。
authenticate_ttl 3600
此标记设置认证保持时间。
authenticate_ip_ttl 1800
此标记设置认证绑定IP地址的时间长度。
authenticate_ip_ttl_is_strict on
此标记可在authenticate_ttl时间内,拒绝其他非认证IP地址访问。
request_header_max_size 10 KB
request_body_max_size 1 MB
设置了Http请求的包头和数据大小。
request_body_max_size 0
这里,请求所返回的数据大小为0,意义为没有任何限制。
connect_timeout 180 seconds
read_timeout 15 minutes
request_timeout 20 seconds
上面几项是代理服务几个超时设置,这里使用配置文件默认值。
下面是访问控制列表一些配置,这里对访问的IP地址,域名,访问类型极其访问代理的权限做的限制:
acl acldomain dstdomain .ynst.net.cn
acl acceleratedport port 80
acl acceleratedhost dst 202.98.187.17/255.255.255.255
acl aclprotocol proto HTTP FTP
acl aclmethod method GET POST
acl aclauth proxy_auth required
(注:这里使用required表示任何passwd文件中存在的合法用户才授予访问权限。)
acl aclsnmp snmp_community secrect
MRTG可以使用snmp协议检测此代理服务运行状态。
acl aclconn maxconn 20
可并行连接的最大数量。
启用定义的访问控制列表
http_access allow manager localhost
http_access deny manager
http_access allow aclauth
http_access allow acceleratedport acceleratedhost
http_access deny all
下面为缓存管理设置
cache_mgr
admin@ynst.net.cn 设置缓存管理者的接受邮件地址。
cache_effective_user squidusr
cache_effective_group squidgrp
设置执行Squid的用户和用户组。
{注:设置用户和用户组及其权限修改方法如下:
#groupadd squidgrp
#useradd ?Cg squidgrp ?Cd /home/squidusr squidusr
修改log日志权限属性,使squidusr有写权限。
#chown squidusr /var/log/squid
#chgrp squidgrp /var/log/squid
#chown squidusr /var/log/squid/*.log
#chown squidgrp /var/log/squid/*.log
}
下面配置Http服务加速代理
httpd_accel_host 202.98.187.17
httpd_accel_port 80
httpd_accel_with_proxy on
(注:如果配置代理和加速服务,必须httpd_accel_with_proxy选项打开。如果需要配置多个加速,可以使用虚拟的概念。)
snmp_port 3401
此标记设置snmp_port端口为3401,可以使MRTG监测服务运行状态。
snmp_access allow aclsnmp localhost
snmp_access deny all
snmp_incoming_address 0.0.0.0
snmp_outgoing_address 0.0.0.0
以上选项用于配置和MRTG交互信息的Snmp设置。
digest_generation on
digest_rebuild period 1 hour
digest_rewrite_period 1 hour
digest_swapout_chunk_size 4096 bytes
digest_rebuild_chunk_percentage 10
产生缓存摘要,并设置摘要重构所需要的时间及其相关设置,这里采用系统默认设置。缓存摘要使的庞大的缓存内容形成一个微型检索,提高代理性能。
最后我们进行延迟队列池进行配置
延迟队列池可以基于一定规则对特定请求数据的进行限制,这样可以防止恶意用户发送非正规数据串攻击服务器。
以下选项只在必要处进行说明,配置如下:
delay_pools 1 #定义一个池
delay_class 1 1 #池为1类型
delay_access 1 allow all #允许类型1的所有请求访问
delay_parameters 1 128000/128000 #限制访问的128k/s
delay_initial_bucket_level 50 #Squid启动时,初始化池所用的带宽数量。
运行Squid代理服务:
#squid ?Cz /*创建Squid所使用的缓存目录结构
如果想在前台运行
#squid ?CNCdl
如果想在后台运行
#squid
检查Squid是否运行
#squid ?Ck check
lMRTG配置:
首先测试SNMP服务是否启动:
#snmpwalk -p 3401 hostname communitystring .1.3.6.1.4.1.3495.1.1
如果看到如下输出:
enterprises.nlanr.squid.cacheSystem.cacheSysVMsize = 7970816
enterprises.nlanr.squid.cacheSystem.cacheSysStorage = 2796142
enterprises.nlanr.squid.cacheSystem.cacheUptime = Timeticks: (766299) 2:07:42.99
则说明SNMP正常工作。
按照mrtg.hdl.com的文档,使用cfgmaker和indexmaker就可以生成MRTG所需要的Web发布文件。使用cfgmaker可以创建配置MRTG所需要的配置文件,而Indexmaker则是检索MRTG生成的Web文件,制作一个Index.html。这里,我提供一种更为简洁的办法:
(感谢Chris提供的mrtg-squid.cfg文件和index.html,可到
http://www.psychofx.com/chris/unix/mrtg/ 下载这两个文件。)
修改mrtg-squid.cfg文件选项如下:
修改 WorkDir 和 LoadMIBs 路径设置
修改所有出现在文件中的"hostname" 为你实际服务器名字
修改所有 "chris"字段为你需要的名字和地址
修改community 字串属性
这里配置如下:
WorkDir: /home/www/mrtg/squid
LoadMIBs: /usr/local/squid/etc/mib.txt
所有public@hostname修改secrect@proxysvr
创建/home/www/mrtg/squid这样一个目录。
#mkdir /home/www/mrtg/squid
#cd /home/www/mrtg/squid
#cp /opt/mrtg-squid.cfg .
#mrtg mrtg-squid.cfg
#cp /opt/index.html .
修改/etc/httpd/conf/httpd.conf如下几个选项
Listen 8000
Port 8000
Documentroot /home/www/mrtg/squid
由于mrtg读取文件需要资源,因为合理设置读取间隔,这里我设置为5分钟:
crontab ?Ce
*/5 * * * * /usr/local/mrtg-2/bin/mrtg /home/www/mrtg/squid/mrtg-squid.cfg
这样,我们就建立了一个完善的代理加速访问服务器,通过mrtg的强大监控,可以统计服务器运行时设备运行状态。由于以上软件遵从GNU,因此一种强大而有经济的建站手段。通过认证控制,允许特定用户使用代理服务。而Web加速服务器则成为服务器镜像的方便手段不明白?欢迎到 linux论坛 参加讨论!
Squid+MRTG实现完善的缓存代理和http服务加速代理2004-04-23 15:18 pm作者:linux宝库 来自:linux宝库 现存:
http://www./1518.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论!Squid 是一种源代码开放的高性能代理缓存服务器。它可支持FTP,gopher和Http数据对象的代理。另外,Squid也支持SSL,多样化访问控制和代理请求的完整日志功能。通过轻量级的网际缓存协议,Squid以网状或层次的方式分配内存,这样能节省额外的带宽。提供Http服务加速代理,Web服务器把Http数据推到Squid缓存中,外界的请求访问可以通过缓存提取所需数据,实现Web服务器的动态镜像。
另外,为了实现对Squid服务器的监控,采用MRTG。MRTG 是 Multi Router Traffic Grapher 的缩写,它主要的用途是监测网络服务设备的流量,并生成包括图片的HTML文件,可以直观的显示网络服务的流量,以提供Squid缓存服务的监测。
通过Squid+MRTG可以配置一个完善的代理服务提供方案。下面为具体配置步骤:
一.基础准备
Squid下载地址:
http://www.squid-cache.org 版本:squid-2.4.STABLE4-src.tar.gz
MRTG下载地址:
http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/版本:mrtg-2.9.22.tar.gz
机器配置为:256M内存,9G硬盘(其中4G分区专用缓存目录),PII433。
二.安装步骤
解压Squid(一般做法,把软件包括在/opt目录下)
#tar zxvf squid-2.4.STABLE4-src.tar.gz
#cd squid
//进行编译
#./configure --prefix=/usr/local/squid --enable-delay-pools --enable-snmp --enable-cache-digests --enable-auth-modules=”NCSA”
#make all
#make install
*对编译项目的解释:
--prefix 为编译Squid所存放的目录,这里为/usr/local/squid
--enable-delay-pools 此选项使能一个延时池,这样能对某些特定的请求限制额定带宽。
--enable-snmp 此选项可以让MRTG使用SNMP协议对服务器的流量状态进行监测,因此必须选择此项,使Squid支持SNMP接口。
--enable-cache-digests 使能缓存摘要,本来此项目的是为了在Squid集群服务之间迅速发现缓存对象,这里在本地使用,可以加快请求时,检索缓存内容的速度。
--enable-auth-modules 此编译选项启用认证模块,可以对访问代理用户进行授权。
安装MRTG
#tar zxvf mrtg-2.9.22.tar.gz
#cd mrtg*
#./configure --prefix=/usr/local/mrtg-2
#make
#make install
/* 几点说明:
1.MRTG大部分程序是用Perl脚本写成,需要Perl版本为5.005以上才能运行,RH 7.2带有perl版本为v5.6.0,非常满足要求。(如果版本不够,请到www.perl.com下载安装。)
2. MRTG需要zlib,gd和libpng三个处理图形的库支持,RH7.2满足此要求。(如果没有安装,请到http: //www.boutell.com/gd/
http://www.libpng.org/pub/png/src/ http://www.gzip.org/zlib 下载安装)
三.具体配置
lSquid配置(仅对必要选项配置并说明):
http_port 80
此选项用于Squid代理所侦听的端口,由于要实现Http加速代理,则侦听端口80
tcp_outgoing_address 255.255.255.255
此句法指定了远程服务器的IP地址,这里我们使用255.255.255.255来指定为所有地址
tcp_incoming_address
这里可以使用http_port语法进行绑定端口和IP地址。表示客户端的请求。可以不使用。
cache_mem 64 MB
由于Squid在读写磁盘,I/O通道,数据转贮等需要大量内存,我们可以把内存值稍微设置大一些,这样可以提供服务器性能。
cache_swap_low 95
这用做表示缓存内部对象的替换的衡量基线。当交换分区的磁盘利用率超越这个基线,那么缓存对象替换也就随之开始。这里是用百分率做衡量标准。
cache_swap_high 98
此标记用于缓存对象替换的最高程度,当交换分区磁盘利用率接近此设置,则表示对象的更新程度更为剧烈。这里由于我的缓存区设置比较大,因此设置为98%。
下面几个配置标记采用系统默认配置。
{ maximum_object_size 4096 KB
{ 超过此尺寸的对象将不缓存。
{ minimum_object_size 0 KB
{ 小于此尺寸的对象将不缓存。
{ maximum_object_size_in_memory 8 KB
{ 内存中能缓存的最大对象尺寸。
{ ipcache_size 1024
{ 指定IP缓存大小。
{ ipcache_low 90
{ 缓存IP地址的最低基线。
{ ipcache_high 95
{ 缓存IP地址的最高极限。
{ fqdncache_size 1024
{ 缓存DNS全域名解析的尺寸。
cache_replacement_policy lru
此标记用于当缓存新对象时,使用缓存策略来清除缓存中特定对象。这里使用lru表示:它只替换长时间没有被访问过的对象。其他策略请参看配置文档介绍。
memory_replacement_policy lru
此用法同上,区别在于替换内存对象。
cache_dir ufs /cache 4000 16 256
设置缓存根目录为/cache,类型为ufs,缓存区大小为4G,可以有16个二级子目录,每有二级目录有256个三级子目录。
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_swap_log /var/log/squid/swap.log
上面几项是缓存日志记录的路径和文件名。
log_ip_on_direct on
记录客户端主机的IP地址。
log_fqdn on
记录全DNS域名解析。
mime_table /usr/local/squid/etc/mime.conf
Squid所用mime的文件路径
pid_filename /usr/local/squid/logs/squid.pid
Squid进程ID的文件。
ftp_user
Squid@ynst.net.cn这里可以使用匿名登陆FTP服务器。
ftp_list_width 32
FTP文件列表长度,超过长度则截断文件名。
ftp_passive on
允许主动连接FTP服务器。
dns_nameservers 202.98.187.1
指定代理的域名解析服务器。
authenticate_program /usr/local/squid/bin/ncsa_auth
/usr/local/squid/etc/passwd
代理认证程序,这里在/usr/local/squid/etc使用htpasswd产生一个密码文件,具体方法如下:
#htpasswd ?Ccdb passwd auth_usr1 pass1
#htpasswd ?Cdb passwd auth_usr2 pass2
#htpasswd ?Cdb passwd auth_usr3 pass3
创建passwd文件,并添加auth_usr1,auth_usr2,auth_usr3三个认证用户。
authenticate_children 5
所需要要产生的认证进程数。
authenticate_ttl 3600
此标记设置认证保持时间。
authenticate_ip_ttl 1800
此标记设置认证绑定IP地址的时间长度。
authenticate_ip_ttl_is_strict on
此标记可在authenticate_ttl时间内,拒绝其他非认证IP地址访问。
request_header_max_size 10 KB
request_body_max_size 1 MB
设置了Http请求的包头和数据大小。
request_body_max_size 0
这里,请求所返回的数据大小为0,意义为没有任何限制。
connect_timeout 180 seconds
read_timeout 15 minutes
request_timeout 20 seconds
上面几项是代理服务几个超时设置,这里使用配置文件默认值。
下面是访问控制列表一些配置,这里对访问的IP地址,域名,访问类型极其访问代理的权限做的限制:
acl acldomain dstdomain .ynst.net.cn
acl acceleratedport port 80
acl acceleratedhost dst 202.98.187.17/255.255.255.255
acl aclprotocol proto HTTP FTP
acl aclmethod method GET POST
acl aclauth proxy_auth required
(注:这里使用required表示任何passwd文件中存在的合法用户才授予访问权限。)
acl aclsnmp snmp_community secrect
MRTG可以使用snmp协议检测此代理服务运行状态。
acl aclconn maxconn 20
可并行连接的最大数量。
启用定义的访问控制列表
http_access allow manager localhost
http_access deny manager
http_access allow aclauth
http_access allow acceleratedport acceleratedhost
http_access deny all
下面为缓存管理设置
cache_mgr
admin@ynst.net.cn设置缓存管理者的接受邮件地址。
cache_effective_user squidusr
cache_effective_group squidgrp
设置执行Squid的用户和用户组。
{注:设置用户和用户组及其权限修改方法如下:
#groupadd squidgrp
#useradd ?Cg squidgrp ?Cd /home/squidusr squidusr
修改log日志权限属性,使squidusr有写权限。
#chown squidusr /var/log/squid
#chgrp squidgrp /var/log/squid
#chown squidusr /var/log/squid/*.log
#chown squidgrp /var/log/squid/*.log
}
下面配置Http服务加速代理
httpd_accel_host 202.98.187.17
httpd_accel_port 80
httpd_accel_with_proxy on
(注:如果配置代理和加速服务,必须httpd_accel_with_proxy选项打开。如果需要配置多个加速,可以使用虚拟的概念。)
snmp_port 3401
此标记设置snmp_port端口为3401,可以使MRTG监测服务运行状态。
snmp_access allow aclsnmp localhost
snmp_access deny all
snmp_incoming_address 0.0.0.0
snmp_outgoing_address 0.0.0.0
以上选项用于配置和MRTG交互信息的Snmp设置。
digest_generation on
digest_rebuild period 1 hour
digest_rewrite_period 1 hour
digest_swapout_chunk_size 4096 bytes
digest_rebuild_chunk_percentage 10
产生缓存摘要,并设置摘要重构所需要的时间及其相关设置,这里采用系统默认设置。缓存摘要使的庞大的缓存内容形成一个微型检索,提高代理性能。
最后我们进行延迟队列池进行配置
延迟队列池可以基于一定规则对特定请求数据的进行限制,这样可以防止恶意用户发送非正规数据串攻击服务器。
以下选项只在必要处进行说明,配置如下:
delay_pools 1 #定义一个池
delay_class 1 1 #池为1类型
delay_access 1 allow all #允许类型1的所有请求访问
delay_parameters 1 128000/128000 #限制访问的128k/s
delay_initial_bucket_level 50 #Squid启动时,初始化池所用的带宽数量。
运行Squid代理服务:
#squid ?Cz /*创建Squid所使用的缓存目录结构
如果想在前台运行
#squid ?CNCdl
如果想在后台运行
#squid
检查Squid是否运行
#squid ?Ck check
lMRTG配置:
首先测试SNMP服务是否启动:
#snmpwalk -p 3401 hostname communitystring .1.3.6.1.4.1.3495.1.1
如果看到如下输出:
enterprises.nlanr.squid.cacheSystem.cacheSysVMsize = 7970816
enterprises.nlanr.squid.cacheSystem.cacheSysStorage = 2796142
enterprises.nlanr.squid.cacheSystem.cacheUptime = Timeticks: (766299) 2:07:42.99
则说明SNMP正常工作。
按照mrtg.hdl.com的文档,使用cfgmaker和indexmaker就可以生成MRTG所需要的Web发布文件。使用cfgmaker可以创建配置MRTG所需要的配置文件,而Indexmaker则是检索MRTG生成的Web文件,制作一个Index.html。这里,我提供一种更为简洁的办法:
(感谢Chris提供的mrtg-squid.cfg文件和index.html,可到
http://www.psychofx.com/chris/unix/mrtg/ 下载这两个文件。)
修改mrtg-squid.cfg文件选项如下:
修改 WorkDir 和 LoadMIBs 路径设置
修改所有出现在文件中的"hostname" 为你实际服务器名字
修改所有 "chris"字段为你需要的名字和地址
修改community 字串属性
这里配置如下:
WorkDir: /home/www/mrtg/squid
LoadMIBs: /usr/local/squid/etc/mib.txt
所有public@hostname修改secrect@proxysvr
创建/home/www/mrtg/squid这样一个目录。
#mkdir /home/www/mrtg/squid
#cd /home/www/mrtg/squid
#cp /opt/mrtg-squid.cfg .
#mrtg mrtg-squid.cfg
#cp /opt/index.html .
修改/etc/httpd/conf/httpd.conf如下几个选项
Listen 8000
Port 8000
Documentroot /home/www/mrtg/squid
由于mrtg读取文件需要资源,因为合理设置读取间隔,这里我设置为5分钟:
crontab ?Ce
*/5 * * * * /usr/local/mrtg-2/bin/mrtg /home/www/mrtg/squid/mrtg-squid.cfg
这样,我们就建立了一个完善的代理加速访问服务器,通过mrtg的强大监控,可以统计服务器运行时设备运行状态。由于以上软件遵从GNU,因此一种强大而有经济的建站手段。通过认证控制,允许特定用户使用代理服务。而Web加速服务器则成为服务器镜像的方便手段。
不明白?欢迎到 linux论坛 参加讨论!
UNIX/LINUX中使用MRTG自动画虚拟主机流量图2004-04-23 15:18 pm作者:樊礼来自:linux宝库 现存:
http://www./1319.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论! 做为一个空间商?o非常有必要了解每一个虚拟主机用户的流量大小?o通过文字的表述难以形象?o生动的表现出来原本变化的数据?o故我在这里将自己在 FREEBSD 5.2环境下?o监控每个虚拟主机流量的方法写出来?o供大家参考。该种方法适合于UNIX/LINUX环境下的Apache 1.X和Apache 2.X?o具体实施步骤差不多?o希望大家举一反三。(2004-04-19 00:18:25)
做为一个空间商?o非常有必要了解每一个虚拟主机用户的流量大小?o通过文字的表述难以形象?o生动的表现出来原本变化的数据?o故我在这里将自己在 FREEBSD 5.2环境下?o监控每个虚拟主机流量的方法写出来?o供大家参考。该种方法适合于UNIX/LINUX环境下的Apache 1.X和Apache 2.X?o具体实施步骤差不多?o希望大家举一反三。我还是希望能用自己罗嗦的方法,教会包括菜鸟在内的所有喜欢UNIX/LINUX的朋友。
我的环境是?sFreeBSD 5.2+Apache 2.0.48
如果你不会在LINUX环境里面使用,发邮件告诉我,我再写一篇在LINUX环境里面安装也可以的,但我认为两者差不多的,LINUX或者其他UNIX系统里面,最多把ports换成源代码编译而已,所以题目我还是坚持使用UNIX/LINUX下安装,呵呵~
示例?s
http://www.onlinecq.com/mrtg/www.onlinecq.com.html在开始做之间?o希望大家对MRTG有所了解?o因为我们将要使用它来做实现动态的流量图形生成。如果对MRTG不了解?o建议先看看我写的另外一篇文章?o《在WINDOWS下安装MRTG全攻略》
http://www.blogbus.com/blogbus/blog/diary.php?diaryid=87658 ?o做一下热身运动?o呵呵~~
让我们开始吧~~
一?p安装MRTG
二?p安装APACHE 2.0.48
三?p安装MOD_WATCH
四?p做整机流量图索引
五?p排程更新MRTG流量图
六?p结束语
一?p安装MRTG
cd /usr/ports/net/mrtg
make install
默认情况下即可正常安装,不需要其他配置。
二、安装APACHE 2.0.48
cd /usr/ports/www/apache2
make WITH_SUEXEC=yes install
在这里安装APACHE 2 有多种方式,我们可以使用:
make show-options 显示安装时的可选项
make show-modules 显示需要安装的模块
当然,安装时可以选择的余地很大的,如果你需要特别提升APACHE 2 的性能,可以选择不同的安装选项试一下,我曾经连续花了一天时间安装了十几次APACHE 2,以测试不同选项搭配后的效果,>_<
听着硬盘“哗啦哗啦”一阵狂响后,系统会提示你安装成功,^_^
三、安装MOD_WATCH
首先说明,因为apache 和1.X和2.X,那么我们的mod_watch模块也有mod_watch和mod_watch4两种,前一种对应apache 1.X,后一种对应apache 2.X。因为我是安装的APACHE 2.X,故应该安装mod_watch4。如果你是APACHE 1.X,请直接更改一下即可使用。
cd /usr/ports/www/mod_watch4
make install
安装成功后,接下来是最重要的配置工作,就是要怎么才能让系统认得APACHE 2的流量,并且画出我们的实时流量,请接着看:
现在我们修改一下httpd.conf文件
vi /usr/local/etc/apache2/httpd.conf
找一个地方加入
<IfModule mod_watch.c>
# Allows the URL used to query virtual host data:
#
#
http://www.snert.com/watch-info#
<Location /watch-info>
SetHandler watch-info
</Location>
# Intended for debugging and analysis of shared memory
# hash table and weenie files:
#
#
http://www.snert.com/watch-table#
<Location /watch-table>
SetHandler watch-table
</Location>
</IfModule>
注意,为了安全,请关闭watch-table选项,或者加以IP限制,以免别人查看你SERVER所放的站点资源,引起不必要的麻烦。
Order deny,allow
Deny from all
Allow from 127.0.0.1
你可以把127.0.0.1换成其他你信任的IP或者IP段,域名等~
设置完成后,请使用
/usr/local/sbin/apachectl configtest
检查httpd.conf文件是否有错
如果显示系统正常,再使用下面的命令重新启动apache
/usr/local/sbin/apachectl restart
上面的配置成功后,你就可以从某个虚拟主机的watch-info文件读出某些数据了,比如我的:
http://freebsd.onlinecq.com/watch-infofreebsd.onlinecq.com 2 760 858 2 1 1 0.000 675269920 3217025432
这些数据就是供MRTG画流量图的,以达到实时监控的目的!
OK,请在httpd.conf文件里面配置好虚拟主机,然后用下面的命令生成相应的文件:
apache2mrtg.pl /usr/local/etc/apache2/httpd.conf
屏幕显示如下:
freebsd# apache2mrtg.pl /usr/local/etc/apache2/httpd.conf
Title[freebsd.onlinecq.com]: freebsd.onlinecq.com Data Traffic
Target[freebsd.onlinecq.com]: `/usr/local/sbin/mod_watch.pl
http://freebsd. onlinecq.com/watch-info`
MaxBytes[freebsd. onlinecq.com]: 1250000
PageTop[freebsd. onlinecq.com]: <h2><a href="
http://freebsd. onlinecq.com/">freebsd. onlinecq.com</a> Data Traffic</h2>
把上面Title开始的一段信息,拷贝一下,待用。注意,这里每个虚拟主机将会显示一段,如果你的虚拟主机多,将会显示很多,一大堆信息出来,不过都请大家都复制下来待用,除非你不想生成某个虚拟主机的流量图。
这样子系统是无法生成流量图的,因为它不符合MRTG的语法,我们需要在这文件里面加入一些东东才可以的。
vi /usr/local/etc/apache2/mod_watch.cfg
WorkDir:/home/onlinecq.com/mrtg/
Options[_]: growright,bits
#Language: gb2312
#Title[^]: Traffic Analysis for
PageTop[^]: <H1>Traffic Stats for OnlineCQ.COM User</H1><HR>
#PageTop[$]: Contact QQ: 151482576<HR>
PageFoot[^]: OnlineCQ.COM MSN:
cqfanli@hotmail.com QQ:151482576
(然后再贴上前面通过apache2mrtg.pl显示的那一段话)
使用:wq存盘退出,这样子就会在/usr/local/etc/apache2目录里面产生一个mod_watch.cfg文件,备用!
接下来,我们要注意一点,就是mod_watch.cfg里面的
WorkDir:/home/onlinecq.com/mrtg/
这个目录一定要存在,并且要能通过网站访问的,一般放到自己官方网页上面,呵呵~
看起来差不多了哦,我们试一下,请用下面命令生成MRTG的流量图:
mrtg /usr/local/etc/apache2/mod_watch.cfg
我的主机上面首次执行后,将会显示几行错误,不理它,多执行几次即可! 错误提示的意思大概是,找不到某某文件,因为这些文件是旧文件,需要系统生成的。大概执行2-3次后,即不会报错啦~
到此为止,你就可以成功得到流量图了,同时,在/home/onlinecq.com/mrtg目录里面会产生很多png图片和html文件和网址的,这些都是每一个虚拟主机的流量图,千万不要删除了哦,*^_^*
请这样子访问你的虚拟主机的流量图
http://域名/mrtg/虚拟主机域名.html
比如我要访问我的站的MRTG流量图,就是这样子:
http://www.onlinecq.com/mrtg/www.onlinecq.com.html四?p做整机流量图索引
如果你的虚拟主机很多,你又想一下子看完所有用户的流量图,你可以这样子来做一个MRTG流量图索引:
/usr/local/bin/indexmaker --title=”nlineCQ.COM BANDWIDTH MRTG TATOL" --output=/home/onlinecq.com/index.html /usr/local/etc/apache2/mod_watch.cfg
这样子在/home/onlinecq.com/mrtg目录里面就会生成index.html的流量图了,里面将会有所有用户的流量图!
五?p排程更新MRTG流量图
如果不做这一步,我们只有手工更新流量图啦,呵呵~
要排程更新的话,也比较简单的,就是把相关命令加到crontab里面即可:
vi /etc/crontab
*/5 * * * * root /usr/local/bin/mrtg /usr/local/etc/apache2/mod_watch.cfg
用:wq存盘退出,这样子每5分钟将会执行流量图的更新工作,当时,如果你要求比较高的话,可以让它每分钟都执行,不过注意,更新流量图时,会占用一些系统资源的,>_< 。还是适可而止吧~
六、结束语
至此为止,可以投入商业使用的MRTG实时流量图就建立起来了,您可以reboot一下,让最新的设置及软件生效。
如果在安装过程中出现错误,您可以先检查完错误,再接着安装下去。或者你可以选择你感兴趣的某些部份安装!
当然因为时间仓促,涉及到的知识太广,加上本人能力有限,其中错误在所难免,恳请各位读者提出来,大家共同提高,共同进步!
我的联络方式是:
cqfanli@163.comhttp://cqfanli.blogbus.com──文 重庆.樊礼(梦飞)
2004/02/27 晚
不明白?欢迎到 linux论坛 参加讨论!
超级详细Tcpdump 的用法2005-12-25 15:00 pm作者:jeffyan来自:linux宝库 现存:
http://www./5047.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论!第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host.
第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。
第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。
除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'or' ,'││';这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。
普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。
# tcpdump
tcpdump: listening on fxp0
11:58:47.873028 202.102.245.40.netbios-ns > 202.102.245.127.netbios-ns: udp 50
11:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/C len=43
0000 0000 0080 0000 1007 cf08 0900 0000
0e80 0000 902b 4695 0980 8701 0014 0002
000f 0000 902b 4695 0008 00
11:58:48.373134 0:0:e8:5b:6d:85 > Broadcast sap e0 ui/C len=97
ffff 0060 0004 ffff ffff ffff ffff ffff
0452 ffff ffff 0000 e85b 6d85 4008 0002
0640 4d41 5354 4552 5f57 4542 0000 0000
0000 00
使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用,
使用-c参数指定要监听的数据包数量,
使用-w参数指定将监听到的数据包写入文件中保存
A想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包:
#tcpdump host 210.27.48.1
B想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令:(在命令行中适用 括号时,一定要
#tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)
C如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
D如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
#tcpdump tcp port 23 host 210.27.48.1
E 对本机的udp 123 端口进行监视 123 为ntp的服务端口
# tcpdump udp port 123
F 系统将只对名为hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。下面的命令可以读取主机hostname发送的所有数据:
#tcpdump -i eth0 src host hostname
G 下面的命令可以监视所有送到主机hostname的数据包:
#tcpdump -i eth0 dst host hostname
H 我们还可以监视通过指定网关的数据包:
#tcpdump -i eth0 gateway Gatewayname
I 如果你还想监视编址到指定端口的TCP或UDP数据包,那么执行以下命令:
#tcpdump -i eth0 host hostname and port 80
J 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包
,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
K 想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令
:(在命令行中适用 括号时,一定要
#tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)
L 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
M 如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
#tcpdump tcp port 23 host 210.27.48.1
第三种是协议的关键字,主要包括fddi,ip ,arp,rarp,tcp,udp等类型
除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,
greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'o
r' ,'||';
第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,
如果我们只需要列出送到80端口的数据包,用dst port;如果我们只希望看到返回80端口的数据包,用src port。
#tcpdump ?Ci eth0 host hostname and dst port 80 目的端口是80
或者
#tcpdump ?Ci eth0 host hostname and src port 80 源端口是80 一般是提供http的服务的主机
如果条件很多的话 要在条件之前加and 或 or 或 not
#tcpdump -i eth0 host ! 211.161.223.70 and ! 211.161.223.71 and dst port 80
如果在ethernet 使用混杂模式 系统的日志将会记录
May 7 20:03:46 localhost kernel: eth0: Promiscuous mode enabled.
May 7 20:03:46 localhost kernel: device eth0 entered promiscuous mode
May 7 20:03:57 localhost kernel: device eth0 left promiscuous mode
tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。
除了过滤语句,还有一个很重要的参数,也就是说,如果这个参数不设置正确,会导致包数据的丢失!
它就是-s 参数,snaplen, 也就是数据包的截取长度,仔细看man就会明白的!默认截取长度为60个字节,但一般ethernet MTU都是1500字节。所以,要抓取大于60字节的包时,使用默认参数就会导致包数据丢失!
只要使用-s 0就可以按包长,截取数据!不明白?欢迎到 linux论坛 参加讨论!
基于RRDTOOL+CACTI性能监视系统的架构2005-11-09 17:08 pm作者:ipaddr来自:linux宝库 现存:
http://www./1843.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论!一、概述
Linux下用的最多的是MRTG的性能监视,MRTG配置比较简单,MRTG的确是非常好的东东,但我认为它毕竟已经是一套很旧的软件了,其作者在多年前就已经开发了RRDTool代替该软件,现在已经发展得很成熟。既然有更好的选择,为什么我们还要用MRTG呢?
简单的说,rrdtool就是一个强大的绘图的引擎,很多语言都可以调用rrdtool绘图。
整个系统的架构是这样的:
基于SNMP协议,被监控端是服务器,或一些网络设备,
网络管理工作站,采用Linux(或Freebsd)操作系统,并且安装Net-SNMP工具,使用RRDTOOL采集数据,存储数据,并用Cacti调用rrdtool显示出来。
CACTI采用PHP编写,基于B/S结构。
二、介绍
MRTG的优点:简单、易上手,基本安装完了之后只要更改一下配置文件即可。
缺点:
1、使用文本式的数据库,数据不能重复使用;
2、只能按日、周、月、年来查看数据;
3、只能画两个DS(一条线、一个块);
4、每取一次数据即需要绘图一次,浪费系统资源;
5、无管理功能;
rrdtool的优点:
1、使用rrd存储格式,数据能重复使用,比如我可以将一个rrd文件中的数据与另一个rrd文件中的数据相加。
2、可以定义任意时间段画图,即你可以画出一张半年以来的数据的图,也可以画出一张半小时以来的图。
3、能画任意个DS。
4、CDEF让你能任意摆弄数据。
缺点:
1、rrdtool的作用只是存储数据和画图,它没有mrtg中集成的数据采集功能;
2、在命令行的使用非常复杂,参数极多。
3、无管理功能。
简单的说,rrdtool就是一个强大的绘图的引擎。
由于其非常复杂的命令,对用户非常不友好,我一度想自己用php写一套系统。幸运的是,半年前我找到了cacti(www.cacti.net)。对该工具我只有一个字形容:“great!”。
cacti 其实是一套php程序,它运用snmpget采集数据,使用rrdtool绘图。它的界面非常漂亮,能让你根本无需明白rrdtool的参数能轻易的绘出漂亮的图形。更难能可贵的是,它提供了强大的数据管理和用户管理功能,一张图是属于一个host的,每一个host又可以挂载到一个树状的结构上。用户的管理上,作为一个开源软件,它居然做到为指定一个用户能查看的“树”、host、甚至每一张图,还可以与LDAP结合进行用户的验证!我不由得佩服作者考虑的周到!Cacti还提供自己增加模板的功能,让你添加自己的snmp_query和script!可以说,cacti将rrdtool的所有“缺点” 都补足了!
三、监控管理工作站配置
采用Linux系统,CACTI要用到Net-SNMP,RRDTool,Aapche,PHP,Mysql,以下是安装过程:
1. 安装Apache+Mysql+PHP
安装过程比较简单,参考其它的资料,需要注意的是,PHP最好加上SNMP支持,编译的时候,加上―enable-snmp
注意。PHP不能运行在安全模式,否则,Cacti工作不正常。无法调用/usr/local/bin/下面的程序。
2. 安装rrdtool
官方网站:
http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/下载:
http://people.ee.ethz.ch/~oetike ... dtool-1.0.50.tar.gz
然后
./configure ?Cprefix=/usr/local/rrdtool
make
make install
与mrtg相比,rrdtool自带了gd库,所以不用先安装gd库.(不过由于rrdtool自带的gd库不支持中文,所以rrdtool画出来的图也不能有中文,否则会出现乱码).
注意:rrdtool1.2的版本由于已经不再自带外部的lib库(如cgilib,zlib等),所以需要从
http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/libs/下载这些库来安装。建议还是使用1.0的版本,比较方便。
安装完后,执行rrdtool看是否正确,
如果执行不成功,提示命令不存在,则需要将所有RRDTool的可执行文件,拷到/usr/local/bin
cp /usr/local/rrdtool/bin/* /usr/local/bin
3. 安装Net-SNMP
RH下面,安装了SNMP服务,但好象没有snmpwalk,snmpget这两个命令,所以需要安装NET-SNMP。NET-SNMP官方网站:
http://www.net-snmp.org/下载net-snmp-5.1.3.1.tar.gz
tar zxvf net-snmp-5.1.3.1.tar.gz
cd net-snmp-5.1.3.1
./configure
make
make install
运行snmpget,snmpwalk测试是否安装成功
RPM包的snmpwalk的名称是:net-snmp-utils.*.rpm,也可以从安装光盘上RPM安装。
4. 安装CACTI
官方网站:
http://www.cacti.net/a) 安装cacti源文件
下载cacti-0.8.6f.tar.gz
将这个压缩包解压到网站根目录
#cp cacti-0.8.6f.tar.gz /usr/local/apache2/htdocs
#cd /usr/local/apache2/htdocs
#tar xzvf cacti-0.8.6f.tar.gz
#mv cacti-0.8.6f cacti
#chown ?CR apache.apache cacti
#cd cacti
b) 配置Mysql数据库
为cacti配置用户和数据库:
#mysql ?Cu root ?Cp
mysql>create database cactidb;
mysql>grant all privileges on cactidb to cactiuser@localhost identified by ‘password’;
mysql>quit
配置Cacti连接数据库
#vi /usr/local/apache2/htdocs/cacti/include/config.php
$database_type = “mysql”;
$database_default = “cactidb”;
$database_hostname = “localhost”;
$database_username = “cacti”;
$database_password = “password”;
c) 定时crontab运行cacti的收集数据程序
#vi /etc/crontab
*/5 * * * * /usr/local/bin/php /usr/local/apche2/htdocs/cacti/poller.php > /dev/null 2>&1
d) 配置Cacti
在浏览器上输入:
http://IP/cacti进入cacti的初始设置页面:
在这里我们要输入一些原始的信息:
NEXT -》
输入一些信息,如rrdtool、php、snmpwalk、snmpget的位置,使用ucd-snmp还是net-snmp等 -》
输入原始的用户和密码:admin/admin -》
更改admin用户的密码 -》
点击 Save
安装完成!!!
现在可以在浏览器中进入Cacti的世界了!
5. 测试
四、被监控端配置
大部分情况下,我们监控的是服务器,以RedHat Linux为例,看看如何打开SNMP服务。
只有开启了SNMP服务,监控端才可以收集数据。
打开默认的/etc/snmp/snmp.conf文件,更改如下配置:
1、查找以下字段:
代码:
# sec.name source community
com2sec notConfigUser default public
将"comunity"字段改为你要设置的密码.比如"public".
将“default”改为你想哪台机器可以看到你的snmp信息,如10.10.10.10。
2、查找以下字段:代码:
####
# Finally, grant the group read-only access to the systemview view.
# group context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact all none none
将"read"字段改为all.
代码:
#access notConfigGroup "" any noauth exact systemview none none
3、查找以下字段:代码:
## incl/excl subtree mask
#view all included .1 80
将该行前面的"#"去掉.
保存关闭.
4、运行/etc/init.d/snmpd start命令运行snmpd.
5、如果有防火墙,打开UDP 161端口。
最后运行netstat -ln查看161端口是否打开了.
使用ntsysv,让snmp服务,每次开机自动运行。
如果没有安装snmp服务,请在RH的安装光盘上找到net-snmp.rpm,再安装。
五、测试
打开本机的SNMP服务,
打开
http://localhost/cacti默认Cacti有LocalHost的四项参数,直接可以查看了。
六、排错
1. 首先检查一下rra/下面,有没有数据
2. snmpwalk -v 2c -c public ServerIP if 用来测试被控对象(serverIP)是否开启了SNMP服务
3. snmpwalk -v 2c ServerIP -c public .1.3.6.1.4.1.2021.10.1.3 查看被控端是否有CPU负载的数据返回
4. /usr/local/bin/php /usr/local/apche2/htdocs/cacti/poller.php 用来测试PHP是否可以采集到数据。如果上面的都正确,但这步出错,很有可能是PHP配置的问题,或开启了SuLinux。
5. 如果按第2步snmpwalk能采集到数据,但第3步无法采集,可能是PHP设置的问题,修改PHP.ini,很有可能是PHP权限问题。
七、rrdtool1.2的安装
1.2版的rrdtool画出的图,比1.0的要漂亮些.1.0用的是GD画图,1.2用的是libart和freetype画图.1.2的画图会慢一点.
1.2版的安装,可以见
http://bbs.chinaunix.net/forum/viewtopic.php?t=552224上面的安装比较麻烦,需要装不少库,其实,可以,可以直接RPM安装,RedHat的系统,直接从安装光盘上找到这几个库,安装就可.主要的包有:
libart_lgpl
libart_lgpl-devel
libpng
libpng-devel
zlib
zlib-devel
freetype
freetype-devel
找到上面这些包,直接rpm ?Civh *.rpm
cgilib好象没有,而且,从rrdtool官方网站下载的cgilib无法安装.我们也不需要rrdcgi,所以,可以不考虑了.
安装完后,解压1.2版的rrdtool
./configure ?Cprefix=/usr/local/rrdtool ?Cdisable-rrdcgi
make
make install
cp /usr/local/rrdtool/bin/* /usr/local/bin/
参考:
RRDTOOL教学
http://www.study-area.org/tips/rrdtool/rrdtool.html使用cacti监测系统性能
http://bbs.chinaunix.net/forum/viewtopic.php?t=594019不明白?欢迎到 linux论坛 参加讨论!
你还在用mrtg吗?--使用cacti监测系统性能2005-11-09 17:16 pm作者:joecen来自:linux宝库 现存:
http://www./3211.html联系:
joecen@21cn.com不明白?欢迎到 linux论坛 参加讨论!欢迎转载 ,但有任何修改???硇鸥嬷?,不得作为商业用途
作者:
转载时请保持该通告
前言:
在CU的论坛上经常看到有人问MRTG的问题,还有很多的关于MRTG的精彩文章。MRTG的确是非常好的东东,但我认为它毕竟已经是一套很旧的软件了,其作者在多年前就已经开发了RRDTool代替该软件,现在已经发展得很成熟。既然有更好的选择,为什么我们还要用MRTG呢?
第一部分,介绍:
2004年我刚进某公司工作,当时我使用MRTG建立了一套系统,专门监测我们服务器和其它网络设备的流量。
后来我想将其它的系统性能比如CPU负载、系统负载,网络连接数等一起监测起来。我在网上查找了很多的资料,也实现了这些功能,但总觉得实现的太费劲,管理起来太麻烦了。比如我有几百个被监测点,分布在不同的机房,而且我需要将这些服务器和网络设备分类,这样的话我就要将这些被监测点放在不同的mrtg配置文件中,运行多个crontab,而且自己还写了一些html页面对其进行管理。
后来有幸看到了abelyang兄写的大作“rrdtool 教?W”,里面列举了rrdtool的种种优点,于是我下定决心要将MRTG更换为rrdtool。
MRTG的优点:简单、易上手,基本安装完了之后只要更改一下配置文件即可。
缺点:
1、使用文本式的数据库,数据不能重复使用;
2、只能按日、周、月、年来查看数据;
3、只能画两个DS(一条线、一个块);
4、每取一次数据即需要绘图一次,浪费系统资源;
5、无管理功能;
rrdtool的优点:
1、使用rrd存储格式,数据能重复使用,比如我可以将一个rrd文件中的数据与另一个rrd文件中的数据相加。
2、可以定义任意时间段画图,即你可以画出一张半年以来的数据的图,也可以画出一张半小时以来的图。
3、能画任意个DS。
4、CDEF让你能任意摆弄数据。
缺点:
1、rrdtool的作用只是存储数据和画图,它没有mrtg中集成的数据采集功能;
2、在命令行的使用非常复杂,参数极多。
3、无管理功能。
简单的说,rrdtool就是一个强大的绘图的引擎。
由于其非常复杂的命令,对用户非常不友好,我一度想自己用php写一套系统。幸运的是,半年前我找到了cacti(www.cacti.net)。对该工具我只有一个字形容:“great!”。
cacti其实是一套php程序,它运用snmpget采集数据,使用rrdtool绘图。它的界面非常漂亮,能让你根本无需明白rrdtool的参数能轻易的绘出漂亮的图形。更难能可贵的是,它提供了强大的数据管理和用户管理功能,一张图是属于一个host的,每一个host又可以挂载到一个树状的结构上。用户的管理上,作为一个开源软件,它居然做到为指定一个用户能查看的“树”、host、甚至每一张图,还可以与LDAP结合进行用户的验证!我不由得佩服作者考虑的周到!Cacti还提供自己增加模板的功能,让你添加自己的snmp_query和script!可以说,cacti将rrdtool的所有“缺点”都补足了!
第二部分:Cacti的安装
该安装文档是我参照www.cacti.net上的官方文档进行安装后,总结出来的。平台是Linux或FreeBSD。
1、安装mysql
下载源码:
http://www.signal42.com/mirrors/mysql/Downloads/MySQL-4.0/mysql-4.0.23.tar.gz
for linux:
http://www.signal42.com/mirrors/mysql/Downloads/MySQL-4.0/mysql-standard-4.0.23-pc-linux-i686.tar.gz
for freebsd47:
http://www.signal42.com/mirrors/mysql/Downloads/MySQL-4.0/mysql-standard-4.0.22-unknown-freebsd4.7-i386.tar.gz
上面的链接已经失效,请到
http://dev.mysql.com/downloads/mysql/4.1.html或
http://www.mysql.com下载mysql数据库
安装:
CODE:
[Copy to clipboard]
shell>; groupadd mysql
shell>; useradd -g mysql mysql
shell>; cd /usr/local
shell>; gunzip
shell>; ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql
shell>; cd mysql
shell>; scripts/mysql_install_db --user=mysql
shell>; chown -R root .
shell>; chown -R mysql data
shell>; chgrp -R mysql .
shell>; bin/mysqld_safe --user=mysql &
./bin/mysqladmin -u root password "yourpasswd" 基于安全的原因,为root用户设置密码才能让root用户登陆mysql,不然会有2002错误出现
建立启动脚本:
CODE:
[Copy to clipboard]
cp ./support-files/mysql.server /etc/init.d/mysql
ln -s ../init.d/mysql S85mysql
ln -s ../init.d/mysql K85mysql
2、安装apache
下载:
http://apache.freelamp.com/httpd/httpd-2.0.54.tar.bz2
安装:
CODE:
[Copy to clipboard]
./configure --prefix=/www --enable-so
make && make install
建立启动脚本
CODE:
[Copy to clipboard]
cp /www/bin/apachectl /etc/init.d/httpd
cd /etc/rc3.d
ln -s ../init.d/httpd S85httpd
ln -s ../init.d/httpd K85httpd
启动
/www/bin/apachectl start
3、安装php
下载:
http://us4.php.net/get/php-4.3.10.tar.gz/from/cn2.php.net/mirror安装:
CODE:
[Copy to clipboard]
/configure --prefix=/www/php --with-apxs2=/www/bin/apxs --with-config-file-path=/www/php --enable-sockets --with-mysql=/usr/local/mysql --with-zlib-dir=/usr/include --with-gd
make && make install
cp php.ini-dist /www/php/php.ini
vi /www/conf/httpd.conf
加入:
###############for php and cacti###################
AddType application/x-tar .tgz
AddType application/x-httpd-php .php
AddType image/x-icon .ico
DirectoryIndex index.php index.html index.html.var
#######################over########################
../bin/apachectl restart
4、设置mysql
CODE:
[Copy to clipboard]
# mysql -u root -prootroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10 to server version: 4.0.23-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>; create database cactidb;
Query OK, 1 row affected (0.00 sec)
mysql>; grant all on cactidb.* to root;
Query OK, 0 rows affected (0.01 sec)
mysql>; grant all on cactidb.* to root@localhost;
Query OK, 0 rows affected (0.01 sec)
mysql>; grant all on cactidb.* to cactiuser;
Query OK, 0 rows affected (0.00 sec)
mysql>; grant all on cactidb.* to cactiuser@localhost;
Query OK, 0 rows affected (0.01 sec)
mysql>; set password for cactiuser@localhost=password('cactipw');
Query OK, 0 rows affected (0.00 sec)
mysql>; exit
5、安装rrdtool
下载:
http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/rrdtool-1.0.x/rrdtool-1.0.50.tar.gz
然后
./configure
make && make install 即可
与mrtg相比,rrdtool自带了gd库,所以不用先安装gd库.(不过由于rrdtool自带的gd库不支持中文,所以rrdtool画出来的图也不能有中文,否则会出现乱码).
注意:rrdtool1.2的版本由于已经不再自带外部的lib库(如cgilib,zlib等),所以需要从http: //people.ee.ethz.ch/~oetiker/webtools/
rrdtool/pub/libs/下载这些库来安装。建议还是使用 1.0的版本,比较方便。
6、安装net-snmp
几乎所有的网络设备和操作系统默认都安装了snmp服务。
unix系统安装的都是net-snmp或ucd-snmp(其实两个都是同一组人写的)。
如果没有安装snmp,可以到net-snmp.sourceforge.org上下载源码编译安装。
我这里说的安装SNMP服务并不是要求安装SNMPD,其实是Cacti需要用到net-snmp中的两个命令?D?Dsnmpwalk和snmpget进行数据的采集。
我们可以直接在系统中运行snmpwalk和snmpget看是否有该命令,如果有则不用安装了。
7、安装cacti
注意:写该文档时cacti的最高版本时0.8.6c,现在的最高版本是0.8.6f。由于0.8.6f以下的版本有SQL注入漏洞,请大家下载0.8.6f或以上的版本进行安装。
下载:
http://www.cacti.net/downloads/cacti-0.8.6c.tar.gz
安装:
CODE:
[Copy to clipboard]
cp cacti-0.8.6c.tar.gz /www/htdocs
tar xzvf cacti-0.8.6c.tar.gz
mv cacti-0.8.6c cacti
cd cacti
导入表:
CODE:
[Copy to clipboard]
/usr/local/mysql/bin/mysql ?Cu root ?Cprootroot cactidb
chown ?CR cactiuser rra/ log/
设置配置文件:
CODE:
[Copy to clipboard]
vi /www/htdocs/cacti/include/config.php
$database_type = “mysql”;
$database_default = “cactidb”;
$database_hostname = “localhost”;
$database_username = “cactiuser”;
$database_password = “cactipw”;
核对以上几项是否正确
CODE:
[Copy to clipboard]
Crontab ?Cu cactiuser ?Ce
为cactiuser用户加入
*/5 * * * * /www/php/bin/php /www/htdocs/cacti/poller.php >; /dev/null 2>;&1
(不要使用root用户运行上面的命令,否则要再运行一次chown ?CR cactiuser rra/ log/)
8、页面设置:
在浏览器上输入:
http://IP/cacti进入cacti的初始设置页面:
在这里我们要输入一些原始的信息:
NEXT -》
输入一些信息,如rrdtool、php、snmpwalk、snmpget的位置,使用ucd-snmp还是net-snmp等 -》
输入原始的用户和密码:admin/admin -》
更改admin用户的密码 -》
点击 Save
安装完成!!!
现在可以在浏览器中进入Cacti的世界了!
开始考虑到大家都用过MRTG,应该对snmp有所了解,所有没有将snmp的配置写上来。现在发现有些朋友发贴说不能取到CPU和系统负载的数据,其原因应该是snmp设置默认没有允许取这些数据造成的。下面是我对linux和 FreeBSD下的net-snmp的一些简单的配置。
一、Linux(RedHat)的配置
打开默认的/etc/snmp/snmpd.conf文件,更改如下配置:
1、查找以下字段:
CODE:
[Copy to clipboard]
# sec.name source community
com2sec notConfigUser default public
将"comunity"字段改为你要设置的密码.比如"public".
将“default”改为你想哪台机器可以看到你的snmp信息,如10.10.10.10。
2、查找以下字段:
CODE:
[Copy to clipboard]
####
# Finally, grant the group read-only access to the systemview view.
# group context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact all none none
将"read"字段改为all.
CODE:
[Copy to clipboard]
#access notConfigGroup "" any noauth exact systemview none none
3、查找以下字段:
CODE:
[Copy to clipboard]
## incl/excl subtree mask
#view all included .1 80
将该行前面的"#"去掉.
保存关闭.
4、运行/etc/init.d/snmpd start命令运行snmpd.
最后运行netstat -ln查看161端口是否打开了.
二、FreeBSD
如果使用port安装net-snmp,默认的配置文件应该是在/usr/local/share/snmp/snmpd.conf(没有默认的文件)。
可以建立一个简单的配置文件,如:
CODE:
[Copy to clipboard]
syslocation YourDefineName
syscontact YourEmailAddress
sysservices 77
rocommunity public (请更改)
load 12 12 12
然后运行snmpd,netstat 看是否打开了161端口。
上述用法只针对默认的安装,如果你是自定义的安装请依照你的安装目录来设置。
Cacti虽然只是一套开源软件,但我觉得它比起其它的商业管理软件来说真的是毫不逊色,而MRTG根本就无法与其相比,希望大家能好好使用。
真心希望在论坛上看到讨论得最多的是Cacti和RRDTool而不只是MRTG。
参考:
http://bbs.chinaunix.net/forum/viewtopic.php?t=552218&highlight=RRDTOOL
http://www.cacti.net/downloads/docs/html/install_unix.html
cacti的使用文档:
http://www.cacti.net/downloads/docs/html/Cacti FAQ:
http://www.cacti.net/downloads/docs/html/faq.html不明白?欢迎到 linux论坛 参加讨论!
让mrtg显示中文2006-02-16 13:45 pm作者:linux宝库 来自:linux宝库 现存:
http://www./2726.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论!你可以在mrtg.cfg中添加Language: chinese即可不明白?欢迎到 linux论坛 参加讨论!
使用Cacti时常见的问题集2005-12-14 09:39 am作者:wenzk来自:linux宝库 现存:
http://www./637.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论!以前自己曾经解决的,当时自己记住了,过了好长时间,重新在新的机器上安装cacti的时候,却忘记提前修改,导致一些不必要的麻烦。
帖出来希望对自己或者对大家有帮助
1、一般说来,图片的流量统计描述都是 |host_description| - Traffic - |query_ifName| 按照这个形式来描述的,对于华为的设备,Gi显示成GigabitEthernet,可能导致后面的模块号,端口好无法显示。如 GigabitEthernet4/3/2显示成GigabitEthernet,解决办法:
Console -> Settings -> Visual -> Maximum Field Length: 默认 15,我修改成30就OK了。
The maximum number of characters to display for a data query field.
2、对于Traffic 大于800Mbits/s的无法显示问题,在创建graph前修改 Data Templates -> Interface Traffic -> 1: traffic_in -> Maximum Value Use Per-Data Source Value 默认是100000000 后面再添 几个0就OK了,同样 2: traffic_out也要修改哦,最好在使用new graph创建新的graph之前修改后,否则之后修改会有一定的麻烦,甚至无法正常工作。不明白?欢迎到 linux论坛 参加讨论!
用MRTG监控CPU温度2005-09-26 21:55 pm作者:linux宝库 来自:linux宝库 现存:
http://www./5330.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论!夏天又到噜~相信很多人都粉关心自己的CPU会不会因为过热而罢工呢?那Linux底下有没有可以监测温度的软件哩?
有滴,那就是lm-sensor。那该如何安装呢?
我在google找到的文章,用我破破的英文为大家翻译一下吧。
关于lm-sensor最新的软件可以在
http://www2.lm-sensors.nu/~lm78/找到。
如果你的核心版本是2.2.X
请下载i2c和lm-sensor二个套件
如果你的核心版本是2.4.X
只需要下载lm-sensor就可以了
为了套件管理的方便我把这二个档案都放在/usr/local/src底下
注:如果要让i2c也可以在其它核心版本执行行,要把它编成模块,后面会有解说。
root# cd /usr/local/src
root# tar zxvfp lm_sensors-2.8.0.tar.gz
root# tar zxvfp i2c-2.8.0.tar.gz
root# cd /usr/local/src/i2c-2.8.0
root# make clean <<<--- 很重要,这样才不会有编译不完全
root# make dep
root# make all
root# make install
这样就把ic2给装好啦接着装lm-sensor吧
root#cd /usr/local/src/lm_sensors-2.8.0
root#make clean 和上面一样,一定要做这个步骤喔
root#make dep
root#make all
root#make install
这样连lm-sensor都装好啦简单吧
root# /sbin/depmod -a
修改底下这个档案把函数库加载
root# vi /etc/ld.so.conf
/usr/local/lib 加入这一行
root# ldconfig
root#./prog/mkdev/mkdev.sh 产生驱动程序以支持要侦测的东西
root#sensors-detect 扫瞄你的主机使用那些芯片组
只要一直按Enter就好了,照它的默认值就好等到底下的东西跑出来
#----cut here----
# I2C adapter drivers
modprobe i2c-isa
# I2C chip drivers
modprobe w83781d
modprobe sis5595
#----cut here----
To make the sensors modules behave correctly, add these lines to either
/etc/modules.conf or /etc/conf.modules:
#----cut here----
# I2C module options
alias char-major-89 i2c-dev
#----cut here----
root#vi /etc/modules.conf
alias char-major-89 i2c-dev 把这行加进去,开机就会加载了
root#modprobe i2c-isa
root#modprobe w83781d
root#modprobe sis5595
把上面三个加载
root#sensors
w83697hf-isa-0290
Adapter: ISA adapter
Algorithm: ISA algorithm
VCore: +1.47 V (min = +0.00 V, max = +0.00 V) ALARM
+3.3V: +3.34 V (min = +2.97 V, max = +3.63 V)
+5V: +5.12 V (min = +4.50 V, max = +5.48 V)
+12V: +11.67 V (min = +10.79 V, max = +13.11 V)
-12V: -11.83 V (min = -13.21 V, max = -10.90 V)
-5V: +3.53 V (min = -5.51 V, max = -4.51 V) ALARM
V5SB: +5.58 V (min = +4.50 V, max = +5.48 V)
VBat: +3.15 V (min = +2.70 V, max = +3.29 V)
fan1: 3970 RPM (min = 3000 RPM, div = 2)
fan2: 0 RPM (min = 3000 RPM, div = 2) ALARM
temp1: +40°C (limit = +60°C) sensor = thermistor
temp2: +39.5°C (limit = +60°C, hysteresis = +50°C) sensor = PII/Celeron diode
alarms: Chassis intrusion detection ALARM
beep_enable:
Sound alarm disabled
sis5595-isa-8008
Adapter: ISA adapter
Algorithm: ISA algorithm
VCore 1: +4.08 V (min = +4.08 V, max = +4.08 V) ALARM
VCore 2: +4.08 V (min = +4.08 V, max = +4.08 V) ALARM
+3.3V: +4.08 V (min = +4.08 V, max = +4.08 V) ALARM
+5V: +6.85 V (min = +6.85 V, max = +6.85 V) ALARM
fan1: 0 RPM (min = 0 RPM, div = 8) ALARM
fan2: 0 RPM (min = 0 RPM, div = 8) ALARM
temp: +51°C (limit = +51°C, hysteresis = +51°C) ALARM
alarms: Board temperature input (usually LM75 chips) ALARM
如果不想每次重开机都要重新加载一次,可以把以上那些写进/etc/rc.d/rc.local里面喔
看到上面的东东跑出来之后就成功一半??,接下来让它和MRTG整合在一起吧
root#cd /var/www/html/mrtg
root#mkdir temp
root#cd temp
root#vi mrtg.temp
档案内容如下
#!/bin/bash
cputemp=`sensors | grep temp1 |awk '{print $2}'|cut -c 2-4` 这句是说找出有temp1那一行,印出第二个列的2-4个字
systemp =`sensors | grep temp2 |awk '{print $2}'|cut -c 2-4` 不用解释了吧
UPtime=`/usr/bin/uptime | awk '{print $3 " " $4 " " $5}'`
echo $cputemp
echo $systemp
echo $UPtime
echo dc.blue-moon.idv.tw (改成你的主机名称)
root#chmod 755 mrtg.temp 改成可执行
root#./mrtg.temp 试试看有没有问题
40
37
18:52, 2 users,
dc.blue-moon.idv.tw
再来写下面的档案
root#vi mrtg.cfg.temp
WorkDir: /var/www/html/mrtg/temp/
Language: big5
Target[index]: `/var/www/html/mrtg/temp/mrtg.temp`
MaxBytes[index]:60
Options[index]: gauge, nopercent, growright
YLegend[index]: Temp (度)
ShortLegend[index]: 度
LegendO[index]: 系统温度;
LegendI[index]: CPU温度;
Title[index]: Blue-Moon City 系统温度表
PageTop[index]: <H1>Blue-Moon City 主机温度表</H1>
<TABLE>
<TR><TD>系统:</TD> <TD>RedHat 9.0+Apache 2.0.40 </TD></TR>
</TABLE>
这样只要连到
http://yourhost.yourdomain/mrtg/temp就可以连到,不用再打?n名了
root#/usr/bin/mrtg /var/www/html/mrtg/temp/mrtg.cfg.temp
执行三次
再把它放入排程
root#vi /etc/crontab
*/5 * * * * root /usr/bin/mrtg /var/www/html/mrtg/temp/mrtg.cfg.temp > /dev/null 2>&1
这样就大功告成啦
我的范例
http://www.blue-moon.idv.tw/mrtg/temp不明白?欢迎到 linux论坛 参加讨论!
在fedora中使用MRTG进行系统监控(2004-02-13更新)2005-08-24 10:00 am作者:linux宝库 来自:linux宝库 现存:
http://www./5061.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论!在fedora中使用MRTG进行系统监控(2004-02-13更新)
VictorYan指北系列之MRTG入门篇
主要内容:
*MRTG是什么
*MRTG特点
*MRTG安装与配置
*如何使用MRTG进行简易监控
*MRTG监控网络配置文件实例
*MRTG监控网络配置文件实例详解
*如何配置SNMP来配合MRTG进行监控CPU,内存等系统状况
*如何使用SNMP的translate工具
参考文章: 网络流量监控器mrtg全攻略
http://www.fengnet.com/showart.asp?...5&cat_id=10参考图例:
见附件
一. MRTG是什么
MRTG = Multi Router Traffic Grapher
是一个监控网络链路流量负载的工具软件, 它通过snmp协议从设备得到设备的流量信息,并将流量负载以包含PNG格式的图形的 HTML文档方式显示给用户,以非常直观的形式显示流量负载.
mrtg 的输出结果示例:
http://www.stat.ee.ethz.ch/mrtg/另外,MRTG也可以监控LINUX主机的运行状态,用于系统管理.例如:监控服务器的CPU使用效率,SQUID代理服务器的流量统计等
官方网站:
http://people.ee.ethz.ch/~oetiker/webtools/mrtghttp://www.mrtg.org二. MRTG特点
*可移植性
目前可以运行在大多数Unix系统和Windows NT之上。
*源码开放
Mrtg是用perl编写的,源代码完全开放。
*高可移植性的SNMP支持
Mrtg采用了Simon Leinen编写的具有高可移植性的SNMP实现模块,从而不依赖于操作系统的SNMP模块支持。
*支持SNMPv2c
MRTG可以读取SNMPv2c的64位的记数器,从而大大减少了记数器回转次数。
*可靠的接口标识
被监控的设备的接口可以以IP地址、设备描述、SNMP对接口的编号及Mac地址来标识。
*常量大小的日志文件
*MRTG的日志不会变大,因为这里使用了独特的数据合并算法。
*自动配置功能
*MRTG自身有配置工具套件,使得配置过程非常简单。
*性能
*时间敏感的部分使用C代码编写,因此具有很好的性能。
*PNG格式图形
*图形采用GD库直接产生PNG格式。
*输出可定制性
*MRTG产生的web页面是完全可以定制的。
*兼容性
mrtg软件可以运行在大部分的操作系统上:
*可监控的网络设备
只要支持SNMP协议的设备就都可以使用MRTG来监控
三. MRTG安装与配置
*MRTG安装
基本环境: Fedora 1
MRTG软件: Fedora自带mrtg-2.10.5-1
#rpm -ivh mrtg-2.10.5-1*
*配置SNMP服务
//检查软件
$ rpm -qa |grep net-snmp
net-snmp-5.1-2.1
net-snmp-utils-5.1-2.1
net-snmp-devel-5.1-2.1
net-snmp-perl-5.1-2.1
//修改配置文件/etc/snmp/snmpd.conf,允许mrtg读取网络接口的流量数据。
将
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
修改为:
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.2
view systemview included .1.3.6.1.2.1.25.1.1
注: .1.3.6.1.2.1.1 = SNMPv2-MIB::system
.1.3.6.1.2.1.2 = IF-MIB::interfaces
//打开SNMPD服务
# chkconfig snmpd on
# service snmpd start
四. 如何使用MRTG进行简易监控
//生成mrtg配置文件/etc/mrtg/mrtg.cfg
#cfgmaker --global "WorkDir:/var/www/mrtg" --output /etc/mrtg/mrtg.cfg public@localhost
//初始运行MRTG,在工作目录下创建初始的流量图和web页面
#mrtg /etc/mrtg/mrtg.cfg
#mrtg /etc/mrtg/mrtg.cfg
#mrtg /etc/mrtg/mrtg.cfg
注:初次运行需要连续运行三次,每次会产生一些警告信息,这是以后再运行就正常了
//每隔5分钟自动运行mrtg来生成统计信息
编辑/etc/cron.d/mrtg文件:
0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg --logging /var/log/mrtg.log
//产生网页索引文件
#indexmaker /etc/mrtg/mrtg.cfg --output /var/www/mrtg/index.html
//编辑/etc/httpd/conf.d/mrtg.conf,允许主机通过网络监控网络流量信息;默认只允许本台主机,且主机名=localhost查看
Alias /mrtg /var/www/mrtg
<Location /mrtg>
Order deny,allow
# Deny from all
Allow from localhost
# Allow from .example.com
</Location>
注:修改后重启httpd服务#service httpd restart
//通过浏览器监控网络流量信息
http://localhost/mrtg//配置文件/etc/mrtg/mrtg.cfg举例(注:取消了注释部分)
EnableIPv6: no
WorkDir:/var/www/mrtg
Target[localhost_2]: 2ublic@localhost:
SetEnv[localhost_2]: MRTG_INT_IP="" MRTG_INT_DESCR="eth0"
MaxBytes[localhost_2]: 12500000
Title[localhost_2]: Traffic Analysis for 2 -- abc.com.cn
PageTop[localhost_2]: <H1>Traffic Analysis for 2 -- abc.com.cn</H1>
<TABLE>
<TR><TD>System:</TD> <TD>abc.com.cn in Unknown (edit /etc/snmp/snmpd.conf)</TD></TR>
<TR><TD>Maintainer:</TD> <TD>Root <root@localhost> (configure /etc/snmp/snmp.local.conf)</TD></TR>
<TR><TD>Description:</TD><TD>eth0 </TD></TR>
<TR><TD>ifType:</TD> <TD>ethernetCsmacd (6)</TD></TR>
<TR><TD>ifName:</TD> <TD></TD></TR>
<TR><TD>Max Speed:</TD> <TD>12.5 MBytes/s</TD></TR>
</TABLE>
五. MRTG监控网络配置文件实例
//为了使网络监控更加易懂实用,手工修改配置文件/etc/mrtg/mrtg.cfg
WorkDir: /var/www/mrtg
Language: gb2312
#监控网络流量[LAN接口eth0]
Target[eth0]: 2ublic@localhost:
Options[_]: growright
Directory[eth0]: eth0
MaxBytes[eth0]: 12500000
Kmg[eth0]: ,k,M,G,T,P
YLegend[eth0]: Bytes per Second
ShortLegend[eth0]: B/s
Legend1[eth0]: 每秒流入量 (单位 Bytes)
Legend2[eth0]: 每秒流出量 (单位 Bytes)
LegendI[eth0]: 流入:
LegendO[eth0]: 流出:
Title[eth0]: 网络流量[LAN接口eth0]
PageTop[eth0]: <H1>网络流量[LAN接口eth0]</H1>
<TABLE>
<TR><TD>系统 :</TD> <TD>host.abc.com</TD></TR>
<TR><TD>描述 :</TD> <TD>内部网络接口eth0的网络流量(Bytes/s)</TD></TR>
<TR><TD>位置 :</TD> <TD>Shanghai</TD></TR>
<TR><TD>最大值:</TD> <TD>12.5 MBytes/s</TD></TR>
<TR><TD>管理员:</TD> <TD>
abc@abc.com</TD></TR>
<TR><TD>说明 :</TD> <TD> </TD></TR>
</TABLE>
六. MRTG监控网络配置文件实例详解
WorkDir设置工作目录,存放mrtg采集的数据和生成的统计文件
Language设置WEB页面显示的语言=中文gb2312
growright指示流量图随时间的变化向右增长
Target指示监控的设备;
设备的表示方式=port:community@router;
commnunity表示snmp通讯密码
Directory指示该监控设备的相关文件保存的位置=/var/www/mrtg/eth0/;
默认保存在WorkDir工作目录下
MaxBytes指示被采集的数据的最大值.
如果采集的数据大于该值,MRTG将忽略,并保持上次采集的数据值
Kmg指示乘数单位(默认每千位跳一个单位)
YLegend指示Y轴的单位标记(不能用中文)
ShortLegend指示数据的单位标记
Legend1,2,3,4分别指示四条不同颜色的统计线的文字说明
Legend1: 每5分钟数据平均流入量的文字说明
Legend2: 每5分钟数据平均流出量的文字说明
Legend3: 每5分钟数据最大流入量的文字说明
Legend4: 每5分钟数据最大流出量的文字说明
LegendI,O分别说明数据的流出和流出的文字说明
WithPeak指示如何显示流量图
共有四条不同颜色的统计线,绿色表示平均流入,蓝色表示平均流出,墨绿色表示最大流入,紫色表示最大流出
n代表不设置w代表每周图表,代表每月图表,y代表每年图表
不设置WithPeak,只有绿色流入和蓝色流出
PageTop指示增加到Web页头部的HTML代码,用于定制网页
以空格开始的<TABLE></TABLE>部分都是PageTop的内容,都直接作为HTML代码
七. 如何配置SNMP来配合MRTG进行监控CPU,内存等系统状况
*SNMP简介
SNMP(Simple Network Management Protocol)是一种专门用于网络管理的通讯协议.
SNMP一共发展有3个主版本,分别为SNMPv1 ,SNMPv2和SNMPv3。
其中SNMPv2又分为若干个子版本,其中SNMPv2c应用最为广泛
SNMP协议是运行在UDP协议之上,它利用的是UDP协议的161/162端口。
设备的所有的需要被管理的信息称作管理信息库(Management Information Base,MIB)
MIB 是一个按照层次结构组织的树状结构(定义方式类似于域名系统),管理对象为定义为树中的相应叶子节点。
SNMP基本的标准MIB库是MIBII
*配置SNMP,监控系统内存的使用情况
已用内存的MIB变量=.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.2
已用内存的OID值=.1.3.6.1.2.1.25.2.3.1.6.2
已用内存的MIB文件=/usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
//打开snmpd中的已用内存监控,在/etc/snmp/snmpd.conf中加入
view systemview included .1.3.6.1.2.1.25.2.3.1.6.2
注1: 在snmpd.conf文件中查找 “view systemview included”行,加在后面
注2: 修改后重启snmpd服务生效# service snmpd start
//检查当前的已用内存
#snmpwalk -v 1 -c public localhost .1.3.6.1.2.1.25.2.3.1.6.2
注: -v 1表示使用SNMPv1协议,
-c public localhost表示使用public作为共同体名向主机localhost查询
八. 如何使用SNMP的translate工具
//查询: MIB名-->OID值
$snmptranslate -On SNMPv2-MIB::sysUpTime.0
.1.3.6.1.2.1.1.3.0
//查询: MIB部分名-->OID值
$snmptranslate -On -IR sysUpTime.0
.1.3.6.1.2.1.1.3.0
$snmptranslate -Ib 'sys.*ime'
SNMPv2-MIB::sysORUpTime
$snmptranslate -TB 'sys.*ime'
SNMPv2-MIB::sysORUpTime
SNMPv2-MIB::sysUpTime
HOST-RESOURCES-MIB::hrSystemUptime
//查询: OID值-->MIB名
$snmptranslate .1.3.6.1.2.1.1.3.0
SNMPv2-MIB::sysUpTime.0
//查询: MIB全名
$snmptranslate -Of .1.3.6.1.2.1.1.3.0
.iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.0
//查询: MIB信息
$snmptranslate -Td .1.3.6.1.2.1.1.3.0
SNMPv2-MIB::sysUpTime.0
sysUpTime OBJECT-TYPE
-- FROM SNMPv2-MIB, RFC1213-MIB
SYNTAX TimeTicks
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The time (in hundredths of a second) since the
network management portion of the system was last
re-initialized."
::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) sysUpTime(3) 0 }
//查询: MIB信息树
$snmptranslate -Tp -IR system
+--system(1)
|
+-- -R-- String sysDescr(1)
| Textual Convention: DisplayString
| Size: 0..255
+-- -R-- ObjID sysObjectID(2)
+-- -R-- TimeTicks sysUpTime(3)
+-- -RW- String sysContact(4)
| Textual Convention: DisplayString
| Size: 0..255
+-- -RW- String sysName(5)
| Textual Convention: DisplayString
| Size: 0..255
+-- -RW- String sysLocation(6)
| Textual Convention: DisplayString
| Size: 0..255
+-- -R-- INTEGER sysServices(7)
| Range: 0..127
+-- -R-- TimeTicks sysORLastChange(8)
| Textual Convention: TimeStamp
|
+--sysORTable(9)
|
+--sysOREntry(1)
| Index: sysORIndex
|
+-- ---- INTEGER sysORIndex(1)
| Range: 1..2147483647
+-- -R-- ObjID sysORID(2)
+-- -R-- String sysORDescr(3)
| Textual Convention: DisplayString
| Size: 0..255
+-- -R-- TimeTicks sysORUpTime(4)
Textual Convention: TimeStamp
[myimg]upload/mrtg1.png[/myimg]不明白?欢迎到 linux论坛 参加讨论!
在RedHat9上安装调试MRTG监控本机网卡流量2004-04-23 15:18 pm作者:张微波来自:linux宝库 现存:
http://www./873.html联系:#gmail.com不明白?欢迎到 linux论坛 参加讨论!系统环境:
redhat9.0
必备软件:
系统必须已经安装以下软件,这些软件都是光盘里自带的:
gd-1.8.4-11
libpng-1.2.2-16
perl-5.8.0-88
zlib-1.1.4-8
apache
gcc-3.2.2-5
1.首先来安装配置net-snmp
光盘里有net-snmp的安装rpm包,或者在添加/删除程序里选择安装ethereal-网络交通分析器,也会自动安装net-snmp软件包。
安装完以后,配置/etc/snmp/snmpd.conf文件,使其能配合mrtg工作。
把下面的#号去掉
#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
把下面的语句
access notConfigGroup "" any noauth exact systemview none none
改成:
access notConfigGroup "" any noauth exact mib2 none none
ok,改完以后,就可以启动snmpd服务
#/etc/rc.d/init.d/snmpd start
2.安装配置mrtg
tar zvxf mrtg-2.9.28.tar.gz
cd mrtg-2.9.28
./configure --prefix=/usr/local/mrtg
--with-gd=/usr/include
--with-gd-lib=/usr/lib
--with-gd-inc=/usr/include
--with-png=/usr/include
--with-zlib=/usr/include &&
make &&
make install
3.配置mrtg
mkdir /usr/local/apache/htdocs/mrtg 这里/usr/local/apache/htdocs是www的默认主页地址,大家可能跟我不同
cp images/* /usr/local/apache/htdocs/mrtg images/*是在安装源文件夹里
/usr/local/mrtg/bin/cfgmaker --output=/usr/local/apache/htdocs/mrtg/mrtg.cfg
public@192.168.0.1创建一个mrtg.cfg文件在/usr/local/apache/htdocs/mrtg目录下,并且监控192.168.0.1的地址,本例这个地址是本机的网卡地址
然后修改mrtg.cfg文件,主要修改以下内容,以符合你的实际情况
WorkDir: /usr/local/apache/htdocs/mrtg
Options[_]: growright, bits
Language:GB2312
下面接着:
/usr/local/mrtg/bin/mrtg /usr/local/apache/htdocs/mrtg/mrtg.cfg
这个需要运行3次,前两次都会报错,不用去理会他,第3次就应该没有错误了,不过,若是有问题的话,就需要改mrtg.cfg,
再执行直到没有错误发生为止。
制作首页index.html:
/usr/local/mrtg/bin/indexmaker
--output=/usr/local/apache/htdocs/mrtg/index.html
--title=服务器流量统计
/usr/local/apache/htdocs/mrtg/mrtg.cfg
上面这个程序indexmaker是在制作首页。会自动地输出一个index.html的文件中。
使用手工运行mrtg并不能定时产生适当的统计信息,因此最好还是定时自动运行mrtg来生 成统计信息,默认为五分钟运行一次。
作为root身份crontab -e进入编辑状态,添加内容 如下:
*/5 * * * * /usr/local/mrtg/bin/mrtg /usr/local/apache/htdocs/mrtg/mrtg.cfg
ok!到此为止,配置完毕,记得一定要启动snmp和httpd服务哦!
访问:
http://192.168.0.1/mrtg/就能看到网络流量图了
不明白?欢迎到 linux论坛 参加讨论!