1. 安装Filebeat
在CentOS上安装Filebeat,推荐通过Elastic官方YUM仓库安装(以7.x版本为例):
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearchecho "[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。2. 配置Filebeat
配置文件位于/etc/filebeat/filebeat.yml,需设置输入源、输出目标及可选的处理器/模块:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log # 系统日志
- /var/log/nginx/*.log # Nginx日志
output.elasticsearch:
hosts: ["localhost:9200"] # Elasticsearch地址
index: "filebeat-%{+yyyy.MM.dd}" # 索引格式:filebeat-年份.月份.日期
dissect或json处理器解析字段。例如,用dissect解析timestamp level message格式的日志:processors:
- dissect:
tokenizer: "%{timestamp} %{level} %{message}"
field: "message" # 从message字段提取
target_prefix: "" # 直接添加到根字段
filebeat modules enable nginx # 启用Nginx模块
启用后,模块会自动识别/var/log/nginx/access.log和/var/log/nginx/error.log,无需手动配置paths。3. 启动与验证Filebeat
sudo systemctl start filebeat
sudo systemctl enable filebeat
sudo systemctl status filebeat(显示“active (running)”即为成功)。filebeat test config -e(无错误输出则配置正确)。sudo tail -f /var/log/filebeat/filebeat(确认是否成功读取日志文件)。4. 在Kibana中查看与分析日志
http://<kibana_host>:5601),进入Management > Index Patterns,创建索引模式(如filebeat-*),匹配Filebeat生成的索引。level: ERROR)筛选日志。5. 可选:优化与扩展
grok处理器(需提前定义模式)提取更多字段,例如解析Apache访问日志中的IP、URL、状态码。