Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch logstash/grok自定义文件_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Logging_Logstash_Logstash Grok - Fatal编程技术网 elasticsearch logstash/grok自定义文件,elasticsearch,logging,logstash,logstash-grok,elasticsearch,Logging,Logstash,Logstash Grok" /> elasticsearch logstash/grok自定义文件,elasticsearch,logging,logstash,logstash-grok,elasticsearch,Logging,Logstash,Logstash Grok" />

elasticsearch logstash/grok自定义文件

elasticsearch logstash/grok自定义文件,elasticsearch,logging,logstash,logstash-grok,elasticsearch,Logging,Logstash,Logstash Grok,我是ELK stack的全新用户。我在从日志中筛选出特定部分时遇到了一个小问题 示例日志: [2017-05-30 13:58:09,336] INFO [com.qwerty.test.core.services.impl.order.OrderEntryService] (OrderEntryService.java:5426) [http-/0.0.0.0:1111-111] {{CT,1496145487308}{IP,111.11.111.11}{JTX,1511059/176275

我是ELK stack的全新用户。我在从日志中筛选出特定部分时遇到了一个小问题

示例日志:

[2017-05-30 13:58:09,336] INFO  [com.qwerty.test.core.services.impl.order.OrderEntryService] (OrderEntryService.java:5426) [http-/0.0.0.0:1111-111] {{CT,1496145487308}{IP,111.11.111.11}{JTX,1511059/176275501}{OBJT,goodsMovement.reportsUtils.ConsignmentStocksList}{OPT,SQ}{PID,111111}{SS,SSCPLTMPRODPL}{TRT,SAP_LOGISTIC_REPORT}{UID,StudentSaSo-8}}: Saving order: K1010101
grok {
    match => { "message" => "(?<timestamp>%{YEAR}-%{MONTHNUM2}-%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND},%{NONNEGINT})\] %{LOGLEVEL:loglevel} * \[(?<logger>[A-Za-z0-9$_.]+)\] \(%{JAVAFILE:class}:%{NONNEGINT:line}\) \[%{NOTSPACE:thread}\] %{GREEDYDATA:message_TEST}"}
    }
和我的grok过滤器:

[2017-05-30 13:58:09,336] INFO  [com.qwerty.test.core.services.impl.order.OrderEntryService] (OrderEntryService.java:5426) [http-/0.0.0.0:1111-111] {{CT,1496145487308}{IP,111.11.111.11}{JTX,1511059/176275501}{OBJT,goodsMovement.reportsUtils.ConsignmentStocksList}{OPT,SQ}{PID,111111}{SS,SSCPLTMPRODPL}{TRT,SAP_LOGISTIC_REPORT}{UID,StudentSaSo-8}}: Saving order: K1010101
grok {
    match => { "message" => "(?<timestamp>%{YEAR}-%{MONTHNUM2}-%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND},%{NONNEGINT})\] %{LOGLEVEL:loglevel} * \[(?<logger>[A-Za-z0-9$_.]+)\] \(%{JAVAFILE:class}:%{NONNEGINT:line}\) \[%{NOTSPACE:thread}\] %{GREEDYDATA:message_TEST}"}
    }
grok{
match=>{“message”=>“(?%{YEAR}-%{MONTHNUM2}-%{MONTHDAY}%{HOUR}:%{MINUTE}:%{SECOND},%{NONNEGINT})\]%{LOGLEVEL:LOGLEVEL}*\[(?[A-Za-z0-9$\.]+)\]\%{JAVAFILE:class}:%{NONNEGINT:line})\[%{NOTSPACE:thread\]%{GREEDYDATA:message TEST}}
}
所以我需要过滤掉“ID”、“PID”、“IP”和“UID”,我不知道如何配置这个特定的定制模式。
我尝试使用来自的模式,但它对我不起作用

开始您的工作很好。不是最后一部分
%{greedyddata:message_TEST}
,它只会将消息的其余部分保存到
message_TEST
中,而是实际执行对象的解析。类似的操作会将对象中的
PID
IP
UID
字段保存到相应的变量中(请记住,此模式依赖于字段顺序):

现在我们来解释一下它的作用。外部一对花括号是对象的限制。然后,我们将处理对象内部由一对花括号限制的每个字段

  • 第一:打开花括号
    {
  • 然后,第一个内部字段是
    {CT,1496145487308}
    ,我们对保存它不感兴趣-所以只需告诉grok有一些字符串被花括号限制:
    {.*}
  • 接下来是我们需要保存的IP字段:
    {IP,111.11.111.11}
    。它以花括号开始,然后是我们必须保存的IP地址(匹配中的最后一个IP是存储IP地址的变量的名称):
    {IP,%{IPV4:IP}
  • 现在我们有三组字符串,它们被花括号包围,我们不需要保存:
    {JTX,1511059/176275501}{OBJT,goodsMovement.reportsUtils.commissionstockslist}{OPT,SQ}
    ,对于grok,它看起来像:
    ({.*}{3}
  • 然后是PID字段:
    {PID,111111}
    ,因为grok PID只是一个正整数,类似于被花括号包围的IP,前面有
    PID,
    {PID,%{POSINT:PID}
  • 我们不想保存的另外两个组。与前面的组类似,跳过它们:
    ({.*}){2}
  • 最后一个字段是:
    {UID,StudentSaSo-8}
    ,这只是grok的一个数据字符串。类似于IP和PID将其保存在各自的变量中:
    {UID,%{data:UID}
  • 最后我们有一个右括号:
    }
最终,您的最终成果如下所示:

(?<timestamp>%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND},%{NONNEGINT})\] %{LOGLEVEL:loglevel} * \[(?<logger>[A-Za-z0-9$_.]+)\] \(%{JAVAFILE:class}:%{NONNEGINT:line}\) \[%{NOTSPACE:thread}\] {%{DATA}{IP,%{IPV4:IP}}({.*}){3}{PID,%{POSINT:PID}}({.*}){2}{UID,%{DATA:UID}}}
[代码><代码>({{码码码><码码码>({{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{年}}{{{{年}}{{{{年}}{{年}{{{年}{年}{码}{{{{{年}}{{码码码}}}{{{{{{{{{{{{{年}年}}}{{{{{{{{年}年}年}}年}年}}}}{{{{{{{{{{{{年}年}年}年}}年}年}年}年}年}年}年}{{{{{{{{{{{{{{{{{年}年}年}}}{UID,%{DATA:UID}
谢谢alexK的回复,但在您的评论之后,我的日志又有一个问题。它们不规则。有些行只有IP和PID或JTX、PID和UID,而且它们混合在一起,我的意思是IP、UID等字段不总是在同一位置…:/i映射整个日志就像您编写的{CT、%%数据:CT}{IP、%%IPV4:IP}{JTX一样{NONNEGINT:jtx}{OBJT,%%{GREEDYDATA:OBJT}{OPT%{GREEDYDATA:OPT}{PID,%%{POSINT:PID}{SS,%%{GREEDYDATA:SS}{TRT,%%{GREEDYDATA:TRT}{UID,%%DATA:UID}}{PID,{GREEDYDATA log\u message有没有办法通过自动搜索给定字段或类似的内容来实现这一点吗?