Filebeat配置输出模块步骤
Filebeat的主配置文件为filebeat.yml,其默认路径通常为/etc/filebeat/filebeat.yml(Linux系统)。配置前建议备份原文件,避免误操作导致数据丢失。
使用文本编辑器(如vi、nano)打开filebeat.yml文件。例如,通过vi编辑器的命令为:
sudo vi /etc/filebeat/filebeat.yml
进入文件后,找到output部分(若未存在,可直接在文件末尾添加)。
Filebeat支持多种输出模块,以下是常用模块的具体配置示例:
若需将日志直接发送至Elasticsearch集群,配置output.elasticsearch段,关键参数包括:
hosts:Elasticsearch节点地址(支持多节点,用逗号分隔),如["localhost:9200", "es-node2:9200"];index:索引名称(支持动态字段,如%{[agent.version]}表示Agent版本,%{+yyyy.MM.dd}表示按天分割索引),如"filebeat-%{[agent.version]}-%{+yyyy.MM.dd}";document_type(文档类型,默认_doc,Elasticsearch 7.x及以上版本无需指定)、pipeline(指定Ingest Pipeline,用于数据预处理)。output.elasticsearch:
hosts: ["localhost:9200"]
index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}"
若需通过Logstash进行日志过滤、转换后再发送至目标(如Elasticsearch),配置output.logstash段,关键参数包括:
hosts:Logstash监听地址(端口默认5044,可根据实际情况调整),如["localhost:5044", "logstash-server:5000"];codec(数据编码格式,如json_lines表示每行一条JSON记录)、custom_tags(添加自定义标签,便于后续过滤)。output.logstash:
hosts: ["localhost:5044"]
codec: json_lines
custom_tags: ["logstash_forwarded"]
若需将日志发送至Kafka集群以实现高吞吐量、异步处理,配置output.kafka段,关键参数包括:
hosts:Kafka broker地址(多节点用逗号分隔),如["kafka-broker1:9092", "kafka-broker2:9092"];topic:目标Topic名称(如"filebeat_logs");required_acks(确认机制,1表示主节点确认,all表示所有副本确认)、compression(压缩方式,如gzip、snappy,减少网络传输量)。output.kafka:
hosts: ["kafka:9092"]
topic: "filebeat"
required_acks: 1
compression: gzip
若内置模块无法满足需求,可自定义输出模块(如发送至自定义HTTP API)。步骤如下:
filebeat.yml中定义自定义模块(如my_custom_output),配置连接参数和请求格式:output.my_custom_output:
hosts: ["http://my-custom-api.com:8080"]
http:
method: POST
body: '{"log": "%{[message]}", "timestamp": "%{@timestamp}"}'
headers:
Content-Type: "application/json"
fields或processors指定事件使用该模块(如根据日志级别路由到不同模块)。配置完成后,保存文件并退出编辑器。通过以下命令重启Filebeat服务,使配置生效:
sudo systemctl restart filebeat
若需设置开机自启动,可执行:
sudo systemctl enable filebeat
sudo tail -f /var/log/filebeat/filebeat_cat/indices接口查看索引是否存在)。注意事项:
%{[agent.version]})需符合Filebeat的字段提取规则;output.elasticsearch.ssl.certificate_authorities),保障数据传输安全。