使用 Filebeat 监控 Linux 系统日志
一 安装与准备
- 在 RHEL/CentOS 系列:
- 安装:执行 sudo yum install -y filebeat;或下载 RPM 包后用 sudo rpm -ivh filebeat-<版本>-x86_64.rpm 安装。
- 配置文件默认路径:/etc/filebeat/filebeat.yml。
- 在 Debian/Ubuntu 系列:
- 使用 apt 安装 Filebeat(官方仓库),配置文件同样位于 /etc/filebeat/filebeat.yml。
- 安装完成后,建议先备份原始配置:sudo cp /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.bak。
二 配置 Filebeat 采集系统日志
- 启用系统模块(推荐)
- 执行:sudo filebeat modules enable system,如需自定义模块参数,编辑 /etc/filebeat/modules.d/system.yml。
- 说明:Filebeat 提供 system、auditd、nginx、apache、mysql 等模块,可一键完成常见日志的采集与解析。
- 最小可用配置示例(直接读文件,适合快速验证)
三 启动与验证
- 启动与开机自启
- 启动:sudo systemctl start filebeat
- 开机自启:sudo systemctl enable filebeat
- 查看状态:sudo systemctl status filebeat
- 查看运行日志(排查问题)
- 使用 journalctl:sudo journalctl -u filebeat -f
- 快速自检
- 确认进程与端口连通性(若输出到本机 ES):curl -X GET “localhost:9200”。
四 输出到 Elasticsearch 与 Kibana 可视化
- 若输出到 Elasticsearch
- 在 Kibana 访问 http://:5601,进入 Stack Management → Index Patterns,创建索引模式匹配 system-logs-*,时间字段选择 @timestamp,保存后即可在 Discover 查看。
- 若经由 Logstash 处理再入 ES
五 常见问题与优化
- 多行日志(如 /var/log/messages 的堆栈)
- 大文件与性能
- 调整 harvester.max_bytes(单次事件最大字节数),并确保与系统日志轮转后的单文件大小匹配,避免截断。
- 忽略历史旧文件
- 使用 ignore_older(如 24h、7d)跳过过久未更新的文件,减少启动扫描压力。
- 日志轮转适配
- 配合 logrotate 正常轮转;Filebeat 会跟踪 inode 与偏移,一般无需额外处理。
- 调试技巧
- 前台运行查看事件:filebeat -e -c /etc/filebeat/filebeat.yml -d “publish”;如需强制从文件开头重读,可清理注册表目录(生产慎用):/var/lib/filebeat/registry(或解压包部署时的 data/registry)。