配置常规设置编辑

您可以在 filebeat.yml 配置文件中指定设置来控制 Filebeat 的常规行为。这包括:

  • 全局选项,用于控制发布器行为和某些文件的位置。
  • 常规选项,所有 Elastic Beats 都支持这些选项。

全局 Filebeat 配置选项编辑

这些选项位于 filebeat 命名空间中。

registry.path编辑

注册表的根路径。如果使用相对路径,则该路径被视为相对于数据路径。有关详细信息,请参阅“目录布局”部分。默认值为 ${path.data}/registry

filebeat.registry.path: registry

仅当刷新新事件时才会更新注册表,而不是按预定义的时间段更新。这意味着,如果在某些状态下 TTL 已过期,则只有在处理新事件时才会删除这些状态。

registry.file_permissions编辑

要应用于注册表数据文件的权限掩码。默认值为 0600。permissions 选项必须是以八进制表示法表示的有效 Unix 样式文件权限掩码。在 Go 中,八进制表示法中的数字必须以 0 开头。

允许的最大权限掩码为 0640。如果通过此设置指定了更高的权限掩码,则它将受限于 0027 的 umask。

Windows 不支持此选项。

示例

  • 0640:授予文件所有者读写访问权限,并授予与文件关联的组的成员读取访问权限。
  • 0600:授予文件所有者读写访问权限,并且所有其他人都没有访问权限。
filebeat.registry.file_permissions: 0600

registry.flush编辑

控制何时将注册表条目写入磁盘(刷新)的超时值。当未写入的更新超过此值时,会触发写入磁盘的操作。如果将 registry.flush 设置为 0 秒,则在成功发布每批事件后,注册表将写入磁盘。默认值为 1 秒。

Filebeat 正常关闭时,始终会更新注册表。如果 registry.flush 值 >0 秒,则在异常关闭后,注册表将不会是最新的。Filebeat 将再次发送已发布的事件(具体取决于上次更新的注册表文件中的值)。

筛选掉大量的日志可能会导致许多注册表更新,从而降低处理速度。将 registry.flush 设置为 >0 秒的值可以减少写入操作,帮助 Filebeat 处理更多事件。

registry.migrate_file编辑

在 Filebeat 7.0 之前,注册表存储在单个文件中。升级到 7.0 后,Filebeat 将自动迁移旧的 Filebeat 6.x 注册表文件以使用新的目录格式。Filebeat 会在 filebeat.registry.path 指定的位置查找该文件。如果您在升级时更改了路径,请设置 filebeat.registry.migrate_file 以指向旧的注册表文件。

filebeat.registry.path: ${path.data}/registry
filebeat.registry.migrate_file: /path/to/old/registry_file

只有在尚不存在使用目录格式的注册表的情况下,才会将注册表迁移到新位置。

config_dir编辑

[6.0.0] 已于 6.0.0 版弃用。请改用 输入配置

包含其他输入配置文件的目录的完整路径。每个配置文件都必须以 .yml 结尾。每个配置文件还必须指定完整的 Filebeat 配置层次结构,即使只处理每个文件的 inputs 部分也是如此。所有全局选项(例如 registry_file)都将被忽略。

config_dir 选项指向的目录必须不同于主 Filebeat 配置文件所在的目录。

如果指定的路径不是绝对路径,则该路径被视为相对于配置路径。有关详细信息,请参阅“目录布局”部分。

filebeat.config_dir: path/to/configs

shutdown_timeout编辑

Filebeat 在关闭时等待发布器完成发送事件的时间,然后 Filebeat 才关闭。

默认情况下,此选项处于禁用状态,并且 Filebeat 在关闭之前不会等待发布器完成发送事件。这意味着,在 Filebeat 关闭之前发送到输出但未确认的任何事件将在您重新启动 Filebeat 时再次发送。有关其工作原理的更多详细信息,请参阅“Filebeat 如何确保至少一次交付?”。

您可以配置 shutdown_timeout 选项来指定 Filebeat 在关闭之前等待发布器完成发送事件的最长时间。如果在达到 shutdown_timeout 之前所有事件都已确认,则 Filebeat 将关闭。

没有针对此选项的建议设置,因为确定 shutdown_timeout 的正确值在很大程度上取决于 Filebeat 运行的环境和输出的当前状态。

示例配置

filebeat.shutdown_timeout: 5s

常规配置选项编辑

所有 Elastic Beats 都支持这些选项。因为它们是通用选项,所以它们没有命名空间。

以下是一个示例配置

name: "my-shipper"
tags: ["service-X", "web-tier"]

name编辑

Beat 的名称。如果此选项为空,则使用服务器的 hostname。该名称将作为 agent.name 字段包含在每个已发布的事务中。您可以使用该名称对单个 Beat 发送的所有事务进行分组。

示例

name: "my-shipper"

tags编辑

Beat 包含在每个已发布事务的 tags 字段中的一组标记。标记可以轻松地按不同的逻辑属性对服务器进行分组。例如,如果您有一个 Web 服务器集群,则可以将“webservers”标记添加到每个服务器上的 Beat,然后在 Kibana Web 界面中使用过滤器和查询来获取整个服务器组的可视化效果。

示例

tags: ["my-service", "hardware", "test"]

fields编辑

您可以指定的可选字段,用于向输出添加其他信息。字段可以是标量值、数组、字典或这些类型的任何嵌套组合。默认情况下,您在此处指定的字段将分组在输出文档中的 fields 子字典下。要将自定义字段存储为顶级字段,请将 fields_under_root 选项设置为 true。

示例

fields: {project: "myproject", instance-id: "574734885120952459"}

fields_under_root编辑

如果此选项设置为 true,则自定义 字段 将作为顶级字段存储在输出文档中,而不是分组在 fields 子字典下。如果自定义字段名称与其他字段名称冲突,则自定义字段将覆盖其他字段。

示例

fields_under_root: true
fields:
  instance_id: i-10a64379
  region: us-east-1

processors编辑

要应用于 Beat 生成的数据的处理器列表。

有关在配置中指定处理器的信息,请参阅“处理器”。

max_procs编辑

设置可以同时执行的最大 CPU 数。默认值为系统中可用的逻辑 CPU 数。

timestamp.precision编辑

配置所有时间戳的精度。默认设置为毫秒。可用选项:毫秒、微秒、纳秒