【问题标题】:How to implement Logstash filters to handle different logfile formats/types如何实现 Logstash 过滤器来处理不同的日志文件格式/类型
【发布时间】:2019-05-07 15:12:44
【问题描述】:

我正在摄取许多日志,包括 /var/log/syslog/var/log/messages,还有一些通用事件格式 (CEF) 的专有日志) 以及其他各种其他格式的专有日志。这些日志的条目从运行在各个节点上的 Filebeat 拍摄到 Logstash,例如:

filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /var/log/messages
      - /var/log/syslog
      - /var/log/acme/audit.log
      - /var/log/acme/debug.log
      - /var/log/acme/console.log

我为这些更专有的日志编写了dissect 过滤器。就其本身而言,每个过滤器都可以工作,将消息字段重新映射,将键值对等分解为我想要的。

我不知道该怎么做是配置 Logstash 并同时激活所有这些 dissect 过滤器,方法是通过文件系统路径(或来源)在右侧 dissect 代码日志上运行一个日志,或者通过注意一个 dissect 子句的失败并尝试另一个。

这可以按照我暗示的方式在 Logstash 中完成吗?如果没有,Filebeat 中是否有配置可以在日志条目到达 Logstash 之前区分它们,以便 Logstash 为不同的日志条目运行不同的过滤器?

【问题讨论】:

标签: logstash filebeat


【解决方案1】:

(不知道为什么 baudsp 没有发布他的评论作为答案,但我会让这个更完整。)

解决方案在 Elastic 文档中 https://www.elastic.co/guide/en/beats/filebeat/current/exported-fields-log.html。用于判断在任何给定情况下哪些字段可用的方法是:

  1. 在没有定义过滤器的 Logstash 中触发日志条目。
  2. 在 Kibana 中创建索引模式并检查与数据关联的字段列表。
  3. 上面 #2 中的列表以及 Elastic 文档的导出字段列表中的任何内容都可以在您的过滤器中编码(即:用于条件表达式)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    相关资源
    最近更新 更多