根据操作系统选择对应安装方式:

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.12.0-x86_64.rpmsudo 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: truepaths: - /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 listsudo 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: 200queue.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: truexpack.monitoring.elasticsearch.hosts: ["localhost:9200"]可在Kibana的Monitoring页面查看Filebeat的运行状态(如CPU使用率、日志发送延迟)。
通过以上步骤,即可完成Filebeat的部署与日志分析流程,实现对应用程序、系统等日志的集中收集、存储、可视化与深度分析。