Filebeat的安装需根据操作系统选择对应方式,常见系统步骤如下:
yum安装:sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
echo "[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md" | sudo tee -a /etc/yum.repos.d/elasticsearch.repo
sudo yum install filebeat -y
apt安装:sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install filebeat -y
Filebeat的主配置文件位于/etc/filebeat/filebeat.yml,需重点配置以下部分:
filebeat.inputs)指定要监控的日志文件路径及类型,必选配置:
filebeat.inputs:
- type: log # 输入类型为日志文件(推荐使用filestream替代log,性能更优)
enabled: true # 启用该输入源
paths: # 监控的日志文件路径(支持通配符)
- /var/log/*.log
- /var/log/myapp/*.log
ignore_older: 72h # 忽略超过72小时的旧日志(避免处理历史数据)
exclude_files: ['\.gz$'] # 排除.gz压缩文件(可选)
提示:若使用
filestream类型(Filebeat 7.0+推荐),可将type: log改为type: filestream,提升大文件处理效率。
output)将日志发送到指定后端,常见输出为Elasticsearch:
output.elasticsearch:
hosts: ["localhost:9200"] # Elasticsearch地址(多节点用逗号分隔)
index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}" # 动态索引名(含版本和日期)
若需输出到Logstash,可配置:
output.logstash:
hosts: ["localhost:5044"] # Logstash监听地址
setup.template)优化Elasticsearch索引性能,建议开启:
setup.template:
name: "filebeat" # 索引模板名称
pattern: "filebeat-*" # 匹配索引模式(与output.index一致)
settings:
index.number_of_shards: 1 # 分片数(根据数据量调整,小集群建议1-3)
index.codec: best_compression # 压缩编解码器(节省存储空间)
sudo systemctl start filebeat # 启动服务
sudo systemctl enable filebeat # 设置开机自启
sudo systemctl status filebeat # 查看服务状态(应为"active (running)")
以前台模式运行Filebeat,检查是否有错误:
sudo filebeat -e -c /etc/filebeat/filebeat.yml
若无报错,说明配置生效。
若日志为多行格式(如Java异常堆栈),需配置multiline处理器:
processors:
- multiline:
pattern: '^\[' # 匹配多行起始行(如"[2025-01-01")
negate: true # 反向匹配(非起始行合并到上一行)
match: after # 合并到上一行之后
使用dissect或grok处理器从日志中提取结构化字段:
processors:
- dissect:
tokenizer: "%{timestamp} %{loglevel} %{message}" # 日志格式模板
field: "message" # 原始日志字段
target_prefix: "" # 提取后字段前缀(为空则直接添加到根对象)
scan_frequency: 10s(每10秒扫描一次文件变化,默认10s)。harvester_limit: 1000(避免过多进程消耗资源)。bulk_max_size: 512(每次批量发送512条数据,提升吞吐量)。chown修改文件所有者)。filebeat test config -e命令测试配置文件语法。