配置独立 Elastic Agent 的日志记录

编辑

elastic-agent.yml 配置文件的 “Logging” 部分包含用于配置日志输出的设置。日志系统可以将日志写入 syslogfilestderreventlog 或轮换日志文件。如果未显式配置日志记录,则使用 stderr 输出。

此示例配置 Elastic Agent 日志记录

agent.logging.level: info
agent.logging.to_files: true
agent.logging.files:
  path: /var/log/elastic-agent
  name: elastic-agent
  keepfiles: 7
  permissions: 0600

日志记录配置设置

编辑

您可以在 elastic-agent.yml 配置文件的 “Logging” 部分中指定以下设置。

某些输出将在发生错误时(例如 Elasticsearch 输出中的索引错误)记录原始事件。为了防止原始事件(可能包含敏感信息)与其他日志消息一起记录,会使用一个单独的日志文件,专门用于包含原始事件的日志条目。它将使用与默认记录器相同的级别、选择器和所有其他配置,但它将具有自己的文件配置。

为原始事件使用不同的日志文件还可以防止事件数据淹没常规日志文件。使用 agent.logging.event_data 配置事件记录器。

Elastic Agent 监控不会收集事件日志文件。如果需要事件日志文件,可以使用诊断程序收集它们,或者直接从运行 Elastic Agent 的主机复制它们。

设置

描述

agent.logging.level

最低日志级别。

可能的值

  • error:记录错误和严重错误。
  • warning:记录警告、错误和严重错误。
  • info:记录信息性消息,包括已发布的事件数。还会记录任何警告、错误或严重错误。
  • debug:记录调试消息,包括所有已刷新事件的详细打印输出。还会记录信息性消息、警告、错误和严重错误。当日志级别为 debug 时,您可以指定一个 选择器 列表,以显示特定组件的调试消息。如果未指定选择器,则使用 * 选择器来显示所有组件的调试消息。

默认值:info

agent.logging.selectors

指定不同的 Elastic Agent 组件用于调试的选择器标记。要调试所有组件的输出,请使用 *。要显示与事件发布相关的调试消息,请设置为 publish。可以链接多个选择器。

可能的值:[beat][publish][service]

agent.logging.to_stderr

设置为 true 以将所有日志输出写入 stderr 输出—这等效于使用 -e 命令行选项。

默认值:true

agent.logging.to_syslog

设置为 true 以将所有日志输出写入 syslog 输出。

默认值:false

agent.logging.to_eventlog

设置为 true 以将所有日志输出写入 Windows eventlog 输出。

默认值:false

agent.logging.metrics.enabled

设置为 true,使 Elastic Agent 定期记录其在上一段时间内发生更改的内部指标。对于每个发生更改的指标,都会记录与该期间开始时值的增量。此外,还会在关闭时记录所有非零内部指标的总值。如果设置为 false,则不会记录 Agent 或在其下运行的任何 Beats 的指标。

默认值:true

agent.logging.metrics.period

指定记录内部指标的周期。此设置不会传递给在 Elastic Agent 下运行的任何 Beats。

默认值:30s

agent.logging.to_files

设置为 true 以记录到轮换文件。设置为 false 以禁用记录到文件。

默认值:true

agent.logging.files.path

日志文件写入到的目录。

/Library/Elastic/Agent/data/elastic-agent-*/logs/elastic-agent.ndjson

日志文件名称以日期和可选数字结尾:log-date.ndjson、log-date-1.ndjson 等,因为在轮换期间会创建新文件。

agent.logging.files.name

写入日志的文件名称。

默认值:elastic-agent

agent.logging.files.rotateeverybytes

日志文件的最大大小限制。如果达到限制,则会生成新的日志文件。

默认值:10485760 (10MB)

agent.logging.files.keepfiles

要保留在磁盘上的最近轮换的日志文件数。较旧的文件会在日志轮换期间删除。该值必须在 21024 个文件的范围内。

默认值:7

agent.logging.files.permissions

轮换日志文件时要应用的文件权限掩码。权限选项必须是有效的 Unix 样式文件权限掩码,以八进制表示法表示。在 Go 中,八进制表示法中的数字必须以 0 开头。

默认值:0600

agent.logging.files.interval

除了基于大小的轮换之外,还可以在时间间隔内启用日志文件轮换。间隔必须至少为 1s1m1h24h7*24h30*24h365*24h 的值与本地系统时钟报告的分钟、小时、天、周、月和年对齐。所有其他间隔都从 Unix 纪元开始计算。

默认值:0 (禁用)

agent.logging.files.rotateonstartup

设置为 true 以在启动时轮换现有日志,而不是追加到现有文件。

默认值:true

agent.logging.event_data.to_files

设置为 true 以记录到轮换文件。设置为 false 以禁用记录到文件。

默认值:true

agent.logging.event_data.path

日志文件写入到的目录。

/Library/Elastic/Agent/data/elastic-agent-*/logs/events/elastic-agent-event-log*.ndjson

日志文件名称以日期和可选数字结尾:log-date.ndjson、log-date-1.ndjson 等,因为在轮换期间会创建新文件。

agent.logging.event_data.files.name

写入日志的文件名称。

默认值:elastic-agent-event-data

agent.logging.event_data.files.rotateeverybytes

日志文件的最大大小限制。如果达到限制,则会生成新的日志文件。

默认值:5242880 (5MB)

agent.logging.event_data.files.keepfiles

要保留在磁盘上的最近轮换的日志文件数。较旧的文件会在日志轮换期间删除。该值必须在 21024 个文件的范围内。

默认值:2

agent.logging.event_data.files.permissions

轮换日志文件时要应用的文件权限掩码。权限选项必须是有效的 Unix 样式文件权限掩码,以八进制表示法表示。在 Go 中,八进制表示法中的数字必须以 0 开头。

默认值:0600

agent.logging.event_data.files.interval

除了基于大小的轮换之外,还可以在时间间隔内启用日志文件轮换。间隔必须至少为 1s1m1h24h7*24h30*24h365*24h 的值与本地系统时钟报告的分钟、小时、天、周、月和年对齐。所有其他间隔都从 Unix 纪元开始计算。

默认值:0 (禁用)

agent.logging.event_data.files.rotateonstartup

设置为 true 以在启动时轮换现有日志,而不是追加到现有文件。

默认值:false