elasticsearch 消息中带有特殊字符的Grok解析,elasticsearch,logstash,logstash-grok,elastic-stack,elasticsearch,Logstash,Logstash Grok,Elastic Stack" /> elasticsearch 消息中带有特殊字符的Grok解析,elasticsearch,logstash,logstash-grok,elastic-stack,elasticsearch,Logstash,Logstash Grok,Elastic Stack" />

elasticsearch 消息中带有特殊字符的Grok解析

elasticsearch 消息中带有特殊字符的Grok解析,elasticsearch,logstash,logstash-grok,elastic-stack,elasticsearch,Logstash,Logstash Grok,Elastic Stack,在Logstash/grok中,如何解析丹麦字母表中带有特殊字符(如æå)的消息 我正在尝试分析以下消息(IIS日志文件): 按照这种模式: %{TIMESTAMP_ISO8601:logTimestamp} %{NOTSPACE:server} %{IP:serverIp} %{WORD:method} %{URIPATHPARAM:page} %{NOTSPACE:querystring} %{NUMBER:port} %{NOTSPACE:username} %{IP:clientIp}

在Logstash/grok中,如何解析丹麦字母表中带有特殊字符(如æå)的消息

我正在尝试分析以下消息(IIS日志文件):

按照这种模式:

%{TIMESTAMP_ISO8601:logTimestamp} %{NOTSPACE:server} %{IP:serverIp} %{WORD:method} %{URIPATHPARAM:page} %{NOTSPACE:querystring} %{NUMBER:port} %{NOTSPACE:username} %{IP:clientIp} %{NOTSPACE:httpVersion} %{NOTSPACE:useragent} %{NOTSPACE:referer} %{NOTSPACE:siteDomain} %{NUMBER:status} %{NUMBER:substatus} %{NUMBER:win32Status} %{NUMBER:bytesSent:int} %{NUMBER:bytesReceived:int} %{NUMBER:timetaken:int}
我一直在调试这个工具:它似乎被消息中的æ字符卡住了

我正在使用编码设置为UTF-8的Filebeat日志传送程序,IIS也以UTF-8输出日志。它直接运到Logstash

有什么想法吗?

根据关于统一资源定位器(URL)的信息:

URL仅使用US-ASCII编码字符集的图形可打印字符写入。US-ASCII中不使用八位字节80-FF十六进制,八位字节00-1F和7F十六进制表示控制字符;这些必须被编码

由于字符
æ
,即unicode E6,处于80-FF范围内,因此需要将其编码为等效的
%C3%A6
十六进制。如果您的URL被正确地编码为
/test/char%C3%A6foobar
,就像在referer URL中一样,那么grok将正确地解析它

更新


如果您想处理那些非ASCII字符,而不是使用<代码> uriPasPARAM预定义模式,可以建立一个并包含您想考虑的非ASCII字符。但IIS日志并非如此。奇怪的是,IIS只是在引用URL中输入字符。有没有办法用Logstash来处理这个问题?谢谢Val。我会试着调查一下。

%{TIMESTAMP_ISO8601:logTimestamp} %{NOTSPACE:server} %{IP:serverIp} %{WORD:method} %{URIPATHPARAM:page} %{NOTSPACE:querystring} %{NUMBER:port} %{NOTSPACE:username} %{IP:clientIp} %{NOTSPACE:httpVersion} %{NOTSPACE:useragent} %{NOTSPACE:referer} %{NOTSPACE:siteDomain} %{NUMBER:status} %{NUMBER:substatus} %{NUMBER:win32Status} %{NUMBER:bytesSent:int} %{NUMBER:bytesReceived:int} %{NUMBER:timetaken:int}