分享
 
 
 

Apache服务器的全面监测

王朝system·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

一、模块简介

class=content>对于正式提供Web服务的系统来说,监视它的运行情况是非常重要的,比如我们必须监视内存和文件系统使用情况、系统负载、处理器利用率、交换分区空间是否足够,等等。只要能够对Web服务器运行的系统进行交互式访问(比如telnet、ssh或其他),所有这些任务都可以完成。但要完成这些任务并不轻松,因为一般的Unix工具都只能报告部分服务器信息。也就是说,我们不能同时查看整个系统的运行情况,除非同时打开了许多连接并让每个终端专门监视部分系统信息,否则我们就得在各个监视工具之间来回切换,需要进行繁琐的操作。

class=content>如果Apache服务器启用了mod_perl,我们可以利用一个专用的Apache::VMonitor模块同时监视大多数自己需要的系统信息。

class=content>Apache::VMonitor模块提供了比top(1)更优秀的监视功能。它不仅提供所有top(1)能够提供的信息,而且还包括所有Apache的mod_status模块提供的、专门有关Apache的信息,比如请求处理时间、最后请求的URI、每个子进程响应的请求数量,等等。此外,Apache::VMonitor模块模拟了top(1)、mount(1)、df(1)工具的报表功能;它具有视觉报警能力,并支持可配置的“自动刷新”模式;它供了一个Web界面,支持动态地显示或者隐藏各部分信息。

Apache::VMonitor模块支持的监视模式主要有以下两种:

* 多进程系统整体状态报告模式

* 单进程详细报告模式

二、需求与设置

class=content>要使用Apache::VMonitor,系统必须安装Apache::Scoreboard并已经在 httpd.conf中正确配置,而Apache::Scoreboard又要求安装mod_status。要让Apache::VMonitor能够正常运行,mod_status必须启用扩展模式。为此,在httpd.conf文件中,必须加入:

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-LEFT-COLOR: #000000; BORDER-RIGHT-COLOR: #000000; BORDER-TOP-COLOR: #000000"

width="80%">

ExtendedStatus On

class=content>

此外,系统中还必须安装有Time::HiRes和GTop。GTop又依赖于libgtop库,而后者在有些平台上不可用。请参见

href="http://home-of-linux.org/gnome/libgtop/"

target=_blank>http://home-of-linux.org/gnome/libgtop/了解更多信息。当然,Apache服务器上的mod_perl模块也是必不可少的。

class=content>

要启用Apache::VMonitor模块,我们应该修改httpd.conf文件中的一个配置。如果我们在httpd.conf文件中加入下面的配置指令:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

<Location /system/vmonitor> SetHandler

perl-script PerlHandler Apache::VMonitor

</Location>

class=content>此时,访问http://localhost/system/vmonitor即可打开VMonitor监视器。通常,我们必须保护http://localhost/system/vmonitor这个位置,禁止其他用户访问。如果我们总是从同一个IP地址访问这个URL,则只需根据主机进行验证:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

<Location /system/vmonitor> SetHandler

perl-script PerlHandler Apache::VMonitor order deny, allow

deny from all allow from 132.123.123.3

</Location>

另外,我们还可以使用Apache提供的基本验证模式或其他验证模式,或者使用其他各种扩展模块。

class=content>在启动文件或者在<Perl>区内配置下面介绍的这些变量,我们可以控制Apache::VMonitor模块的行为。

从httpd.conf文件装载Apache::VMonitor模块:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

PerlModule Apache::VMonitor

或者从启动文件装载Apache::VMonitor模块:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

use Apache::VMonitor();

在启动文件中调整下列配置参数,我们可以改变Apache::VMonitor的报告选项:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::Config{BLINKING} = 1;

$Apache::VMonitor::Config{REFRESH} = 0;

$Apache::VMonitor::Config{VERBOSE} = 0;

通过下列配置参数,我们能够控制该工具第一次打开时显示哪些部分的信息:

borderColorDark=#ffffff cellPadding=5 cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::Config{SYSTEM} = 1;

$Apache::VMonitor::Config{APACHE} = 1;

$Apache::VMonitor::Config{PROCS} = 1;

$Apache::VMonitor::Config{MOUNT} = 1;

$Apache::VMonitor::Config{FS_USAGE} = 1;

