温馨提示×

ubuntu filebeat支持哪些输入源

小樊
54
2025-10-06 11:40:57
栏目: 智能运维

Ubuntu Filebeat支持的输入源类型及说明

Filebeat作为轻量级日志采集工具,其输入模块(filebeat.inputs)支持从多种来源收集数据,覆盖系统日志、应用日志、网络流量、容器环境等多种场景。以下是主要输入源类型及配置要点:

1. 文件日志输入(log)

最常用的输入类型,用于采集本地或远程文件系统中的日志文件。支持通过通配符(如/var/log/*.log)指定路径,可配置多行日志合并(multiline)、排除特定文件(exclude_files)、忽略旧文件(ignore_older)等功能。
示例配置:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/syslog
    - /var/log/nginx/*.log
  multiline.pattern: '^\['  # 匹配以'['开头的行(如Java异常堆栈)
  multiline.negate: true    # 反转匹配(即不匹配的行作为新日志开始)
  multiline.match: after    # 将后续行追加到前一行之后

2. 标准输入(stdin)

用于测试或临时数据采集,直接从终端读取输入内容。常用于验证Filebeat配置是否正常。
示例配置:

filebeat.inputs:
- type: stdin
  enabled: true

3. TCP/UDP输入

通过网络接收日志数据,支持TCP(可靠传输)和UDP(快速传输)协议。适用于收集远程服务器、网络设备的日志。
示例配置(TCP):

filebeat.inputs:
- type: tcp
  enabled: true
  host: "0.0.0.0:9000"  # 监听所有IP的9000端口

4. Syslog输入

专门采集Syslog协议的日志(如Ubuntu系统日志/var/log/syslog),支持UDP(默认端口514)和TCP传输。
示例配置:

filebeat.inputs:
- type: syslog
  enabled: true
  host: "0.0.0.0:514"

5. Docker输入

用于采集Docker容器的日志,自动读取容器日志文件(默认路径/var/lib/docker/containers/*/*.log)。支持解析容器元数据(如容器ID、名称)。
示例配置:

filebeat.inputs:
- type: docker
  enabled: true
  containers.ids: "*"  # 采集所有容器日志
  json.keys_under_root: true  # 将JSON日志字段提升到根层级

6. Kubernetes输入

针对Kubernetes环境设计,自动发现集群中的Pod日志,支持基于标签(Labels)过滤Pod。日志默认从/var/log/containers/*.log读取,包含Pod名称、命名空间等元数据。
示例配置(通过模块启用):

filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
filebeat.modules:
- module: kubernetes
  enabled: true
  pods:
    enabled: true

7. Kafka输入

Kafka集群消费日志数据,支持指定Topic、Broker地址、消费者组等参数。适用于分布式日志收集场景。
示例配置:

filebeat.inputs:
- type: kafka
  enabled: true
  brokers: ["kafka1:9092", "kafka2:9092"]
  topics: ["app-logs"]
  group_id: "filebeat-consumer-group"

8. 内置模块输入

Filebeat提供多个预定义模块(如systemnginxmysql),封装了常见服务的日志路径、解析规则和输出模板。启用模块后无需手动配置pathsmultiline,简化了复杂场景的配置。
示例配置(启用System模块):

filebeat.modules:
- module: system
  enabled: true
  period: 1h  # 每小时采集一次系统日志

以上输入源类型覆盖了大多数日志采集场景,用户可根据实际需求组合配置(如同时采集系统日志、Nginx日志和Kafka数据)。配置文件默认位于/etc/filebeat/filebeat.yml,修改后需重启Filebeat服务生效。

0