Filebeat 是一个轻量级的日志收集器,用于将日志数据从源传输到如 Elasticsearch 或 Logstash 等后端存储系统。在 CentOS 系统中,Filebeat 的配置文件通常位于 /etc/filebeat/filebeat.yml。
以下是 Filebeat 配置文件的主要部分及其解析:
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:
fields:
custom_field: "value"
add_fields: 添加自定义字段到事件中。filebeat.output.elasticsearch定义了 Filebeat 将日志数据发送到的 Elasticsearch 集群。
filebeat.output.elasticsearch:
hosts: ["localhost:9200"]
index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}"
hosts: Elasticsearch 集群的地址。index: 日志数据的索引名称模板。setup.template.settings定义了 Elasticsearch 索引模板的设置。
setup.template.settings:
index.number_of_shards: 3
index.codec: best_compression
index.number_of_shards: 索引的分片数量。index.codec: 索引的压缩编解码器。setup.template.name定义了 Elasticsearch 索引模板的名称。
setup.template.name: "filebeat"
setup.template.pattern定义了 Elasticsearch 索引模板的匹配模式。
setup.template.pattern: "filebeat-*"
logging.level定义了 Filebeat 的日志级别。
logging.level: info
info: 默认日志级别,显示一般信息。debug: 显示调试信息。error: 显示错误信息。以下是一个完整的示例配置文件:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
ignore_older: 72h
filebeat.modules:
path: ${config.home}/modules.d/*.yml
reload.enabled: false
filebeat.processors:
- add_fields:
fields:
custom_field: "value"
filebeat.output.elasticsearch:
hosts: ["localhost:9200"]
index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}"
setup.template.settings:
index.number_of_shards: 3
index.codec: best_compression
setup.template.name: "filebeat"
setup.template.pattern: "filebeat-*"
logging.level: info
通过编辑这个配置文件,你可以自定义 Filebeat 的行为,以满足你的具体需求。