ubuntu

Ubuntu下Filebeat配置文件详解

小樊
40
2025-10-25 10:57:20
栏目: 智能运维

Ubuntu下Filebeat配置文件详解
Filebeat是Elastic开发的轻量级日志采集工具,其配置文件默认位于/etc/filebeat/filebeat.yml(YAML格式)。以下是核心配置项的详细说明及实战示例:

1. 基础配置:filebeat.inputs(输入源定义)

filebeat.inputs是Filebeat的核心模块,用于指定要采集的日志源。每个输入源为一个字典,支持log(文本日志)、docker(容器日志)、stdin(标准输入)等类型。

2. 输出配置:output(数据目的地)

output定义Filebeat将采集的日志发送到哪里,支持elasticsearchlogstashkafkaredis等目标。

2.1 输出到Elasticsearch

output.elasticsearch:
  hosts: ["localhost:9200"]  # Elasticsearch地址(支持多个节点,如["es1:9200", "es2:9200"])
  index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}"  # 索引名称模板(含Filebeat版本和日期)
  username: "elastic"  # 认证用户名(若开启安全功能)
  password: "your_password"  # 认证密码
  pipeline: "filebeat_pipeline"  # 指定Ingest节点管道(用于数据预处理)

2.2 输出到Logstash

output.logstash:
  hosts: ["localhost:5044"]  # Logstash地址(支持多个节点)
  index: "filebeat-%{+yyyy.MM.dd}"  # 索引名称模板
  ssl.enabled: true  # 是否启用SSL/TLS加密
  ssl.certificate_authorities: ["/etc/pki/tls/certs/ca.crt"]  # CA证书路径

2.3 输出到Kafka

output.kafka:
  hosts: ["kafka1:9092", "kafka2:9092"]  # Kafka集群地址
  topic: "%{[fields.log_topic]}"  # 主题名称(可从事件字段动态获取)
  required_acks: 1  # 确认机制(0=无响应,1=等待leader确认,-1=等待所有副本确认)
  compression: gzip  # 压缩格式(gzip/snappy/lz4)
  max_message_bytes: 1000000  # 单条消息最大字节数(避免过大被丢弃)

3. 数据处理:processors(预处理步骤)

processors用于在发送数据前对其进行加工,如添加字段、解码JSON、删除敏感信息等。

4. 模块配置:filebeat.modules(预构建模块)

Filebeat提供了多个预构建模块(如systemapachenginxmysql),用于快速采集和解析常见服务的日志(无需手动编写正则表达式)。

5. 高级配置

5.1 日志级别(logging)

调整Filebeat自身的日志输出级别,便于调试(可选errorwarninginfodebug)。

logging.level: debug  # 设置为debug可查看详细采集过程
logging.to_files: true  # 日志输出到文件(默认路径:/var/log/filebeat/filebeat)
logging.files:
  path: /var/log/filebeat
  name: filebeat.log
  keepfiles: 7  # 保留最近7天的日志
  permissions: 0644

5.2 自动发现(autodiscover)

适用于容器化环境(如Docker、Kubernetes),自动检测新容器并采集其日志。

filebeat.autodiscover:
  providers:
    - type: docker  # 监听Docker事件
      hints.enabled: true  # 使用Docker hints(容器标签指定采集规则)
  config:
    - type: container
      paths:
        - /var/lib/docker/containers/*/*.log  # Docker日志路径
      exclude_lines: ["^\\s+[\\-`('.|_]"]  # 排除空行或特殊字符行

6. 验证与启动

通过以上配置,Filebeat可实现灵活的日志采集、处理和传输。根据实际需求调整参数(如日志路径、输出目标、预处理步骤),并结合Elastic Stack(如Kibana)进行可视化分析。

0
看了该问题的人还看了