如何在grok中匹配kafka日志模式

时间:2016-02-01 10:59:30

标签: logstash logstash-grok

我想解析kafka日志。这是一个示例日志文本。

[2016-02-01 15:29:02,039] INFO [Replica state machine on controller 0]: Invoking state change to OnlineReplica for replicas [Topic=elk-test,Partition=0,Replica=0] (kafka.controller.ReplicaStateMachine)
[2016-02-01 15:33:02,457] TRACE [Controller 0]: checking need to trigger partition rebalance (kafka.controller.KafkaController)
[2016-02-01 15:33:02,458] DEBUG [Controller 0]: preferred replicas by broker Map(0 -> Map([elk-test,0] -> List(0))) (kafka.controller.KafkaController)
[2016-02-01 15:33:02,480] DEBUG [Controller 0]: topics not in preferred replica Map() (kafka.controller.KafkaController)
[2016-02-01 15:58:02,447] TRACE [Controller 0]: leader imbalance ratio for broker 0 is 0.000000 (kafka.controller.KafkaController)

我尝试使用grok-debugger编写许多新模式以匹配grok中的上述日志。但是我一直都失败了。

我希望任何期望都能帮助我找到上述日志的grok模式。谢谢。

我试过的模式:

 \[%{TIMESTAMP_ISO8601:timestamp}\] \[%{LOGLEVEL:loglevel}\] %{GREEDYDATA:message}

我想将 controller 0 提取为单独的字段。

1 个答案:

答案 0 :(得分:0)

你可以这样:

\[%{TIMESTAMP_ISO8601:timestamp}\]%{SPACE}%{LOGLEVEL:level}%{SPACE}\[(?<logger>[^\]]+)\]:%{SPACE}%{GREEDYDATA:message}