【问题标题】:Filebeat to Kafka to Logstash: Tages are not appearing as expectedFilebeat 到 Kafka 到 Logstash:标签未按预期显示
【发布时间】:2020-06-30 13:04:04
【问题描述】:

我正在尝试在 Filebeat 和 Logstash 之间实现 Kafka。

当向 Kafka 发送文件节拍(它以文本格式出现)时,同样会发送到 Logstash。为此,我假设 Logstash 无法处理输入。

这是数据来自 Kafka 和直接从 Filebeat 到 Logstash 时的不同之处。

来自卡夫卡:

{
       "message" => "nice",
          "tags" => [
        [0] "kafka-stream"
    ],
    "@timestamp" => 2020-06-30T08:29:29.071Z,
      "@version" => "1"
}
{
       "message" => "{\"@timestamp\":\"2020-06-30T08:34:28.178Z\",\"@metadata\":{\"beat\":\"filebeat\",\"type\":\"_doc\",\"version\":\"7.8.0\"},\"agent\":{\"hostname\":\"Smits-MacBook-Pro.local\",\"ephemeral_id\":\"b9779246-3cc9-408b-83ac-e69eeef3cd28\",\"id\":\"864be1a9-e233-4d41-8624-cf94e916a0b7\",\"name\":\"Smits-MacBook-Pro.local\",\"type\":\"filebeat\",\"version\":\"7.8.0\"},\"log\":{\"offset\":11341,\"file\":{\"path\":\"/Users/Smit/Downloads/chrome/observability/spring_app_log_file.log\"}},\"message\":\"2020-06-30 16:34:20.328  INFO 63741 --- [http-nio-8080-exec-7] c.e.o.controller.HomeController          : AUDIT_LOG >> customer id a8703\",\"tags\":[\"observability\",\"audit\"],\"input\":{\"type\":\"log\"},\"ecs\":{\"version\":\"1.5.0\"},\"host\":{\"name\":\"Smits-MacBook-Pro.local\"}}",
          "tags" => [
        [0] "kafka-stream"
    ],
    "@timestamp" => 2020-06-30T08:34:29.222Z,
      "@version" => "1"
}

来自 Filebeat:

{
          "type" => "log",
    "@timestamp" => 2020-06-30T04:37:18.935Z,
      "@version" => "1",
           "log" => {
          "file" => {
            "path" => "/Users/Smit/Downloads/chrome/observability/spring_app_log_file.log"
        },
        "offset" => 10846
    },
         "input" => {
        "type" => "log"
    },
           "ecs" => {
        "version" => "1.5.0"
    },
       "message" => "2020-06-30 12:37:16.900  INFO 63741 --- [http-nio-8080-exec-3] c.e.o.controller.HomeController          : AUDIT_LOG >> customer id d6ebe",
          "tags" => [
        [0] "observability",
        [1] "audit",
        [2] "beats",
        [3] "beats_input_codec_plain_applied"
    ],
      "hostname" => {
        "name" => "Smits-MacBook-Pro.local"
    },
         "agent" => {
                "type" => "filebeat",
             "version" => "7.8.0",
                "name" => "Smits-MacBook-Pro.local",
            "hostname" => "Smits-MacBook-Pro.local",
        "ephemeral_id" => "1ca4e838-eeaa-4b87-b52a-89fa385865b8",
                  "id" => "864be1a9-e233-4d41-8624-cf94e916a0b7"
    }
}

现在,当我在 Kibana 中可视化数据时:

这是从Filebeat直接发送日志到Logstash时的输出:

这是当日志从 Filebeat 到 Kafka 到 Logstash 时的输出:

如果您需要更多信息,请告诉我。

ELK 中每个产品的配置也在这里:https://github.com/shah-smit/observability-spring-demo

【问题讨论】:

    标签: apache-kafka logstash elastic-stack filebeat


    【解决方案1】:

    当您将日志直接发送到 logstash 时,您使用的是 beats 协议,该协议会为您的事件添加一些“额外”字段:

    https://www.elastic.co/guide/en/beats/filebeat/current/exported-fields-beat-common.html

    我不太确定 kafka 输出使用哪种协议,但可以肯定的是,这不会添加 beats 额外字段。

    因此,当您将日志发送到 kafka,然后从 logstash 中读取它们时,您的字段会更少。

    【讨论】:

      猜你喜欢
      • 2017-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-11
      • 2020-10-26
      • 2020-10-01
      相关资源
      最近更新 更多