我如何匹配火花日志模式在grok



我实际上正在分析一些日志数据,并试图实现spark日志的grok解析器。

实际上,这是spark日志的一个输出:

14/04/14 18:51:52 INFO Client: Command for the ApplicationMaster: $JAVA_HOME/bin/java -server -Xmx640m -Djava.io.tmpdir=$PWD/tmp org.apache.spark.deploy.yarn.ApplicationMaster --class SimpleApp --jar ./spark-example-1.0.0.jar --args 'yarn-standalone' --worker-memory 1024 --worker-cores 1 --num-workers 3 1> <LOG_DIR>/stdout 2> <LOG_DIR>/stderr

这是我之前试过的grok滤镜:

(?<logtime>d{2}/d{2}/d{2} d{2}:d{2}:d{2})%{SPACE}%{LOGLEVEL:level}%{SPACE}%{WORD:srcclass}:%{SPACE}%{GREEDYDATA:data}"

这对我不起作用。有人能帮帮我吗?

多谢!

你就快成功了。唯一的问题是你的grok模式的末尾的双引号,如果你把它去掉,你就没事了。你也不需要%{SPACE}模式,除非你想捕获那些空格。

这是我的工作:

(?<logtime>d{2}/d{2}/d{2} d{2}:d{2}:d{2}) %{LOGLEVEL:level} %{WORD:srcclass}: %{GREEDYDATA:data}

它会产生这个

{
  "logtime": [
    [
      "14/04/14 18:51:52"
    ]
  ],
  "level": [
    [
      "INFO"
    ]
  ],
  "srcclass": [
    [
      "Client"
    ]
  ],
  "data": [
    [
      "Command for the ApplicationMaster: $JAVA_HOME/bin/java -server -Xmx640m -Djava.io.tmpdir=$PWD/tmp org.apache.spark.deploy.yarn.ApplicationMaster --class SimpleApp --jar ./spark-example-1.0.0.jar --args 'yarn-standalone' --worker-memory 1024 --worker-cores 1 --num-workers 3 1> <LOG_DIR>/stdout 2> <LOG_DIR>/stderr"
    ]
  ]
}

最新更新