Apache Server Status主机状态查看

Apache Server Status主机状态查看

10月30日,国外安全研究人员发现由于对apache设置不严,导致服务器状态暴露于公网。本来apache有一个叫server-status 的功能,为方便管理员检查服务器运行状态的。它是一个HTML页面,可以显示正在工作的进程数量,每个请求的状态,访问网站的客户端ip地址,正在被请求 的页面。

但是如果这个页面对公网开放,就会存在一些安全隐患,例如任何人口可以看到谁在访问网站,甚至包括一些本来隐藏的管理页面。

如果没有加载这个模块,如果您是linux服务器,那么就需要您重新编译apache了,编译的时候加上参数--enable-module=so即可, 如果你是windows系统的话,无需任何编译,只要把刚才时候说的LoadModule status_module modules/mod_status.so这句加上,如果前面有带#号,开启的话,需要将#去除。

http://192.168.99.99/Server-status?refresh=N将表示访问状态页面可以每N秒自动刷新一次;

在httpd.conf 增加

#-Apache Server Status--------------

ExtendedStatus On

<Location /Server-status>

SetHandler Server-status

Order deny,allow

Deny from all

Allow from 192.168.99.99

</Location>

##--Apache Server Status--end---------

Deny from表示禁止的访问地址,如果访问报错可将此行注释,但是安全性会降低;

Allow from表示允许的地址访问。这里应该写允许的客户端IP,似乎不应该是域名

ExtendedStatus On表示的是待会访问的时候能看到详细的请求信息,另外该设置仅能用于全局设置,不能在特定的虚拟主机中打开或关闭。启用扩展状态信息将会导致服务器运行效率降低。

http://192.168.99.99/Server-status

默认为查看第一个虚拟主机的信息。。。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

Apache Server Status for aa.bb.com

Server Version: Apache

Server Built: Apr 4 2010 17:19:54

Current Time: Friday, 30-Jul-2010 14:58:01 CST

Restart Time: Friday, 30-Jul-2010 14:57:38 CST

Parent Server Generation: 0

Server uptime: 23 seconds

Total accesses: 1 - Total Traffic: 1 kB

CPU Usage: u0 s0 cu0 cs0

.0435 requests/sec - 44 B/second - 1024 B/request

1 requests currently being processed, 9 idle workers

Scoreboard Key:

"

_

" Waiting for Connection, "

S

" Starting up, "

R

" Reading Request,

"

W

" Sending Reply, "

K

" Keepalive (read), "

D

" DNS Lookup,

"

C

" Closing connection, "

L

" Logging, "

G

" Gracefully finishing,

"

I

" Idle cleanup of worker, "

.

" Open slot with no current process

Srv     PID     Acc     M   CPU     SS  Req     Conn    Child   Slot    Client  VHost   Request

0-0     9297    0/1/1   _   0.00    11  134     0.0     0.00    0.00    114.92.*.222    aa.bb.com   GET /SEC HTTP/1.1

1-0     9306    0/0/0   W   0.00    0   0   0.0     0.00    0.00    114.92.*.222    aa.bb.com   GET /Server-status HTTP/1.1

Srv     Child Server number - generation

PID     OS process ID

Acc     Number of accesses this connection / this child / this slot

M   Mode of operation

CPU     CPU usage, number of seconds

SS  Seconds since beginning of most recent request

Req     Milliseconds required to process most recent request

Conn    Kilobytes transferred this connection

Child   Megabytes transferred this child

Slot    Total megabytes transferred this slot

Apache Server at aa.bb.com Port 80

server-status 的输出中每个字段所代表的意义如下:

字段                       说明

Server Version       Apache 服务器的版本。

Server Built            Apache 服务器编译安装的时间。

Current Time          目前的系统时间。

Restart Time           Apache 重新启动的时间。

Parent Server Generation       Apache 父程序 (parent process) 的世代编号,就是 httpd 接收到 SIGHUP 而重新启动的次数。

Server uptime         Apache 启动后到现在经过的时间。

Total accesses        到目前为此 Apache 接收的联机数量及传输的数据量。

CPU Usage            目前 CPU 的使用情形。

_SWSS....       所有 Apache process 目前的状态。每一个字符表示一个程序,最多可以显示 256 个程序的状态。

Scoreboard Key       上述状态的说明。以下为每一个字符符号所表示的意义:

* _:等待连结中。

* S:启动中。

* R: 正在读取要求。

* W:正在送出回应。

* K:处于保持联机的状态。

* D:正在查找 DNS。

* C:正在关闭连结。

* L:正在写入记录文件。

* G:进入正常结束程序中。

* I:处理闲置。

* .:尚无此程序。

Srv       本程序与其父程序的世代编号。

PID       本程序的 process id。

Acc       分别表示本次联机、本程序所处理的存取次数。

M       该程序目前的状态。

CPU       该程序所耗用的 CPU 资源。

SS       距离上次处理要求的时间。

Req       最后一次处理要求所耗费的时间,以千分之一秒为单位。

Conn       本次联机所传送的数据量。

Child       由该子程序所传送的数据量。

Slot       由该 Slot 所传送的数据量。

Client       客户端的地址。

VHost       属于哪一个虚拟主机或本主机的 IP。

Request       联机所提出的要求信息。

查看Apache的请求数和开启Apache Server Status 

在Linux下查看Apache的负载情况,最简单有有效的方式就是查看Apache Server Status,在没有开启Apache Server Status的情况下,或安装的是其他的Web Server,比如Nginx的时候,下面的命令就体现出作用了。

ps -ef|grep httpd|wc -l命令

#ps -ef|grep httpd|wc -l

1388

统计httpd进程数,连个请求会启动一个进程,使用于Apache服务器。

表示Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整,我这组服务器中每台的峰值曾达到过2002。

netstat -nat|grep -i “80″|wc -l命令

#netstat -nat|grep -i “80″|wc -l

4341

netstat -an会打印系统当前网络链接状态,而grep -i “80″是用来提取与80端口有关的连接的, wc -l进行连接数统计。

最终返回的数字就是当前所有80端口的请求总数。

netstat -na|grep ESTABLISHED|wc -l命令

#netstat -na|grep ESTABLISHED|wc -l         ---------个人测试此命令比较准确

376

netstat -an会打印系统当前网络链接状态,而grep ESTABLISHED 提取出已建立连接的信息。 然后wc -l统计。

最终返回的数字就是当前所有80端口的已建立连接的总数。

netstat -nat||grep ESTABLISHED|wc -   可查看所有建立连接的详细记录

查看Apache的并发请求数及其TCP连接状态:

Linux命令:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

(这条语句非常不错)

返回结果示例:

LAST_ACK 5

SYN_RECV 30

ESTABLISHED 1597

FIN_WAIT1 51

FIN_WAIT2 504

TIME_WAIT 1057

其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理

完毕,等待超时结束的请求数。

猜你喜欢

转载自blog.csdn.net/niejiangshuai/article/details/84998332