第 17 章 配置日志
证书系统子系统日志文件记录与该特定子系统实例内操作相关的事件。对于每个子系统,会为安装、访问和 Web 服务器等问题保存不同的日志。
所有子系统都有类似的日志配置、选项和管理路径。
有关在安装后日志管理的详细信息,请参阅 Red Hat Certificate System Administration Guide 中的 Configuring Subsystem Logs 部分。
有关日志的概述信息,请参阅 第 2.3.13 节 “日志”。
17.1. 证书系统日志设置
配置日志的方式可能会影响证书系统性能。例如,日志文件轮转使日志变得太大,这会减慢子系统性能。本节介绍证书系统子系统记录的不同类型的日志,并涵盖了日志文件轮转、缓冲的日志以及可用日志级别等重要概念。
17.1.1. 日志记录的服务
证书系统日志消息到日志文件的所有主要组件和协议。下表列出了默认日志记录的服务。要查看特定服务记录的消息,请相应地自定义日志设置。
服务 | 描述 |
---|---|
ACL | 与访问控制列表相关的日志事件。 |
管理 | 记录与管理活动相关的事件,如控制台和实例之间的 HTTPS 通信。 |
All | 记录与所有服务相关的事件。 |
身份验证 | 使用身份验证模块记录与活动相关的事件。 |
证书颁发机构 | 记录与证书管理器相关的事件。 |
数据库 | 记录与内部数据库相关的活动事件。 |
HTTP | 记录与服务器的 HTTP 活动相关的事件。请注意,HTTP 事件实际上被记录到属于证书系统所包含的 Apache 服务器的错误日志中,以提供 HTTP 服务。 |
密钥恢复授权机构 | 日志记录与 KRA 相关的事件。 |
LDAP | 日志记录与 LDAP 目录相关的活动事件,用于发布证书和 CRL。 |
OCSP | 日志记录与 OCSP 状态相关的事件,如 OCSP 状态 GET 请求。 |
其他 | 记录与其他活动相关的事件,如命令行实用程序和其他进程。 |
请求队列 | 日志记录与请求队列活动相关的事件。 |
用户和组 | 日志记录与实例的用户和组相关的事件。 |
17.1.2. 日志级别(消息类别)
证书系统服务记录的不同事件由日志级别决定,这有助于识别和过滤事件。表 17.2 “日志级别和对应的日志消息” 中列出了不同的证书系统日志级别。
日志级别由数字 0
到 10
表示,每个数字代表服务器要执行的日志记录级别。该级别设置如何详细记录。
优先级更高的级别表示较少的详细信息,因为只记录高优先级的事件。
默认日志级别为 1
,不应更改这个值。要启用调试日志记录,请参阅 第 17.3.3 节 “调试日志的其他配置”。
下表提供了下表以更好地理解日志消息。
日志级别 | 消息类别 | 描述 |
---|---|---|
0 | 调试 | 这些消息包含调试信息。不建议常规使用这个级别,因为它会生成太多信息。 |
1 | informational (审计日志的默认选择) | 这些消息提供有关证书系统状态的常规信息,包括 证书系统初始化完成 等状态信息,以及操作 Request for 操作成功。 |
2 | 警告 | 这些消息只是警告,并不表示服务器正常操作中的任何失败。 |
3 | 失败;系统和错误日志的默认选择 | 这些消息表示阻止服务器正常运行的错误和失败,包括执行证书服务操作失败(用户身份验证失败 或证书 被撤销)和可能导致不良错误的意外情况(服务器无法通过来自客户端的同一频道向客户端发送请求)。 |
4 | 错误配置 | 这些消息表示服务器中的错误配置导致错误。 |
5 | 灾难性故障 | 这些消息表示因为错误,服务无法继续运行。 |
6 | 与安全相关的事件 |
这些消息标识了影响服务器安全性的发生。例如, |
7 | 与 PDU 相关的事件(调试) | 这些消息包含 PDU 事件的调试信息。不建议常规使用这个级别,因为它会生成比通常有用的信息。 |
8 | 与 PDU 相关的事件 | 这些消息与在 PDU 上处理的事务和规则相关,如创建 MAC 令牌。 |
9 | 与 PDU 相关的事件 | 此日志级别为 PDU 上处理的事件提供详细的日志消息,如创建 MAC 令牌。 |
10 | 所有日志记录级别 | 这个日志级别启用了所有日志记录级别。 |
日志级别可用于根据事件的严重性过滤日志条目。默认情况下,为所有服务设置日志级别 3 (Failure)。
日志级别是连续的;指定值 3 会导致记录级别 4、5 和 6。日志数据可能非常广泛,特别是在较低(详细)日志级别时。确保主机机器有足够的磁盘空间用于所有日志文件。定义日志级别、日志轮转和 server-backup 策略也非常重要,以便备份所有日志文件,并且主机系统不会过载;否则,信息可能会丢失。
17.1.3. buffered 和 unbuffered 日志记录
Java 子系统支持对所有类型的日志进行缓冲的日志。可以为 buffered 或未缓冲的日志配置服务器。
如果配置了缓冲的日志,服务器会为对应的日志创建缓冲区,并尽可能在缓冲区中保存消息。服务器仅在出现以下条件之一时清除日志消息到日志文件:
-
缓冲区已满。当缓冲区大小等于或大于
bufferSize
配置参数指定的值时,缓冲区已满。此参数的默认值为 512 KB。 -
达到缓冲区的清除间隔。当自上次缓冲区刷新的时间间隔等于或大于
flushInterval
配置参数指定的值时,就会达到 flush 间隔。此参数的默认值为 5 秒。 - 从控制台读取当前日志时。服务器在查询当前日志时检索最新的日志。
如果为未缓冲的日志配置了服务器,服务器会在生成消息时清除消息。由于服务器每次生成消息时都会执行 I/O 操作(写入日志文件),因此为未缓冲的日志配置服务器会降低性能。
在 Red Hat Certificate System Administration Guide 中的 Console 中的 Configuring Logs 部分中介绍了设置日志。
17.1.4. 日志文件轮转
子系统日志有一个可选的日志设置,允许轮转和启动新日志文件,而不是无限期地增加日志文件。当出现以下情况之一时,会轮转日志文件:
-
已达到对应文件的大小限制。对应日志文件的大小等于或大于
maxFileSize
配置参数指定的值。此参数的默认值为 100 KB。 -
达到对应文件的年龄限制。对应的日志文件等于或早于
rolloverInterval
配置参数指定的间隔。此参数的默认值为 2592000 秒(每三十天)。
轮转日志文件时,使用附加时间戳的文件名命名旧文件。附加的时间戳是一个整数,指示对应的活跃日志文件轮转的日期和时间。日期和时间格式为 YYYYMMDD (年、月份、天)和 HHMMSS (小时、分钟、秒)。
日志文件,特别是审计日志文件,包含重要信息。通过将整个 日志
目录复制到存档介质,该文件应定期归档到一些备份介质。
证书系统不提供归档日志文件的任何工具或实用程序。
证书系统提供了一个命令行实用程序 signtool
,它会在归档日志文件作为一种方式篡改检测前为日志文件签名。
签名日志文件是签名的审计日志功能的替代选择。签名的审计日志会创建使用子系统签名证书的审计日志。
轮转的日志文件不会被删除。