Filebeat合并多行日志(以mysql慢查詢?nèi)罩緸槔?/h1>

問題

對于像Mysql的慢查詢?nèi)罩竞蚃ava日志這種多行日志怎么去配置Filebeat去合并多行日志呢

本文以Mysql的慢查詢?nèi)罩緸槔?/p>

Filebeat——manage multiline message

首先我們先了解下Filebeat在合并多行日志上有哪些配置選項

multiline.pattern
指定正則表達式去匹配指定的行煤率,例如multiline.pattern: '^\[',意思是去匹配以[開頭的行

multiline.negate
定義pattern是否被否認宜雀,默認值是false辫呻,若為true晦溪,意思是對上面的匹配進行反轉(zhuǎn)(就是實際去匹配不以pattern的行)

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

其實這個三個屬性分開理解有點困難儿礼,下面結(jié)合官方doc中的例子去理解這三個屬性之間的聯(lián)系和作用


如果negate設(shè)置為false板祝,match設(shè)置為after,F(xiàn)ilebeat就會把不匹配的行作為行首甥桂,把匹配的行插入到行首后
如果negate設(shè)置為true柿究,match設(shè)置為after,F(xiàn)ilebeat就會把匹配的行作為行首黄选,把不匹配的行插入到行首后

multiline.flush_pattern
指定正則表達式去匹配指定的行作為multline-message的結(jié)束蝇摸,刷新的內(nèi)存,開始匹配新的多行

multiline.max_lines
指定合并最大行數(shù)

multiline.timeout
設(shè)定一個超時時間办陷,在時間結(jié)束后貌夕,即使沒有匹配到新pattern來啟動新事件,F(xiàn)ilebeat也會發(fā)送多行事件民镜。默認值是5秒

確認slow-query.log的格式

不同版本的mysql啡专,有不同的慢查詢?nèi)罩靖袷?br> 下面是我在用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) 打開多行模式的開關(guān)
^# 以 # 字符頂頭
\s+ 匹配一個或多個空字符
\s* 0個或多個空字符
%{USER:user} 以 USER 模式進行正則匹配,結(jié)果放在user中
[[^]]+] 以 [ 開頭 以]結(jié)尾制圈,內(nèi)容是由一個或多個不是 ] 的字符填充而成
%{NUMBER:id:int} 以 NUMBER 模式進行正則匹配们童,為整數(shù)型,結(jié)果放在id中
\n 匹配換行符
%{NUMBER:query_time:float} 以 NUMBER 模式進行正則匹配鲸鹦,為浮點型慧库,結(jié)果放在query_time中
(?:use\s+%{USER:usedatabase};\s*\n)? 這個匹配可能有,也可能無亥鬓,如果有完沪,就是以use開頭,若干空字符,以 USER 模式進行正則匹配覆积,結(jié)果放在usedatabase中听皿,然后緊接著 ; ,后面是0個或多個空字符宽档,然后是換行尉姨,注意:如果有是整體有,如果無吗冤,是整體無
\b 代表字單詞邊界不占位置又厉,只用來指示位置
.* 盡可能多的任意匹配
(?<query>(?<action>\w+)\b.*) 整體匹配,存到query中椎瘟,以一個或多個字符開頭組成的單詞覆致,結(jié)果存到action中
(?:\n#\s+Time)? 內(nèi)容可能有,也可能無肺蔚,如果有煌妈,是接在一個換行之后,以 # 開頭宣羊,隔著一個或多個空字符璧诵,然后是Time
.*$ 任意匹配直到結(jié)尾
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者

  • 序言:七十年代末,一起剝皮案震驚了整個濱河市仇冯,隨后出現(xiàn)的幾起案子之宿,更是在濱河造成了極大的恐慌,老刑警劉巖苛坚,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件比被,死亡現(xiàn)場離奇詭異,居然都是意外死亡炕婶,警方通過查閱死者的電腦和手機姐赡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柠掂,“玉大人,你說我怎么就攤上這事依沮⊙恼辏” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵危喉,是天一觀的道長宋渔。 經(jīng)常有香客問我,道長辜限,這世上最難降的妖魔是什么皇拣? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上氧急,老公的妹妹穿的比我還像新娘颗胡。我一直安慰自己,他們只是感情好吩坝,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布毒姨。 她就那樣靜靜地躺著,像睡著了一般钉寝。 火紅的嫁衣襯著肌膚如雪弧呐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天嵌纲,我揣著相機與錄音俘枫,去河邊找鬼。 笑死逮走,一個胖子當著我的面吹牛崩哩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播言沐,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼邓嘹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了险胰?” 一聲冷哼從身側(cè)響起汹押,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎起便,沒想到半個月后棚贾,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡榆综,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年妙痹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鼻疮。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡怯伊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出判沟,到底是詐尸還是另有隱情耿芹,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布挪哄,位于F島的核電站吧秕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏迹炼。R本人自食惡果不足惜砸彬,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧砂碉,春花似錦蛀蜜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至沪铭,卻和暖如春壮池,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背杀怠。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工椰憋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赔退。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓橙依,卻偏偏與公主長得像,于是被迫代替她去往敵國和親硕旗。 傳聞我的和親對象是個殘疾皇子窗骑,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容