Linux Apache 日志分析器Linux Apache 日志分析器Linux Apache 日志分析器Linux Apache 日志分析器
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux Apache 日志分析器

每次访问 Apache Web 服务器时,都会在日志文件中生成一行。正如您可以想象的那样,日志文件可能很快就会充满访问者信息和遇到的错误,因此它们变得笨拙且难以筛选。分析日志是管理 Apache 并确保其按预期运行的重要部分。

在本教程中,我们将了解如何在 Linux 系统上查找 Apache 日志文件,并通过它们查找有关访问者、错误和 Apache 性能的相关信息。在此过程中,您将学习如何解释 Apache 日志文件。我们还将介绍一些可以安装的工具,这些工具将查看日志文件并编译相关统计数据,以便人们更容易查看。

在本教程中您将学习:

  • Apache 日志文件存储在哪里

  • 系统如何轮换 Apache 日志文件

  • 如何解释 access.log 和 error.log 中的数据

  • 如何安装和使用其他工具来解释 Apache 日志文件

Apache 日志文件及其位置

Apache 生成两个不同的日志文件:

  • access.log 存储有关 Apache 的所有传入连接请求的信息。每次用户访问您的网站时,都会记录在这里。用户请求的每个页面也将被记录为单独的条目。

  • error.log 存储有关 Apache 在整个操作过程中遇到的错误的信息。理想情况下,该文件应保持相对空。

日志文件的位置可能取决于您运行的 Apache 版本及其所在的 Linux 发行版。 Apache 还可以配置为将这些文件存储在其他一些非默认位置。

但是,默认情况下,您应该能够在以下目录之一找到访问和错误日志:

    /var/log/apache/
    /var/log/apache2/
    /etc/httpd/logs/

解释 Apache 日志

Apache 呈现日志条目的常用格式是:


"%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\""

以下是如何解释此格式:

  • %h – 客户端的 IP 地址。

  • %l – 这是客户端上的“identd”,用于识别它们。该字段通常为空,并显示为连字符。

  • %u – 客户端的用户 ID(如果使用 HTTP 身份验证)。如果没有,日志条目将不会显示该字段的任何内容。

  • %t – 日志条目的时间戳。

  • \%r\ – 来自客户端的请求行。这将显示使用了什么 HTTP 方法(例如 GET 或 POST)、请求什么文件以及使用什么 HTTP 协议。

  • %>s – 返回给客户端的状态代码。 4xx 代码(如 404、页面未找到)表示客户端错误,5xx 代码(如 500、服务器内部错误)表示服务器错误。其他数字应表示成功(例如 200,确定)或其他类似重定向(例如 301,永久移动)。

  • %O – 请求的文件(包括标头)的大小(以字节为单位)。

  • \"%{Referer}i\" – 引用链接(如果适用)。这告诉您用户如何导航到您的页面(通过内部链接或外部链接)。

  • \"%{User-Agent}i\" – 这包含有关连接客户端的网络浏览器和操作系统的信息。

现在您已经知道如何解释 Apache 日志文件中的典型条目,让我们看一下一些条目(调整以下路径以匹配 Apache 日志文件的存储位置):


$ less /var/log/apache2/access.log
OR
$ less /var/log/apache2/error.log

访问日志中的典型条目如下所示:


10.10.220.3 - - [17/Dec/2019:23:05:32 -0500] "GET /products/index.php HTTP/1.1" 200 5015 "http://example.com/products/index.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36"

错误日志更加简单且易于解释。典型的条目可能如下所示:


[Mon Dec 16 06:29:16.613789 2019] [php7:error] [pid 2095] [client 10.10.244.61:24145] script '/var/www/html/settings.php' not found or unable to stat

这是查看访问者遇到多少 404 错误的好方法,并且可能会提示您发现网站上的一些死链接。更重要的是,它可以提醒您缺少资源或潜在的服务器问题。上面的示例显示了一个已请求但丢失的 .php 页面。

您知道吗?
您可以自定义 Apache 日志的格式,甚至可以准确配置 Apache 应记录哪些信息。请参阅有关如何分析和解释 Apache Webserver 日志的教程,了解 Apache 日志模块以及如何自定义 Apache 日志记录。

旁注:您可能会在 /var/log/apache2 或 /var/log/httpd 目录中看到很多压缩日志文件:


$ ls /var/log/apache2

您的 Apache 日志文件会自动压缩和轮转,以避免消耗磁盘空间或在单个文本文件中收集数百万行。 logrotate 命令和系统服务可以促进这一点,并且可以根据需要调整功能。

使用工具解释 Apache 日志文件

您在上一节中了解了如何解释日志文件,但此任务不可能以任何效率完成。读取每个日志条目需要很长时间,并且流行的网站每天可能会在日志文件中生成数千行。有第三方工具可以为我们分析日志并向我们提供其中最相关的信息,而不是手动尝试处理每个日志。

我们将在本文中介绍 GoAccess。您可以使用下面适当的命令通过系统的包管理器安装 GoAccess。

要在 Ubuntu、Debian 和 Linux Mint 上安装 GoAccess:


$ sudo apt install goaccess

要在 Fedora、CentOS、AlmaLinux 和 Red Hat 上安装 GoAccess:


$ sudo dnf install goaccess

要在 Arch Linux 和 Manjaro 上安装 GoAccess:


$ sudo pacman -S goaccess

安装后,我们可以使用 GoAccess 从日志文件生成报告。例如,要从 Apache 的 access.log 创建报告:


$ sudo goaccess /var/log/apache2/access.log --log-format=COMBINED -a -o /var/www/html/report.html

此命令将生成 report.html 并将其放置在 /var/www/html 目录中,该目录是 Apache 托管网站的默认目录。您的服务器很可能已配置为在不同的目录中托管网站,因此您需要相应地调整此命令。运行该命令后,您可以在网络浏览器中打开 report.html。

结束语

在本教程中,我们了解了如何在 Linux 系统上分析和解释 Apache Web 服务器日志。我们学习了如何手动打开 access.log 和 error.log 文件,并理解其中显示的数据。然后,我们了解了如何使用 GoAccess 等工具来自动筛选文件并以更易于人类阅读和理解的方式编译相关数据。 Web 服务器管理的一部分是掌握 Apache 日志并持续监视它们是否存在异常和错误。您可以选择是使用工具来帮助完成工作、手动完成工作还是自己配置自定义解决方案。

©2015-2025 艾丽卡 support@alaica.com