配置日志
编辑配置日志
编辑auditbeat.yml
配置文件的 logging
部分包含配置日志输出的选项。日志系统可以将日志写入 syslog 或轮换日志文件。如果未显式配置日志,则使用文件输出。
logging.level: info logging.to_files: true logging.files: path: /var/log/auditbeat name: auditbeat keepfiles: 7 permissions: 0640
除了在配置文件中设置日志选项之外,您还可以从命令行修改日志输出配置。请参阅命令参考。
当 Auditbeat 在具有 systemd 的 Linux 系统上运行时,默认情况下它使用 -e
命令行选项,这使其将所有日志输出写入 stderr,以便可以被 journald 捕获。其他输出被禁用。请参阅Auditbeat 和 systemd以了解更多信息并学习如何更改此设置。
配置选项
编辑您可以在 auditbeat.yml
配置文件的 logging
部分中指定以下选项
logging.to_stderr
编辑如果为 true,则将所有日志输出写入标准错误输出。这等效于使用 -e
命令行选项。
logging.to_syslog
编辑如果为 true,则将所有日志输出写入 syslog。
Windows 不支持此选项。
logging.to_eventlog
编辑如果为 true,则将所有日志输出写入 Windows 事件日志。
logging.to_files
编辑如果为 true,则将所有日志输出写入文件。当日志文件大小达到限制时,日志文件会自动轮换。
仅当存在日志输出时,Auditbeat 才会创建日志文件。例如,如果您将日志level
设置为error
,并且没有错误,则在为日志指定的目录中将没有日志文件。
logging.level
编辑最低日志级别。可以是 debug
、info
、warning
或 error
之一。默认日志级别为 info
。
-
debug
- 记录调试消息,包括刷新所有事件的详细打印输出。还记录信息性消息、警告、错误和严重错误。当日志级别为
debug
时,您可以指定一个selectors
列表,以显示特定组件的调试消息。如果未指定选择器,则使用*
选择器来显示所有组件的调试消息。 -
info
- 记录信息性消息,包括已发布的事件数量。还记录任何警告、错误或严重错误。
-
warning
- 记录警告、错误和严重错误。
-
error
- 记录错误和严重错误。
logging.selectors
编辑不同 Auditbeat 组件使用的仅调试选择器标记列表。使用 *
为所有组件启用调试输出。使用 publisher
显示与事件发布相关的调试消息。
可用选择器列表可能在版本之间发生变化,因此请避免创建依赖于特定选择器的测试。
要查看哪些选择器可用,请在调试模式下运行 Auditbeat(在配置中设置 logging.level: debug
)。选择器名称出现在日志级别之后,并括在方括号中。
要配置多个选择器,请使用以下YAML 列表语法
logging.selectors: [ harvester, input ]
要在命令行上覆盖选择器,请使用 -d
全局标志(-d
还会设置调试日志级别)。有关更多信息,请参阅命令参考。
logging.metrics.enabled
编辑默认情况下,Auditbeat 会定期记录其在上一期间发生更改的内部指标。对于每个已更改的指标,都会记录自该期间开始时起的值的增量。此外,所有非零内部指标的总值会在关闭时记录。将此设置为 false 可禁用此行为。默认值为 true。
以下是一个示例日志行
2017-12-17T19:17:42.667-0500 INFO [metrics] log/log.go:110 Non-zero metrics in the last 30s: beat.info.uptime.ms=30004 beat.memstats.gc_next=5046416
请注意,我们目前不为内部指标提供向后兼容性保证,因此它们也没有文档记录。
logging.metrics.period
编辑记录内部指标的时间间隔。默认值为 30 秒。
logging.metrics.namespaces
编辑要在日志中报告的指标命名空间列表。默认为 [stats]
。stats
包含常规 Beat 指标。dataset
和 inputs
可能存在于某些 Beat 中,并包含模块或输入指标。
logging.files.path
编辑写入日志文件的目录。默认为日志路径。有关详细信息,请参阅目录布局部分。
logging.files.name
编辑写入日志的文件名。默认为 *auditbeat*。
logging.files.rotateeverybytes
编辑日志文件的最大大小。如果达到限制,则会生成一个新的日志文件。默认大小限制为 10485760 (10 MB)。
logging.files.keepfiles
编辑要在磁盘上保留的最近轮换的日志文件数量。较旧的文件会在日志轮换期间删除。默认值为 7。keepfiles
选项的取值范围必须为 2 到 1024 个文件。
logging.files.permissions
编辑轮换日志文件时要应用的权限掩码。默认值为 0600。permissions
选项必须是以八进制表示的有效 Unix 样式文件权限掩码。在 Go 中,八进制表示的数字必须以 *0* 开头。
允许的最大权限掩码为 0640。如果通过此设置指定了更高的权限掩码,则该掩码将受 0027 的 umask 限制。
Windows 不支持此选项。
示例
- 0640:为文件所有者提供读写权限,并为与文件关联的组成员提供读取权限。
- 0600:为文件所有者提供读写权限,并且不为所有其他用户提供访问权限。
logging.files.interval
编辑除了基于大小的轮换之外,还启用按时间间隔轮换日志文件。间隔必须至少为 1 秒。1 分钟、1 小时、24 小时、7*24 小时、30*24 小时和 365*24 小时的值与本地系统时钟报告的分钟、小时、天、周、月和年对齐。所有其他间隔都从 Unix epoch 计算得出。默认为禁用。
logging.files.rotateonstartup
编辑如果日志文件在启动时已存在,请立即轮换该文件并开始写入新文件,而不是追加到现有文件。默认为 true。
logging.files.redirect_stderr
[预览] 此功能为技术预览版,可能会在将来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。
编辑如果为 true,则打印到 Auditbeat 标准错误输出的诊断消息也将记录到日志文件中。这在 Auditbeat 因 Go 运行时检测到错误而意外终止的情况下非常有用,但诊断信息不存在于日志文件中。此功能仅在将日志记录到文件时可用(logging.to_files
为 true)。默认情况下禁用。
日志格式
编辑对于每个日志输出,日志格式通常是相同的。一个例外是 syslog 输出,其中时间戳不包含在消息中,因为 syslog 会添加自己的时间戳。
每个日志消息都包含以下部分
- ISO8601 格式的时间戳
- 级别
- 括在方括号中的记录器名称(可选)
- 调用方的文件名和行号
- 消息
- 以 JSON 编码的结构化数据(可选)
以下是一些示例
2017-12-17T18:54:16.241-0500 INFO logp/core_test.go:13 未命名的全局记录器
2017-12-17T18:54:16.242-0500 INFO [example] logp/core_test.go:16 一些消息
2017-12-17T18:54:16.242-0500 INFO [example] logp/core_test.go:19 一些消息 {"x": 1}
事件数据记录器的配置选项
编辑某些输出将在发生错误时(例如 Elasticsearch 输出中的索引错误)记录原始事件,为了防止将原始事件(可能包含敏感信息)与其他日志消息一起记录,将使用一个不同的日志文件,仅用于包含原始事件的日志条目。它将使用与默认记录器相同的级别、选择器和所有其他配置,但它将具有自己的文件配置。
为原始事件提供不同的日志文件还可以防止事件数据淹没常规日志文件。
无论默认的记录器输出配置如何,原始事件始终都会记录到由 logging.event_data.files
配置的文件中。
logging.event_data.files.path
编辑写入日志文件的目录。默认为日志路径。有关详细信息,请参阅目录布局部分。
logging.event_data.files.name
编辑写入日志的文件名。默认为 *auditbeat*-events-data。
logging.event_data.files.rotateeverybytes
编辑日志文件的最大大小。如果达到限制,则会生成一个新的日志文件。默认大小限制为 5242880 (5 MB)。
logging.event_data.files.keepfiles
编辑要在磁盘上保留的最近轮换的日志文件数量。较旧的文件会在日志轮换期间删除。默认值为 2。keepfiles
选项的取值范围必须为 2 到 1024 个文件。
logging.event_data.files.permissions
编辑轮换日志文件时要应用的权限掩码。默认值为 0600。permissions
选项必须是以八进制表示的有效 Unix 样式文件权限掩码。在 Go 中,八进制表示的数字必须以 *0* 开头。
允许的最大权限掩码为 0640。如果通过此设置指定了更高的权限掩码,则该掩码将受 0027 的 umask 限制。
Windows 不支持此选项。
示例
- 0640:为文件所有者提供读写权限,并为与文件关联的组成员提供读取权限。
- 0600:为文件所有者提供读写权限,并且不为所有其他用户提供访问权限。
logging.event_data.files.interval
编辑除了基于大小的轮换之外,还启用按时间间隔轮换日志文件。间隔必须至少为 1 秒。1 分钟、1 小时、24 小时、7*24 小时、30*24 小时和 365*24 小时的值与本地系统时钟报告的分钟、小时、天、周、月和年对齐。所有其他间隔都从 Unix epoch 计算得出。默认为禁用。
logging.event_data.files.rotateonstartup
编辑如果日志文件在启动时已存在,请立即轮换该文件并开始写入新文件,而不是追加到现有文件。默认为 false。