前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Logstash 处理 Mongod Log5

Logstash 处理 Mongod Log5

作者头像
franket
发布2022-01-19 11:27:21
3500
发布2022-01-19 11:27:21
举报
文章被收录于专栏:技术杂记

filter

代码语言:javascript
复制
filter {
  grok {
       match => ["message","%{TIMESTAMP_ISO8601:timestamp}\s+%{MONGO3_SEVERITY:severity}\s+%{MONGO3_COMPONENT:component}%{SPACE}(?:\[%{DATA:context}\])?\s+%{GREEDYDATA:body}"]
  } 
  if [body] =~ "ms$"  {  
       grok {
	     match => ["body",".*\}(\s+%{NUMBER:spend_time:int}ms$)?"]
       }
 }
 date {
   match => [ "timestamp", "ISO8601" ]
   #remove_field => [ "timestamp" ]
  }
}

Item

Comment

filter {

框定处理逻辑的定义范围

grok {

定义了一个过滤器,使用 grok 插件来解析文本,和抓取信息,用于文本结构化

match => ["message",".*"]

用来match哈希 {"message" => ".*patten.*"},然后把正则捕获的值作为事件日志的filed

if [body] =~ "ms$"

判断 body 字段中是否以 ms 结尾,如果匹配,就执行定义的代码段

match => ["body",".*\}(\s+%{NUMBER:spend_time:int}ms$)?"]

尝试从body中抽取花费的时间

date {

定义了一个过滤器,使用 date 插件来从fileds中解析出时间,然后把获取的时间值作为此次事件日志的时间戳

match => [ "timestamp", "ISO8601" ]

取用 timestamp 中的时间作为事件日志时间戳,模式匹配为 ISO8601

#remove_field => [ "timestamp" ]

一般而言,日志会有一个自己的时间戳 @timestamp ,这是logstash或 beats看到日志时的时间点,但是上一步已经将从日志捕获的时间赋给了 @timestamp ,所以 timestamp 就是一份冗余的信息,可以使用 remove_field 方法来删掉这个字段,但我选择保留

Note: 这里的 if 判断不能省,否则会产生大量的 _grokparsefailure

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • filter
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档