Filebeat在Ubuntu上支持的输入插件及说明
Filebeat作为轻量级日志收集工具,其输入插件用于从不同来源采集数据。在Ubuntu系统上,Filebeat支持的输入插件覆盖文件、网络、系统日志等多种场景,主要包括以下类型:
最常用的输入类型,用于监控指定路径下的日志文件(支持通配符,如/var/log/*.log),采集新增或修改的日志内容。配置示例如下:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/syslog
- /var/log/apache2/*.log
适用于收集服务器本地日志文件,是Filebeat的核心输入场景之一。
用于接收系统或其他设备发送的Syslog日志(默认端口514),支持UDP/TCP协议。配置示例如下:
filebeat.inputs:
- type: syslog
enabled: true
ports: [514] # 监听UDP 514端口
常用于收集系统日志、网络设备日志等标准化日志。
通过TCP或UDP协议接收外部发送的日志数据,适用于自定义日志传输场景。配置示例如下:
filebeat.inputs:
- type: tcp
enabled: true
hosts: ["0.0.0.0:8888"] # 监听所有IP的8888端口
支持灵活的网络日志接入,如应用程序主动发送的日志。
从Kafka集群消费日志消息,适用于分布式日志收集场景(需配合Kafka环境)。配置示例如下:
filebeat.inputs:
- type: kafka
enabled: true
brokers: ["kafka1:9092", "kafka2:9092"] # Kafka broker地址
topics: ["your_topic"] # 订阅的Topic
用于对接Kafka消息队列,实现日志的缓冲和分发。
订阅MQTT broker的主题,采集物联网(IoT)设备的日志或消息(需安装MQTT broker,如Mosquitto)。配置示例如下:
filebeat.inputs:
- type: mqtt
enabled: true
hosts: ["tcp://localhost:1883"] # MQTT broker地址
topics: ["test"] # 订阅的主题
适用于物联网场景的设备日志收集。
用于调试或前台测试,从标准输入读取数据(如命令行输入)。配置示例如下:
filebeat.inputs:
- type: stdin
enabled: true
启动后,输入的文本会直接作为日志事件发送(如echo "test" | filebeat -e -c config.yml)。
通过Docker或Kubernetes API采集容器的标准输出(stdout/stderr)和日志文件,需配合容器环境使用。配置示例如下:
filebeat.inputs:
- type: container
enabled: true
paths:
- /var/lib/docker/containers/*/*.log # Docker容器日志路径
适用于容器化环境(如Ubuntu上运行的Docker/K8s),自动收集容器日志。
通过HTTP endpoint接收日志数据(如REST API),支持JSON等格式。配置示例如下:
filebeat.inputs:
- type: http
enabled: true
hosts: ["localhost:8080"] # HTTP监听地址
适用于应用程序通过HTTP接口发送日志的场景。
filebeat.yml中配置即可启用。filebeat modules enable命令启用预定义模块(如system、nginx),简化常见场景的配置(如系统日志、Nginx日志)。以上插件覆盖了Ubuntu环境下Filebeat的主要输入场景,可根据实际需求选择配置。