Filebeat合并多行日志(以mysql慢查询日志为例)

问题

对于像Mysql的慢查询日志和Java日志这种多行日志怎么去配置Filebeat去合并多行日志呢

本文以Mysql的慢查询日志为例

Filebeat——manage multiline message

首先我们先了解下Filebeat在合并多行日志上有哪些配置选项

multiline.pattern
指定正则表达式去匹配指定的行,例如multiline.pattern: '^\[',意思是去匹配以[开头的行

multiline.negate
定义pattern是否被否认,默认值是false,若为true,意思是对上面的匹配进行反转(就是实际去匹配不以pattern的行)

multiline.match
指定Filebeat如何合并匹配的行,有两个值afterbefore

其实这个三个属性分开理解有点困难,下面结合官方doc中的例子去理解这三个属性之间的联系和作用


如果negate设置为falsematch设置为after,Filebeat就会把不匹配的行作为行首,把匹配的行插入到行首后
如果negate设置为truematch设置为after,Filebeat就会把匹配的行作为行首,把不匹配的行插入到行首后

multiline.flush_pattern
指定正则表达式去匹配指定的行作为multline-message的结束,刷新的内存,开始匹配新的多行

multiline.max_lines
指定合并最大行数

multiline.timeout
设定一个超时时间,在时间结束后,即使没有匹配到新pattern来启动新事件,Filebeat也会发送多行事件。默认值是5秒

确认slow-query.log的格式

不同版本的mysql,有不同的慢查询日志格式
下面是我在用mysql版本的slow-query.log的格式

# Time: 180531  9:04:26
# User@Host: parke[parke] @  [192.168.0.37]  Id: 228857
# Query_time: 1.374079  Lock_time: 0.000000 Rows_sent: 104930  Rows_examined: 104930
SET timestamp=1527728666;
SELECT /*!40001 SQL_NO_CACHE */ * FROM `sdb_b2c_order_items`; 

Filebeat合并多行日志

修改filebeat.yaml文件

filebeat.prospectors:
- type: log
  enabled: true
  close_rename: true
  close_remove: true
  close_inactive: 10m
  paths: ["/data/logs/mysql/slow-query.log"]
  scan_frequency: 1m
  backoff: 1s
  max_backoff: 10s
  backoff_factor: 2
  harvester_limit: 10
  multiline.pattern: '^(# Time)'
  multiline.negate: true
  multiline.match: after
  multiline.timeout: 5s
  fields:
    filename: mysql_slow
  fields_under_root: true

Logstash解析slow-query.log

修改logstash.conf文件

filter {
if [filename] == "mysql_slow" {
    grok {
      match => [ "message", "(?m)^#\s+User@Host:\s+%{USER:user}\[[^\]]+\]\s+@\s+%{WORD}?\s+\[%{IP:ip}\]\s+Id:\s+%{NUMBER:id}\n#\s+Query_time:\s+%{NUMBER:query_time:float}\s+Lock_time:\s+%{NUMBER:lock_time:float}\s+Rows_sent:\s+%{NUMBER:rows_sent:int}\s+Rows_examined:\s+%{NUMBER:rows_examined:int}\nSET\s+timestamp=%{NUMBER:timestamp};\n%{GREEDYDATA:sql}" ]
    }
    date {
      match => [ "unixtime", "UNIX" ]
      target => "@timestamp"
      remove_field => "unixtime"
    }
  }
}

以下举一些正则匹配的例子

Item Comment
(?m) 打开多行模式的开关
^# 以 # 字符顶头
\s+ 匹配一个或多个空字符
\s* 0个或多个空字符
%{USER:user} 以 USER 模式进行正则匹配,结果放在user中
[[^]]+] 以 [ 开头 以]结尾,内容是由一个或多个不是 ] 的字符填充而成
%{NUMBER:id:int} 以 NUMBER 模式进行正则匹配,为整数型,结果放在id中
\n 匹配换行符
%{NUMBER:query_time:float} 以 NUMBER 模式进行正则匹配,为浮点型,结果放在query_time中
(?:use\s+%{USER:usedatabase};\s*\n)? 这个匹配可能有,也可能无,如果有,就是以use开头,若干空字符,以 USER 模式进行正则匹配,结果放在usedatabase中,然后紧接着 ; ,后面是0个或多个空字符,然后是换行,注意:如果有是整体有,如果无,是整体无
\b 代表字单词边界不占位置,只用来指示位置
.* 尽可能多的任意匹配
(?<query>(?<action>\w+)\b.*) 整体匹配,存到query中,以一个或多个字符开头组成的单词,结果存到action中
(?:\n#\s+Time)? 内容可能有,也可能无,如果有,是接在一个换行之后,以 # 开头,隔着一个或多个空字符,然后是Time
.*$ 任意匹配直到结尾
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容