热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一个日志中的多个模式

如何解决《一个日志中的多个模式》经验,为你挑选了2个好方法。

所以我现在写了几个正在运行的日志模式.现在的情况是,我在一个文件中有多个日志,多个模式.logstash如何知道它必须用于日志中哪一行的模式?(我使用grok进行过滤)如果你们是超级友善的,你能给我链接到文档,因为我无法找到任何关于此的内容:/



1> Magnus Bäck..:

你可以为你的grok过滤器使用多种模式,

grok {
  match => ["fieldname", "pattern1", "pattern2", ..., "patternN"]
}

并且它们将按顺序应用但是a)它不是性能方面的最佳选择; b)您可能希望以不同方式处理不同类型的日志,因此我建议您根据消息的类型或标签使用条件:

if [type] == "syslog" {
  grok {
    match => ["message", "your syslog pattern"]
  }
}

在输入插件中设置类型.

当前发布的Logstash版本的文档位于http://logstash.net/docs/1.4.2/.它可能没有具体解决您的问题,但可以推断出来.



2> BornToCode..:

首先编写最具体的grok并使用以下语法:

grok {
    match => {
      "message" => [
      #Most specific grok:
        "%{TIMESTAMP_ISO8601:temp_date}%{SPACE}%{LOGLEVEL:log_level}%{UUID:user_id}",
      #Less specific:
        "%{TIMESTAMP_ISO8601:temp_date}%{SPACE}%{GREEDYDATA:log_message}"
     ]
  }
}


推荐阅读
author-avatar
傅雪莱_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有