class=content>我们能够控制mod_perl进程报表的排序方式。mod_perl报表可以按照以下各列进行排序:“pid", "mode","elapsed","lastreq","served","size","share","vsize","rss", "client","request"。例如,如果要按照进程大小排序,则我们使用下列配置指令:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::Config{SORT_BY} =

"size";

class=content>鉴于VMonitor提供监视非mod_perl进程的能力,我们可以设置正则表达式去匹配需要监视的进程。例如,如果要匹配带有httpd_docs、mysql以及squid字符串的进程名字,我们使用如下正则表达式:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::PROC_REGEX = join "\|",

qw(httpd_docs mysql squid);

稍后我们将详细讨论所有这些配置选项以及它们对VMonitor行为的影响。

三、多进程系统整体状态报告模式

class=content>这种模式是我们主要使用的监视模式。在这种模式下,我们能够从同一个位置监视几乎所有重要的系统资源。为了方便起见,它允许我们关闭或者开启报表的各个部分,使得报表刚好能够显示在一个屏幕上。

多进程系统整体状态报告模式具有以下功能和特点:

▲ 自动刷新

class=content>我们可以让报表每隔数秒钟自动刷新。这个数值可以在服务器启动时预先设置。例如,如果要把刷新时间设置为60秒,则我们加入如下配置选项:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::Config{REFRESH} =

60;

0(零)值表示关闭自动刷新。

服务器启动后,刷新速度可以通过VMonitor应用的用户界面调整。

▲ top(1)模拟:系统状况报告

class=content>正如top(1),VMonitor显示当前的日期/时间、机器启动时间、平均负载以及所有系统CPU和内存的使用情况:CPU负载,实际内存、交换分区使用情况等。

class=content>系统信息区具有交换空间使用情况的视觉警报能力。我们知道,当系统用完了所有的RAM,它就开始把暂时不用的内存页转入速度较慢的交换分区,这种操作就称为交换操作。交换操作降低了整个系统的性能,最终有可能引起系统崩溃,在正式运行的系统上,我们应该尽可能地减少交换操作。VMonitor通过改变交换区信息行的颜色帮助我们监测异常情形。颜色按照如下规则改变:

cellPadding=5 cellSpacing=0 cols=2 width="80%" rows="4">

交换区使用 报告颜色

5Mb < swap < 10 MB 淡红色

20% < swap (交换不是什么好事!) 红色

70% < swap (几乎全部用光!) 红色 + 闪烁(如果启用闪烁的话)

闪烁模式可以用如下指令打开:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::Config{BLINKING} =

1;

class=content>如果系统只使用了少量的交换区,VMonitor模块不会警报。这是因为在大多数Unix系统上,即使系统还有相当数量的空闲内存,也总是存在少量使用交换区的情况。

系统信息区默认显示。如果不想让系统信息区显示,则我们设置:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::Config{SYSTEM} =

0;

▲ top(1)模拟:Apache/mod_perl进程状态

class=content>就象真正的top(1)一样,接下来的就是一个有关进程的报表,但它只显示有关mod_perl进程的信息。

class=content>报表中包含了:进程的状态(如Starting,Reading,Sending,Waiting,等等),进程的 ID,自从当前请求开始以来的时间,最后一个请求的处理时间,进程大小,共享、虚拟和驻留内存的大小。同时,它还显示了最后一个客户的IP地址以及它所请求的URI(只有64个字符,因为这是底层Apache核心库所保留的最大长度)。

class=content>在VMonitor运行期间,点击该报表的任意一个列就可以将报表按照该列排序。或者,报表的排序列也可以用如下配制指令预先设置:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::Config{SORT_BY} =

"size";

class=content>排序列的合法选择包括:"pid","mode","elapsed","lastreq","served", "size","share","vsize","rss","client","request"。

class=content>报表的合计部分报告了所有mod_perl进程合计使用的内存,其中包括内核报告的数字、额外数字。额外数字根据启用内存共享时对实际使用内存的估算得到。

class=content>注意,对于有些系统来说,这个合计数字可能不正确,所以使用这个数字的风险你得自负。我们已经在Linux操作系统上验证过这个数字,具体方法是先获得Apache::VMonitor报告的数字,然后关闭mod_perl并检查系统内存使用情况。结果显示出,系统内存占用的减少量大约相当于Apache::VMonitor报告的数字。

