Filebeat与Ubuntu其他服务集成的常见方法及步骤
在Ubuntu上安装Filebeat是集成的基础,可通过Elastic官方APT仓库完成安装:
# 导入Elastic官方GPG密钥
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
# 添加Elastic官方APT仓库
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
# 更新包列表并安装Filebeat
sudo apt update && sudo apt install filebeat
Logstash常用于日志的过滤、解析和丰富,Filebeat可作为前端收集器将日志发送至Logstash。
配置步骤:
/etc/filebeat/filebeat.yml),添加Logstash输出配置:filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log # 监控系统日志(可根据需求调整路径)
output.logstash:
hosts: ["localhost:5044"] # Logstash默认监听端口
sudo systemctl restart filebeat
若无需复杂处理,Filebeat可直接将日志发送至Elasticsearch,适用于小规模部署。
配置步骤:
filebeat.yml,替换为Elasticsearch输出配置:filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/syslog # 示例:监控syslog
output.elasticsearch:
hosts: ["localhost:9200"] # Elasticsearch默认地址
index: "filebeat-%{+yyyy.MM.dd}" # 按日期创建索引
sudo systemctl restart filebeat
Kafka可作为日志缓冲层,提升Filebeat与后续处理系统(如Elasticsearch)的解耦性和可靠性。
配置步骤:
filebeat.yml,添加Kafka输出配置:filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/*.log # 示例:监控Nginx日志
output.kafka:
hosts: ["localhost:9092"] # Kafka broker地址
topic: "filebeat-logs" # 日志发送至的Kafka主题
required_acks: 1 # 确认机制(1=写入leader即可)
compression: gzip # 压缩传输(节省带宽)
sudo systemctl restart filebeat
Filebeat提供针对Nginx、MySQL、Redis等常见服务的内置模块,可自动识别日志格式、提取字段,无需手动编写复杂正则。
配置步骤(以Nginx为例):
sudo filebeat modules enable nginx
/etc/filebeat/modules.d/nginx.yml),指定日志路径:- module: nginx
access:
enabled: true
var.paths: ["/var/log/nginx/access.log*"] # 访问日志路径
error:
enabled: true
var.paths: ["/var/log/nginx/error.log*"] # 错误日志路径
sudo systemctl restart filebeat
若自定义服务提供HTTP API接收日志,可使用Filebeat的HTTP输出模块。
配置步骤:
filebeat.yml,添加HTTP输出配置:filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/custom/*.log # 自定义服务日志路径
output.http:
hosts: ["your-custom-service:8080"] # 自定义服务地址
endpoint: "/logs/receive" # 接收日志的API端点
ssl.verification_mode: none # 若未启用HTTPS,禁用证书验证
sudo systemctl restart filebeat
sudo systemctl status filebeat
sudo journalctl -u filebeat -f
curl查看索引数据:curl -X GET "localhost:9200/_search?pretty" -H 'Content-Type: application/json' -d'{"query": {"match_all": {}}}'
kafka-console-consumer查看主题消息:kafka-console-consumer --bootstrap-server localhost:9092 --topic filebeat-logs --from-beginning
ssl.certificate_authorities)。chown或chmod调整)。bulk_max_size(批量发送大小)、queue_size(队列大小)等参数,避免资源占用过高。