2011-08-17 26 views

回答

22

在你的终端,输入

tail -f /var/www/log/apache2/other_vhosts.access.log 

这将观看实时请求。

+7

对于我来说,我需要`须藤尾-f/var/log/apache2/access.log`。 – Zudo 2015-05-09 13:05:34

+0

``tail -f/var/log/apache2/other_vhosts_access.log`` – Cassiano 2016-06-09 20:04:33

12

正如@Maor H.所指出的,访问日志通常是获取“传入”请求的最方便的地方。这些日志可能配置为任何地方,但通常可以在/var/log/apache2//var/log/httpd/的某处找到。

它们的位置取决于CustomLog指令httpd.conf或包含的文件(如虚拟主机)。因此,如果在上述/var/log/*目录之一中找不到日志,那么在httpd.conf和类似*.conf文件中搜索该文件通常是一个好的开始。

但是,一个重要的区别是,在请求完成之前,apache/httpd的日志不会被写入。这很简单,因为日志条目通常包含诸如最终请求的状态代码(LogFormat指令中的%>s)和请求花费了多长时间(指令中的%T)之类的内容。

如果您有兴趣看到“请进来”的请求,那么简单的答案就是我没有意识到的“好”方式。但是,通常使用的方法是使用Apache的mod_status,通常配置(配置时)可通过http://127.0.0.1/server-status/从与服务器本身相同的机器访问。通过配置mod_status,您通常可以使用类似于apachectl fullstatus或(取决于您的分布)service httpd fullstatus的命令从命令行看到“记分板”的输出。

server-status/fullstatus /“记分牌”会显示活动(以及非活动)连接的摘要,请求本身的截断副本,什么是目前关于该请求发生(如:是否被处理?答案是否被发送?是否空闲?是否只是在等待新的连接?)

记分牌的主要缺点是它不适合被尾或主动监控。这对于确定什么可能会导致服务器上的过度负载很好,尽管它的缺点是只有在apache能够提供额外的连接时才可以访问(因此找出阻塞其他连接的东西并不好) 。

如上所述,记分牌的主要优点是:它提供了请求详细信息之前的请求已完成。考虑到这一点,它可能更适合您对“传入”请求列表的请求。

如果你想得到更低层次的东西,而不是谈论生产服务器,那么当然WireShark可以给你一个HTTP请求的实时列表,它会自动监测TCP连接,并且对于生产使用来说太耗费资源。如果你正在试图找出线路上发生的事情,那么它就是最好的选择。

7

apachetop将在最后一分钟左右向您显示所有请求。

sudo apt-get install apachetop

Here are the manpages

您可以指定更新频率和信息在屏幕上停留的时间。

例如,如果你想看到所有的请求的最后30秒,并刷新信息,每隔2秒,你可以运行:

apachetop -r 2 -T 30

相关问题