温馨提示×

filebeat能否对ubuntu日志进行过滤

小樊
34
2025-11-15 09:05:26
栏目: 智能运维

可行性与总体思路 可以。Filebeat 能在 Ubuntu 上读取并过滤系统及应用的日志(如 /var/log/syslog、/var/log/auth.log、/var/log/apache2/*.log),支持按路径、正则、时间、大小等进行采集侧过滤,也可启用 System 模块做结构化解析;复杂条件过滤与丰富处理能力建议交由 LogstashElasticsearch Ingest Pipeline 完成。

采集侧过滤常用配置

  • 按路径包含/排除
    • 包含:paths: [“/var/log/syslog”, “/var/log/apache2/*.log”]
    • 排除文件:exclude_files: [“.gz", ".zip”]
  • 按行内容包含/排除(正则)
    • 排除含 “ERROR” 或 “WARN” 的行:exclude_lines: [‘ERROR’, ‘WARN’]
    • 仅采集含 “CRON” 的行:include_lines: [‘CRON’]
  • 按时间/大小减少采集
    • 忽略 72 小时前的旧文件:ignore_older: 72h
  • 按文件通配与多输入
    • 多日志源:paths: [“/var/log/.log", "/var/log/nginx/.log”]
  • 快速示例(采集 syslog,排除 DEBUG 与空行)
    • filebeat.inputs:
      • type: log enabled: true paths: [“/var/log/syslog”] exclude_lines: [‘^DEBUG’, ‘^$’]
    • output.elasticsearch:
      • hosts: [“localhost:9200”] 说明:上述配置均写入 /etc/filebeat/filebeat.yml,修改后重启 Filebeat 生效。

使用模块与处理器增强过滤

  • 启用 System 模块并加载默认仪表盘/管道
    • 命令:filebeat modules enable system
    • 初始化:filebeat setup(将创建索引模板、Kibana 仪表盘等)
    • 说明:System 模块可对 syslog、auth、dpkg 等进行结构化解析,便于后续在 Kibana 中按字段过滤与可视化。
  • 使用 Processors 做字段级处理
    • 示例:processors:
      • add_cloud_metadata: ~
      • drop_event.when.regexp.message: ‘^DEBUG’ # 丢弃匹配正则的事件
      • add_fields: target: ‘’ fields: env: prod 说明:模块负责解析,processors 负责轻量条件处理;复杂逻辑建议放到 Logstash/Ingest。

复杂过滤建议与部署路径

  • 场景建议
    • 多条件组合、跨日志关联、grok 解析、丰富字段处理等,优先在 Logstash 的 filter 阶段完成;或在 Elasticsearch Ingest Pipeline 中做二次处理。
  • 典型部署
    • Filebeat → Logstash(5044)→ Elasticsearch:Filebeat 仅做采集与简单过滤,Logstash 负责过滤/解析/丰富,再写入 ES。
    • Filebeat → Elasticsearch:启用模块 + Ingest Pipeline 实现解析与过滤,减少组件依赖。
  • 快速 Logstash 片段(按字段条件丢弃)
    • filter { if [log][syslog][severity] == “debug” { drop {} } } 说明:Logstash 适合复杂过滤与处理;Filebeat 轻量采集与前置过滤可减轻后端压力。

0