0

我从普通 IIS 日志切换到高级 IIS 日志,并且在将日志条目正确解析到我的 Elastic Search / Kibana 设置时遇到了一些问题。

有问题的条目是 cs_cookie 条目。

该值的条目可以是这样的:

".ASPXANONYMOUS=lCoa4IyW0AEkAAAAMWQzM2Y3YTktZTE4MC00N2Q0LWFjNzEtMmQ3NzFlODk2ZDA50; DNNPersonalization=<profile><item key=""Usability:UserMode9"" type=""System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b766a5c561934e089""><string>VIEW</string></item></profile>"

所以它包含多个空格和引号。我使用了grok 调试器,但找不到解决方案,请告诉我。

4

1 回答 1

1

要构建图案,请从左侧开始,并在向右移动时检查每一块。

从 %{GREEDYDATA:remainder} 开始,这会将所有内容匹配到一个名为“remainder”的字段中。

您的示例字符串以引号开头,因此添加:

"%{GREEDYDATA:remainder}

现在剩余的将不再有初始报价。

下一段看起来像一个以分号结尾的键/值对,所以添加:

"%{NOTSPACE:key1}=%{NOTSPACE:value1}; %{GREEDYDATA:remainder}

查看“剩余”中剩下的内容,从高层次上看,另一个键/值对。您可以将其拆分出来,或者添加更详细的解析以从第二个值内部获取片段。

由于您的示例实际上是两个键/值对,因此您可以使用 kv{} 过滤器进行初始拆分,然后根据需要 grok{} 这些部分。

于 2015-04-09T19:50:05.087 回答