centos filebeat如何进行日志分析
导读:在 CentOS 上使用 Filebeat 进行日志分析 一 架构与准备 组件分工:Filebeat 负责采集与轻量处理日志,Elasticsearch 负责存储与检索,Kibana 负责可视化与交互分析。 环境要求:确保 CentOS...
在 CentOS 上使用 Filebeat 进行日志分析
一 架构与准备
- 组件分工:Filebeat 负责采集与轻量处理日志,Elasticsearch 负责存储与检索,Kibana 负责可视化与交互分析。
- 环境要求:确保 CentOS 可访问 Elasticsearch 与 Kibana(同机或网络可达),开放端口 9200/9300(ES)与 5601(Kibana)。
- 安全建议:生产环境启用 TLS/认证 与最小权限;本文示例为本地或受信网络演示,便于快速上手。
二 安装与配置 Filebeat
- 安装方式(二选一)
- YUM 安装(推荐)
- 导入 GPG 并添加仓库:
- sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
- sudo tee /etc/yum.repos.d/elasticsearch.repo < < EOF [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 EOF
- 安装:sudo yum install filebeat -y
- 导入 GPG 并添加仓库:
- RPM 安装:sudo rpm -ivh filebeat--x86_64.rpm
- YUM 安装(推荐)
- 最小可用配置(/etc/filebeat/filebeat.yml)
- 采集系统日志并输出到本地 Elasticsearch:
- filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
- /var/log/messages fields: type: systemlog fields_under_root: true exclude_lines: [“^DBG”] exclude_files: [“.gz”]
- type: log
enabled: true
paths:
- output.elasticsearch:
- hosts: [“localhost:9200”] index: “system-logs-%{ +yyyy.MM.dd} ”
- filebeat.inputs:
- 采集系统日志并输出到本地 Elasticsearch:
- 校验与启动
- 校验配置:sudo filebeat test config
- 启动与自启:sudo systemctl start filebeat & & sudo systemctl enable filebeat
- 查看服务状态:sudo systemctl status filebeat
- 实时查看 Filebeat 日志:sudo journalctl -u filebeat -f
- 验证 ES 是否收到数据:curl -X GET “localhost:9200/_cat/indices?v”(应见到以 system-logs- 或 filebeat- 开头的索引)
三 解析与模块增强
- 使用模块快速解析常见应用日志(以 Nginx 为例)
- 启用模块:sudo filebeat modules enable nginx
- 导入 Nginx 仪表盘:在 Kibana 中进入 Dashboard,打开 [Filebeat Nginx] Overview ECS 仪表盘查看指标与样例分析
- 使用处理器进行字段提取与清洗
- JSON 日志解析(将 JSON 字符串展开为字段)
- processors:
- decode_json_fields: fields: [“message”] target: “” overwrite_keys: true
- processors:
- 键值/分隔符解析(dissect)
- processors:
- dissect: tokenizer: “%{ timestamp} %{ level} %{ message} ” field: “message” target_prefix: “”
- processors:
- 字段管理(添加/删除/重命名)
- processors:
- add_fields: fields: env: “prod”
- drop_fields: fields: [“agent.ephemeral_id”, “input.type”]
- processors:
- JSON 日志解析(将 JSON 字符串展开为字段)
- 常用输入与处理器组合示例
- 多路径采集 + 类型标记 + 排除调试行
- filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
- /var/log/messages fields: type: systemlog fields_under_root: true exclude_lines: [“^DBG”] exclude_files: [“.gz”]
- type: log
enabled: true
paths:
- processors:
- add_fields: fields: host_type: “centos”
- filebeat.inputs:
- 输出到 Elasticsearch(按日索引)
- output.elasticsearch:
- hosts: [“elasticsearch-host:9200”] index: “system-logs-%{ +yyyy.MM.dd} ”
- output.elasticsearch:
- 如需更强处理能力,可接入 Logstash 进行复杂解析与聚合后再写入 ES
- 多路径采集 + 类型标记 + 排除调试行
四 在 Kibana 中分析与告警
- 创建索引模式
- 访问 http://< kibana_host> :5601,进入 Management → Index Patterns,创建匹配 system-logs-* 或 filebeat-* 的模式,设置时间字段为 @timestamp
- 日志检索与可视化
- 在 Discover 中按时间筛选、按字段(如 host.name、log.level、message)构建查询
- 在 Dashboard 中创建可视化图表(柱状/折线/饼图),组合为系统/应用监控大盘
- 告警与监控
- 在 Kibana Alerting & Actions 中创建规则(如:ERROR 级别日志 5 分钟内超过阈值、特定关键字出现)
- 可结合 Elasticsearch Watcher(7.x)或 Kibana 告警 实现邮件/钉钉/企业微信通知
- 定期在 Stack Monitoring 查看 Filebeat/ES/Kibana 资源与健康状态
五 运维与安全建议
- 日志轮转与保留
- 使用 logrotate 管理本地日志轮转;在 Elasticsearch 侧通过 Index Lifecycle Management(ILM) 设置热/温/冷/删除阶段,控制存储成本
- 性能与稳定性
- 适度调整 bulk_max_size、worker 数量与 queue.spool 等参数;避免采集过多无关文件
- 安全加固
- 启用 TLS 加密与 API/角色权限 控制;限制 Filebeat 仅能读取目标日志目录
- 版本与升级
- 统一 Elastic Stack 版本,变更前在测试环境验证;保留回滚方案
- 故障排查
- 使用 filebeat test config/test output 校验配置与输出连通性;通过 journalctl 与 Kibana 日志定位问题
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos filebeat如何进行日志分析
本文地址: https://pptw.com/jishu/760839.html
