Ubuntu Filebeat 是一个轻量级的日志文件收集器,用于将日志数据发送到 Elasticsearch 或 Logstash 进行存储和分析。Filebeat 的配置文件通常位于 /etc/filebeat/filebeat.yml。下面是对该配置文件的主要部分的解析:
filebeat.inputs这部分定义了 Filebeat 监听的输入源。常见的输入源包括日志文件、系统日志等。
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
ignore_older: 72h
type: 输入类型,通常是 log。enabled: 是否启用该输入源。paths: 要监控的日志文件路径。ignore_older: 忽略超过这个时间的日志文件。filebeat.modules这部分定义了 Filebeat 的模块,模块可以帮助你更方便地配置特定的日志类型。
filebeat.modules:
path: ${config.home}/modules.d/*.yml
reload.enabled: false
path: 模块配置文件的路径。reload.enabled: 是否启用模块自动重新加载。filebeat.processors这部分定义了 Filebeat 的处理器,可以用来修改事件数据。
filebeat.processors:
- add_fields:
targets: ["*"]
fields:
environment: "production"
add_fields: 添加新的字段到事件中。filebeat.output.elasticsearch这部分定义了 Filebeat 的输出目标,通常是 Elasticsearch 或 Logstash。
filebeat.output.elasticsearch:
hosts: ["localhost:9200"]
index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}"
hosts: Elasticsearch 或 Logstash 的地址。index: 输出的索引名称,通常包含 Filebeat 版本和日期。filebeat.setup.template.settings这部分定义了 Elasticsearch 索引模板设置。
filebeat.setup.template.settings:
index.number_of_shards: 3
index.codec: best_compression
_source.enabled: true
index.number_of_shards: 索引的分片数。index.codec: 索引的压缩编解码器。_source.enabled: 是否启用源数据存储。filebeat.setup.template.name这部分定义了 Elasticsearch 索引模板的名称。
filebeat.setup.template.name: "filebeat"
filebeat.setup.template.pattern这部分定义了 Elasticsearch 索引模板匹配的索引名称模式。
filebeat.setup.template.pattern: "filebeat-*"
filebeat.setup.ilm.enabled这部分定义了是否启用索引生命周期管理(ILM)。
filebeat.setup.ilm.enabled: true
filebeat.setup.ilm.template_name这部分定义了 ILM 模板的名称。
filebeat.setup.ilm.template_name: "filebeat"
filebeat.setup.ilm.pattern这部分定义了 ILM 模板匹配的索引名称模式。
filebeat.setup.ilm.pattern: "filebeat-*"
filebeat.setup.ilm.policy_name这部分定义了 ILM 策略的名称。
filebeat.setup.ilm.policy_name: "filebeat-policy"
filebeat.setup.ilm.lifecycle.enabled这部分定义了是否启用 ILM 生命周期管理。
filebeat.setup.ilm.lifecycle.enabled: true
Filebeat 的配置文件 filebeat.yml 包含了输入源、模块、处理器、输出目标等多个部分,通过这些配置,你可以灵活地控制 Filebeat 的行为,以满足不同的日志收集和分析需求。