根据操作系统选择对应安装方式:
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.12.0-x86_64.rpm
sudo rpm -ivh filebeat-8.12.0-x86_64.rpm
/usr/local/filebeat),或通过APT仓库安装。核心配置文件位于/etc/filebeat/filebeat.yml(Linux)或安装目录下的filebeat.yml(Windows)。需修改以下关键部分:
通过filebeat.inputs配置需要收集的日志文件路径、类型及过滤规则:
filebeat.inputs:
- type: log # 输入类型为日志文件
enabled: true
paths:
- /var/log/nginx/access.log # Nginx访问日志路径
- /var/log/syslog # 系统日志路径
exclude_files: ['\.gz$'] # 排除.gz压缩文件
tags: ["web", "nginx"] # 添加标签便于分类
fields:
app_name: "my_nginx" # 自定义字段,标识应用名称
fields_under_root: true # 将自定义字段提升到事件根层级
使用processors对日志进行结构化处理,例如解析Nginx的access.log(默认格式为remote_addr - remote_user [time_local] "request" status body_bytes_sent):
processors:
- dissect: # 使用dissect处理器按分隔符拆分日志
tokenizer: "%{remote_addr} - %{remote_user} [%{time_local}] \"%{request}\" %{status} %{body_bytes_sent}"
field: "message" # 原始日志字段
target_prefix: "" # 解析后的字段存入根层级(如remote_addr、request)
或使用grok处理器处理复杂日志模式(需提前定义grok模式):
processors:
- grok:
patterns:
- '%{COMBINEDAPACHELOG}' # 内置的Apache日志模式
field: "message"
将日志发送到Elasticsearch(最常用)或其他存储系统(如Logstash、Kafka):
output.elasticsearch:
hosts: ["localhost:9200"] # Elasticsearch地址
index: "nginx-logs-%{+yyyy.MM.dd}" # 动态生成日期索引(如nginx-logs-2025.11.04)
username: "elastic" # 认证用户名(若启用了安全功能)
password: "your_password" # 认证密码
若需通过Logstash转发(用于复杂过滤):
output.logstash:
hosts: ["localhost:5044"] # Logstash监听端口
Filebeat内置了Nginx、MySQL、System等模块,预定义了输入、解析规则和Kibana Dashboard,无需手动配置:
# 启用Nginx模块
filebeat modules enable nginx
# 查看模块配置(可修改modules.d/nginx.yml)
filebeat modules list
sudo systemctl start filebeat # 启动服务
sudo systemctl enable filebeat # 设置开机自启
filebeat test config -e # 检查配置文件语法是否正确
sudo systemctl status filebeat # 确认服务运行状态
/var/log/filebeat/filebeat),确认是否有日志发送到Elasticsearch:tail -f /var/log/filebeat/filebeat
安装并配置Kibana:
若未安装Kibana,下载并启动(默认地址http://localhost:5601),配置kibana.yml中的elasticsearch.hosts指向Elasticsearch地址。
创建索引模式:
进入Kibana→Stack Management→Index Patterns,点击“Create index pattern”,输入索引名称(如nginx-logs-*),选择时间字段(如@timestamp),完成创建。
探索日志数据:
进入Discover页面,选择刚创建的索引模式,即可查看原始日志。可通过Filter栏添加条件(如status: 500)筛选错误日志。
可视化与仪表盘:
日志轮换处理:
Filebeat默认会监控文件变化(如logrotate切割后的新文件),确保filebeat.yml中close_inactive(文件闲置超时关闭)设置合理(如close_inactive: 5m),避免重复读取旧日志。
性能调优:
若日志量较大,可调整bulk_max_size(批量发送的事件数,默认50)和queue.mem.events(内存队列大小,默认4096),提高吞吐量:
output.elasticsearch:
bulk_max_size: 200
queue.mem:
events: 8192
安全配置:
启用Elasticsearch和Kibana的安全功能(如TLS加密、用户认证),在Filebeat配置中添加对应的证书路径和认证信息:
output.elasticsearch:
ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
username: "elastic"
password: "your_secure_password"
监控Filebeat自身:
启用X-Pack监控(需Elastic Stack 6.3+),在filebeat.yml中开启:
xpack.monitoring.collection.enabled: true
xpack.monitoring.elasticsearch.hosts: ["localhost:9200"]
可在Kibana的Monitoring页面查看Filebeat的运行状态(如CPU使用率、日志发送延迟)。
通过以上步骤,即可完成Filebeat的部署与日志分析流程,实现对应用程序、系统等日志的集中收集、存储、可视化与深度分析。