思路
- 找到典型的需要的业务日志
- 比如我的是重要的业务日志是含有xml内容的如何处理
- 捋清楚思路,先分开字段匹配,把含有xml消息的日志正文 grok 出来一个字段叫做任意你起的名字,这里是xmlnews
- 使用logstash xml 模块,使用source参数,表示消息来源是从这个参数调用,让这个参数的来源等于,第二个步骤定义的xmlnews。logstash 会自动帮你提取xml内容
实现步骤
- 使用grok 结构化字段
input {
stdin{}
}
filter {
#我这里的tomcat 日志匹配模式,你们不一定能用,这里只提供思路,实际使用自己匹配模式
grok {
match => { "message" => "^%{TIMESTAMP_ISO8601:access_time} %{LOGLEVEL:loglevel} \[%{DATA:da}\] %{USERNAME:class} \(%{DATA:linenum}\) \- 从队列\[%{TWOUNDERSCORE:queuename}\]%{GREEDYDATA:xmlnews}$" }
}
}
- xml调用
filter {
grok {
match => { "message" => "^%{TIMESTAMP_ISO8601:access_time} %{LOGLEVEL:loglevel} \[%{DATA:da}\] %{USERNAME:class} \(%{DATA:linenum}\) \- 从队列\[%{TWOUNDERSCORE:queuename}\]%{GREEDYDATA:xmlnews}$" }
}
xml {
source => "xmlnews" #只要xmlnew 包含xml 格式,就会被抽取出来
}
}
展现结果图没有截图 以后补充
网友评论