1. 安装Filebeat
在CentOS系统上安装Filebeat,推荐通过Elastic官方YUM仓库安装(支持版本管理和自动更新)。首先更新系统并导入Elastic GPG密钥,然后添加仓库并安装:
sudo yum update -y
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
echo -e "[elasticsearch-7.x]\nname=Elasticsearch repository for 7.x packages\nbaseurl=https://artifacts.elastic.co/packages/7.x/yum\ngpgcheck=1\ngpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch\nenabled=1\nautorefresh=1\ntype=rpm-md" | sudo tee -a /etc/yum.repos.d/elasticsearch.repo
sudo yum install filebeat -y
安装完成后,Filebeat配置文件默认位于/etc/filebeat/filebeat.yml。
2. 配置Filebeat
配置Filebeat的核心是定义输入源、输出目标及可选处理器/模块:
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}" # 按日期生成索引,便于管理
dissect或grok处理器解析日志格式(如JSON、键值对)。例如,解析包含时间戳、日志级别和消息的日志:filebeat.inputs:
- type: log
paths: ["/var/log/myapp/*.log"]
processors:
- dissect:
tokenizer: "%{timestamp} %{level} %{message}" # 按空格分割日志
field: "message" # 从message字段提取
target_prefix: "" # 直接添加到根字段
sudo filebeat modules enable nginx
启用后会自动加载/etc/filebeat/modules.d/nginx.yml配置。3. 启动与验证Filebeat
配置完成后,启动Filebeat服务并设置为开机自启:
sudo systemctl daemon-reload
sudo systemctl start filebeat
sudo systemctl enable filebeat
验证Filebeat运行状态:
sudo systemctl status filebeat # 查看服务状态(应为"active (running)")
查看Filebeat日志确认是否成功发送数据到Elasticsearch:
sudo tail -f /var/log/filebeat/filebeat
通过Elasticsearch API检查索引是否存在(如filebeat-*):
curl -X GET "localhost:9200/_cat/indices?v"
若索引存在且状态为"green",说明Filebeat已成功发送日志。
4. 使用Kibana查看与分析日志
安装并配置Kibana后,通过浏览器访问http://<kibana_host>:5601,按以下步骤操作:
filebeat-*(匹配Filebeat生成的索引),选择时间字段(如@timestamp),完成创建。message字段过滤或搜索特定日志(如message: "ERROR")。5. 可选优化:日志解析与模块使用
json.keys_under_root: true,将JSON字段直接提取到根层级,便于查询:filebeat.inputs:
- type: log
paths: ["/var/log/myapp/json.log"]
json.keys_under_root: true
json.add_error_key: true # 添加错误字段(若解析失败)