了解和配置Apache访问日志

Web服务器日志提供了大量关于Web应用程序和用户的信息。Apache是一种非常流行的web服务器,被数百万个web站点使用。Apache提供了不同类型的日志,比如 access , error 在本教程中,我们将了解如何配置Apache访问日志,并尝试理解日志格式。

null

Apache访问日志

Apache访问日志提供有关访问Apache Web服务器的信息。当有人通过浏览器访问网站或打开web应用程序时,apacheweb服务器将创建一些关于请求的日志。

Apache访问日志位置

Apache访问日志默认存储在以下目录中。访问日志可以用一个简单的文本编辑器打开,比如kwrite、gedit等,或者只需 cat 在命令行中。

Ubuntu、Debian、Mint:

/var/log/apache2/access.log

CentOS、Fedora、RedHat:

/var/log/httpd/access.log

我们可以在Ubuntu操作系统中用less命令打开Apache访问日志,如下所示。

$ less /var/log/apache/access.log
Apache Access Log Location
Apache访问日志位置

列出访问日志文件

始终将访问日志写入单个文件是不可行的。在一个标准的web服务器中,随着时间的推移,会有很多访问日志文件,它们是以结构化的方式命名的。我们可以用 ls 命令如下。

$ ls -lh /var/log/apache2/access.*
List Access Log Files
列出访问日志文件

将添加旧的访问日志文件名 1 为了节省空间,在文件名末尾和最近两次访问日志文件之后,旧的文件将被压缩。默认情况下,使用gzip或gz压缩,压缩文件的名称如下 access.log.2.gz 为了表达它,用gzip压缩。

相关文章: Git-审阅更改

读取压缩访问日志

随着时间的推移,将会有大量的访问日志,其中大部分都将使用不同的压缩算法(如gzip、bzip等)进行压缩。我们可能需要尽快以实用的方式读取这些压缩的访问日志文件。我们可以读取这些压缩的访问日志,而无需使用 zless 命令如下。

$ zless /var/log/apache2/access.log.2.gz

搜索、过滤和Grep压缩访问日志

如果我们需要的不仅仅是读取一个压缩的访问日志文件,我们可以使用其他工具,比如zgrep,它将grep一个gzip压缩文件。在本例中,我们将筛选或grep WebDAV 在我们的压缩日志文件中 access.log.2.gz .

$ zgrep WebDAV /var/log/apache2/access.log.2.gz
Search, Filter and Grep Compressed Access Log
搜索、过滤和Grep压缩访问日志

我们也可以搜索和过滤所有压缩文件与单一的命令执行。我们将使用glob*来指定所有给定的压缩访问日志,如下所示。在本例中,我们将搜索 Nmap 在压缩访问日志文件中。

$ zgrep Nmap /var/log/apache2/access.log.*.gz
Search, Filter and Grep Compressed Access Log
搜索、过滤和Grep压缩访问日志

Apache访问日志格式

Apache访问日志提供了许多关于请求和对这些请求的响应的有用信息。Apache配置使用指令 LogFormat 定义访问日志格式。默认的日志格式如下所示。

LogFormat "%h %l %u %t "%r" %>s %b" common

以下是捷径的含义。

  • %h 客户端的IP地址
  • %l 如果存在客户身份
  • %u 如果用户经过身份验证,则为客户端的userid
  • %t 请求到达的日期和时间
  • "%r" 客户端请求的HTTP方法,包括HTTP谓词URI和HTTP版本
  • %>s 是服务器发送回客户端的响应代码
  • %b 返回给客户端的对象的大小

相关文章: Logrotate命令教程及Linux示例

下面是一个Apache访问日志示例

127.0.0.1 - - [16/Aug/2017:07:03:45 +0300] "GET / HTTP/1.0" 200 11192 "-" "check_http/v2.2 (monitoring-plugins 2.2)"

不存在的列将显示为 - .

列出当前访问日志格式

访问日志格式在中定义 /etc/apache2/apache2.conf Ubuntu、Debian或 /etc/httpd/httpd.conf 在CentOS或RedHat系统中。我们可以列出当前的指令 LogFormat 使用以下命令。

$ cat /etc/apache2/apache2.conf | grep Log
List Current Access Log Formatting
列出当前访问日志格式

交互式读取Apache访问日志

系统管理员通常需要以交互方式读取Apache访问日志,以便进行故障排除。我们可以用 tail 命令以便实时查看快速访问日志。我们将使用以下命令。我们假设 access.log 居住在 /var/log/apache2/access.log

$ tail -f /var/log/apache2/access.log

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享