ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] Grok会按照顺序匹配送进来的日志,当碰到第一个匹配成功的日志就break掉这个循环。 # 第一种: ~~~ filter {     grok { match => {     "message"=>[ "%{DATA:hostname}\|%{DATA:tag}\|%{DATA:types}\|%{DATA:uid}\|%{GREEDYDATA:msg}", "%{DATA:hostname}\|%{DATA:tag}\|%{GREEDYDATA:msg}"]     }     } ~~~ # 第二种: ~~~ filter {     grok {          match => [             "message" , "%{DATA:hostname}\|%{DATA:tag}\|%{DATA:types}\|%{DATA:uid}\|%{GREEDYDATA:msg}",             "message" , "%{DATA:hostname}\|%{DATA:tag}\|%{GREEDYDATA:msg}"          ]         remove_field => ['type','_id','input_type','tags','message','beat','offset']     } ~~~ # 第三种: 太多使用DATA和GREEDYDAYA会导致性能cpu负载严重。建议多使用正则匹配,或者ruby代码块 ~~~ filter {     ruby {         code =>'         arr = event["message"].split("|")         if arr.length == 5             event["hostname"] = arr[0]             event["tag"] = arr[1]             event["types"] = arr[2]             event["uid"] = arr[3]             event["msg"] = arr[4]         elsif arr.length == 3             event["hostname"] = arr[0]             event["tag"] = arr[1]             event["msg"] = arr[2]         end'        remove_field => ['type','_id','input_type','tags','message','beat','offset']     } ~~~