这些有关mod_perl进程的信息默认显示。如果你不想显示这部分信息,请设置:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::Config{APACHE} =

0;

▲ top(1)模拟:任意进程

class=content>正如mod_perl进程信息区,“任意进程”信息也按照top(1)风格显示。这部分信息默认不显示。要显示这部分信息,我们必须先设置:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::Config{PROCS} =

1;

class=content>

另外还要指定需要监视哪些进程,这里要用到一个匹配待监视进程名字的正则表达式。例如,如果要监视所有名字中带有http、mysql、squid字符串的进程,则我们使用如下正则表达式:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::PROC_REGEX = join "\|",

qw(httpd mysql squid);

▲ mount(1)模拟

class=content>这部分报表数据显示已装载文件系统的信息,就如不带参数执行mount(1)一样。这部分信息默认不显示。要显示这些信息,我们必须设置:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::Config{MOUNT} =

1;

▲ df(1)模拟

class=content>这部分内容完整地模拟了df(1)的功能。对于每一个已经装载的文件系统,它将报告合计、可用磁盘块数量以及使用百分比。

此外,它还能够报告可用的、已经使用的文件inode(索引节)数量,包括其绝对数值和百分比。

class=content>这部分信息具有视觉警报的功能。警报在以下两种情况下触发:当某个文件系统空间利用率超过90%,或者可用的文件 inode少于10%时。一旦这些事件发生,与该文件系统有关的数据行将以粗体、红色方式显示。如果开启了闪烁功能的话,装载点(Mount

Point)目录将闪烁。闪烁选项可以按如下方式开启:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::Config{BLINKING} =

1;

df(1)信息默认显示。如果不想让df(1)的信息显示,则设置如下选项:

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::Config{FS_USAGE} =

0;

▲ 缩写词提示

class=content>Apache::VMonitor的报表中有许多缩写词。如果我们按照如下设置启用VERBOSE模式,则“缩写词提示”的后面将列出所有缩写词的全称。

cellSpacing=0

style="BORDER-BOTTOM-COLOR: #000000; BORDER-COLLAPSE: collapse; BORDER-RIGHT-COLOR: #000000"

width="80%">

$Apache::VMonitor::Config{VERBOSE} =

1;

默认情况下,缩写词提示不显示。

四、单进程详细报告模式

点击进程的PID即可查看有关该进程的详细信息。

如果该进程是一个mod_perl进程,则VMonitor显示如下信息:

* 进程类型(子进程或父进程);进程状态(Starting,Reading,Sending,Waiting,等等);当前请求的处理时间,或者如果生成报告时进程不活动,则是最后一个请求的处理时间。

* 到目前为止已传输的字节数。每个子进程所处理的请求数量。

* 进程所占用的CPU时间:total,utime,stime,cutime,cstime。

以下信息对于所有的进程(mod_perl进程和非mod_perl进程)都提供:

* 进程的一般信息:UID,GID,状态,TTY,命令行参数。

* 内存使用情况:Size,Share,VSize,RSS。

* 内存段使用情况:文本,共享库,数据和堆栈。

* 内存映像:start-end,offset,device_major:device_minor,inode,perm,库路径。

* 已装载的库的大小。

正如多进程模式,单进程详细报告模式也支持按指定的间隔自动刷新页面。

id=AutoNumber1 style="BORDER-COLLAPSE: collapse">

href="Apache服务器的全面监测.files/ApacheServerMonitor_1.gif"

target=_blank>

src="Apache服务器的全面监测.files/ApacheServerMonitor_1.gif"

width=334>

参考:

* mod_perl网站的URL:

target=_blank>http://perl.apache.org/。

* Time::HiRes:

href="http://search.cpan.org/search?dist=Time-HiRes"

target=_blank>http://search.cpan.org/search?dist=Time-HiRes。

* Apache::Scoreboard:

href="http://search.cpan.org/search?dist=Apache-Scoreboard"

target=_blank>http://search.cpan.org/search?dist=Apache-Scoreboard。

* GTop:

target=_blank>http://search.cpan.org/search?dist=GTop。GTop又依赖于libgtop库,有些平台上libgtop库不可用,请参见

href="http://home-of-linux.org/gnome/libgtop/"

target=_blank>http://home-of-linux.org/gnome/libgtop/了解更多信息。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有