在 CentOS 上用 Filebeat 监控系统日志的完整步骤
一 准备与安装
- 以 root 或具备 sudo 权限的账号操作,更新系统并安装 Filebeat:
- 更新系统:sudo yum update -y
- 导入 Elastic GPG 并添加仓库(以 7.x 为例):
- 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 /etc/yum.repos.d/elasticsearch.repo
- 安装 Filebeat:sudo yum install filebeat -y
- 说明:也可直接下载 RPM 包安装(示例版本 7.14.0):wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.14.0-x86_64.rpm && sudo rpm -vi filebeat-7.14.0-x86_64.rpm。
二 配置 Filebeat 收集系统日志
- 编辑配置文件:sudo vi /etc/filebeat/filebeat.yml
- 推荐最小配置(直接写入 Elasticsearch,按日创建索引):
- filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/messages
- /var/log/secure
- /var/log/audit/audit.log
ignore_older: 72h
close_inactive: 1m
- output.elasticsearch:
hosts: [“localhost:9200”]
index: “filebeat-%{+yyyy.MM.dd}”
- 说明:
- 仅收集系统关键日志时,将 paths 精确为 /var/log/messages、/var/log/secure、/var/log/audit/audit.log 等;需要更大范围时可用 /var/log/*.log。
- 生产环境建议使用 filestream 输入类型替代 log,以获得更好的文件处理与恢复能力(示例见“进阶优化”)。
- 若 Elasticsearch 不在本机,将 hosts 改为实际地址(如 “es.example.com:9200”)。
三 启动与验证
- 启动并设为开机自启:
- sudo systemctl start filebeat
- sudo systemctl enable filebeat
- 查看服务状态:sudo systemctl status filebeat
- 查看 Filebeat 自身日志(排错常用):sudo tail -f /var/log/filebeat/filebeat
- 若输出到本机 Elasticsearch,验证索引是否生成:
- curl -X GET “localhost:9200/_cat/indices?v” | grep filebeat
- 使用 Kibana 可视化(可选):
- 访问 http://<kibana_host>:5601
- 在 Kibana 创建索引模式,匹配 filebeat-*
- 打开 Discover 查看实时日志
四 进阶优化与常见问题
- 输入类型与性能
- 优先使用 filestream:type: filestream,配合 harvester 与 scan_frequency 调整采集与扫描频率,提升大文件与滚动日志场景的稳定性与效率。
- 可靠性与状态
- 避免误删 /var/lib/filebeat/registry(注册表记录读取偏移);若状态丢失可能导致重复发送。
- 处理能力与批量
- 适度提高批量发送与并发参数(如 output.elasticsearch.bulk_max_size),并减少不必要的处理器,降低 CPU 与内存开销。
- 安全与合规
- 跨机房/公网传输建议启用 TLS/HTTPS 与身份认证;Elasticsearch 与 Kibana 建议开启安全配置与访问控制。