实时服务器连接监控

实时服务器连接监控

有什么方法可以实时查看到我的服务器的连接以及通过哪些域?

无需检查 access.log 文件,我愿意在 shell 中运行监视器。

Ubuntu 10 Web 服务器:lighttpd

谢谢

access.log 中的样例行

::ffff:000.00.00.000 www.domain.com - [10/Nov/2010:12:42:49 +0100] "GET / HTTP/1.1" 200 295 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10"

答案1

有一个名为的包iptraf,它将向您显示与服务器的连接。

您可以通过以下方式安装它:sudo apt-get install iptraf

Access.log 方法

您还可以使用以下命令从 access.log 中提取信息

tail -f access.log | awk '{print $1 "\t"  $2}'

在我的实例中,这列出了 UA 提供的远程 IP 和 HTTP 1.1 主机名。

命令说明

让我们简单看一下我上面显示的命令:

实际上,这是两个名为tail和的命令awktail通常会输出文件的最后 10 行,但通过参数,-f我们要求它继续查看文件并在将新行写入文件时打印它们。

管道(|)是一个众所周知的角色,因为它使用一个程序的输出(即tail)作为另一个程序的输入(即awk)。

最后,第二个命令awk '{print $1 "\t" $2}'从 tail 获取输入,并将输出限制为我们需要的列。(在我的示例中,这些是前两列,因此我使用了$1$2。如果您的 access.log 使用其他列顺序,您可能需要相应地更改数字。

这将生成类似于此的实时列表:

92.17.166.190--pacey.me
92.17.166.191--pacey.me
92.17.166.192--anotherdomain.com
92.17.166.193--anotherdomain.com

关于你的问题

我尝试使用以下命令重现您遇到的错误。

echo ::ffff:000.00.00.000 www.domain.com - [10/Nov/2010:12:42:49 +0100] "GET / HTTP/1.1" 200 295 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10" |  awk '{print $1 "\t"  $2}'

但即使如此,它对我来说还是有用的:

::ffff:000.00.00.000    www.domain.com

答案2

答案3

由于日志格式与 Apache 几乎相同,阿帕奇可能对你有用。

它在 Ubuntu 软件包存储库中可用,因此sudo apt-get install apachetop应该可以立即安装它。

用法:apachetop -f /path/to/your/access.log

相关内容