首先更新系统包列表,然后导入Elastic官方GPG密钥并添加APT仓库,最后安装Filebeat:
sudo apt update && sudo apt upgrade -y
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update && sudo apt install filebeat -y
注意:若需安装其他版本,可将
7.x替换为目标版本号(如8.x)。
Filebeat的主配置文件位于/etc/filebeat/filebeat.yml,需修改以下核心部分:
指定要收集的日志文件路径,支持通配符(如*.log)。例如,收集系统日志(syslog、auth.log)和Apache日志:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/syslog
- /var/log/auth.log
- /var/log/apache2/*.log
ignore_older: 72h # 忽略超过72小时的旧日志(可选)
将日志发送到Elasticsearch(推荐)或Logstash:
output.elasticsearch:
hosts: ["localhost:9200"]
index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}" # 按日期分割索引
output.logstash:
hosts: ["localhost:5044"]
Filebeat提供system、nginx、mysql等预构建模块,自动配置输入、解析规则和Kibana仪表板。例如,启用system模块:
sudo filebeat modules enable system
模块配置文件位于/etc/filebeat/modules.d/system.yml,可根据需求调整。
sudo systemctl start filebeat
sudo systemctl enable filebeat
sudo systemctl status filebeat
若状态显示active (running),则说明服务已启动。
通过日志排查配置错误:
sudo journalctl -u filebeat -f
使用curl命令检查Elasticsearch中的索引:
curl -X GET "localhost:9200/_cat/indices?v"
若看到filebeat-*开头的索引,说明数据已成功发送。
若未安装Kibana,可通过以下命令安装:
sudo apt install kibana -y
sudo systemctl start kibana
sudo systemctl enable kibana
访问http://<服务器IP>:5601进入Kibana界面。
filebeat-*(匹配Filebeat创建的索引)。@timestamp),完成创建。filebeat-*索引模式。message、status、clientip),或使用KQL(Kibana Query Language)查询(如status: 500查找500错误)。若日志是多行的(如Java异常堆栈),需配置multiline选项。例如,合并以^[^\[]开头的行(非时间戳行):
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/app/*.log
multiline.pattern: '^[^\[]'
multiline.negate: true
multiline.match: after
若日志为JSON格式,可自动解析字段:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/app/json.log
json.keys_under_root: true # 将JSON字段提升到根级别
json.add_error_key: true # 添加错误字段(解析失败时)
通过processors对日志数据进行预处理(如删除敏感字段、重命名字段):
processors:
- drop_fields:
fields: ["password", "credit_card"]
- rename:
fields:
- from: "src_ip"
to: "clientip"
将上述配置添加到filebeat.inputs对应的输入项中。
通过以上步骤,即可在Ubuntu系统上使用Filebeat完成日志收集、传输,并通过Kibana实现日志分析与可视化。