Apache Web 服务器在企业中广泛用于托管其网站和 Web 应用程序,Apache 服务器生成的原始日志提供有关 Apache 服务器托管的网站如何处理用户请求以及访问您的网站时经常遇到的错误的重要信息。
Apache 日志包含 Apache Web 服务器处理的所有事件的记录 - 从各种计算机发送的 Web 请求、已处理的请求、从 Apache 服务器发送到主机的响应以及被阻止的恶意请求。
Apache Web 服务器生成两种类型的日志:
Apache 访问日志是Apache HTTP 服务器,通常称为 Apache。它们是由Web服务器创建和维护的一种日志文件,用于记录向服务器发出的每个HTTP请求的时间顺序和详细历史记录。这些日志提供每个服务器活动的记录,包括有关谁在访问服务器、他们请求什么以及服务器如何响应这些请求的信息。
例:
127.0.0.1 - Jina [22/Feb/2017:10:34:12 -0700] “GET /sale-image.png HTTP/2” 200 1479
简单来说,Apache 访问日志是结构化日志捕获有关与 Web 服务器的每次交互的基本信息的记录。它们充当所有传入请求及其结果的历史帐户。这些日志对于监视、分析和排除 Web 服务器操作的各个方面的问题至关重要。
理解和解释 Apache 访问日志对于有效管理 Web 服务器并对其进行故障排除至关重要。首先,让我们看一下访问日志和 HTTP 响应代码中的典型信息。
访问日志捕获各种信息,这些信息提供有关每个 HTTP 请求的详细信息,如下所示:
这些数据点提供了每个 HTTP 请求的全面视图,帮助管理员和开发人员诊断问题,了解其 Web 服务器的使用情况,并就站点性能和安全性做出明智的决策。
Apache 错误日志包含有关 Web 服务器在处理请求时遇到的错误的信息。它记录了所有错误或信息,从“文件不存在”等次要错误或信息到“拒绝访问”等主要错误或信息,以达到对网络的潜在威胁。错误日志使用 LogLevel 指令(如 level、emerg、alert、crit、error、warn、notice、info、debug)表示错误级别。
例:
Tue Feb 18 08:19:20.613789 2020] [php7:error] [pid 2045] [client
10.10.244.61:24145] script ‘/var/www/html/settings.php’ not found or unable to stat
Apache 访问和错误日志位于安装了 Apache 的 Web 服务器上。访问日志的具体路径可能因操作系统和 Apache 配置而异。下面列出了一些可以找到 Apache 访问日志的常见位置:
操作系统 | 访问日志的位置 | 错误日志的位置 |
---|---|---|
Debian/Ubuntu/Linux Mint | /var/log/apache2/access.log | /var/log/apache2/error.log |
Red Hat/ Fedora/ CentOS | /var/log/httpd/access_log | /var/log/httpd/error_log |
OpenSuse | /var/log/apache2/access_log | /var/log/apache2/error_log |
Windows | C:\Program Files\Apache Group\Apache2\logs\access.log | C:\Program Files\Apache Group\Apache2\logs\access.log.1 |
如果无法在这些位置找到 Apache 日志,可能是因为已使用 CustomLog 和 ErrorLog 指令为访问日志和错误日志配置了不同的位置。此外,如果您在 Apache 配置中自定义了日志位置,则需要检查该特定位置。
Apache 访问日志有多种格式,最常见的包括通用日志格式和组合日志格式。这些格式决定了日志条目的结构,这些条目记录了有关每个 HTTP 请求的信息。
让我们通过相关示例看一下每种日志格式:
1、通用日志格式是一种广泛使用的格式,它以空格分隔的格式提供有关每个请求的一组基本信息。它包括客户端的 IP 地址、请求的日期和时间、请求方法、请求的 URL、HTTP 版本、HTTP 响应代码以及响应中发送的字节数等详细信息。
下面是 Apache 访问日志的示例,用于了解如何以通用日志格式记录公共字段:
192.168.1.100 - - [11/Oct/2023:15:30:45 +0000] “GET /index.html HTTP/1.1” 200 1234
2、组合日志格式通过添加更多字段来扩展通用日志格式,以提供更全面的信息集。除了通用日志格式的字段外,它还包括 referrer 和 user-agent。这种格式对于网络分析和了解用户行为特别有用。
下面是 Apache 访问日志的示例,用于了解如何以组合日志格式记录公共字段:
203.0.113.25 - - [11/Oct/2023:16:45:22 +0000] “POST /login HTTP/1.1” 401 567 “http://example.com” “Mozilla/5.0 (Windows NT 10.0; Win64;
x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110
Safari/537.36”
除了上述格式外,Apache还允许管理员定义自定义日志格式,以记录适合其需求的特定信息。自定义日志格式可灵活地捕获与特定应用程序或分析要求相关的数据。管理员可以定义要包含的字段和日志条目的格式。
了解这些格式对于日志分析至关重要,因为它们决定了记录信息的结构和内容。选择适当的日志格式取决于服务器的具体要求以及要执行的分析或监视类型。
处理和理解 Apache 日志可能会很忙。“logs/access.log”中的 CustomLog 指令和“log/error.log”中的 ErrorLog 指令使您能够指定在 Web 服务器级别和单个主机级别生成的访问和错误日志的格式。
请考虑以下日志示例:
Mon Dec 18 08:19:20.613789 2018] [php7:error] [pid 2095] [client
10.10.244.61:24145] script ‘/var/www/html/settings.php’ not found or unable to stat
在此日志中,您至少需要监视这五个重要字段,以发现异常并检测恶意活动。
从日志中,您可以看到某些 Web 请求可能无法正确响应。在这种情况下,您需要对错误日志进行故障排除,以发现状态代码、服务器负载和响应时间、异常流量模式和使用的浏览器。
Apache 日志充当 Web 服务器日常生活的监视者和勤奋的抄写员。它们可能看起来像一个不起眼的数据集合,但实际上,它们是负责管理网站的 IT 管理员的宝贵资产。这些日志很重要,原因如下:
Apache 日志就像 Web 服务器的中心,它们为您提供所需的数据,以增强用户体验、防范安全威胁、优化服务器性能以及就您的数字资产做出明智的决策。
Apache 日志包含有关网络 Web 活动的关键信息。要提取上述字段并检查日志中的异常情况,您可以使用 grep、regex、tail、cut 等工具。但是,使用命令手动从日志中提取信息将非常耗时。您可以使用有效的日志管理解决方案来收集 apache 日志,对其进行解析和索引以识别必要的字段,并分析日志以识别恶意行为。
EventLog Analyzer 是一种日志管理解决方案,可以收集、解析和分析所有版本(包括Apache Tomcat服务器日志)的Apache日志。它使用其强大的关联引擎根据业务上下文分析日志,并生成全面而直观的报告,您可以使用EventLog Analyzer为异常Web服务器活动配置警报,它可以通过短信/电子邮件实时通知您即将到来的威胁。
EventLog Analyzer 是一个多功能的日志管理工具,它使组织能够主动管理和分析其 Apache 访问日志。它有助于确保其 Web 服务的安全性和可靠性,并帮助他们更深入地了解服务器的性能和用户交互。
让我们看一下它的功能,看看如何利用它来分析 Apache 访问日志。
Apache 访问日志信息是管理 Web 服务器不可或缺的一部分,使用 EventLog Analyzer 分析它们是增强网络安全的主动且有效的方法,它使组织能够有效地检测、响应和缓解安全威胁,最终保护其 Web 服务器和数字资产。