ELK Logstash 自定义正则模式patterns_dir
生活随笔
收集整理的這篇文章主要介紹了
ELK Logstash 自定义正则模式patterns_dir
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
如果過濾插件里面自帶的正則匹配無法滿足你的需求,那么你可以寫自己的正則匹配規(guī)則,如何使用,CID [0-9]{5,6}這個(gè)是自定義規(guī)則
[root@localhost ~]# cat /usr/local/logstash/conf.d/test.conf input {file {path => "/var/log/test.log"} }filter {grok {patterns_dir => "/opt/patterns"match => {"message" => "%{IPV4:client_ip} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration} %{CID:id}"} } }output {elasticsearch {hosts => ["192.168.179.102:9200"]index => "test-%{+YYYY.MM.dd}"} } [root@localhost ~]# cat /opt/patterns CID [0-9]{5,6}[root@localhost ~]# echo "192.168.1.10 GET /login.html 12345 0.666 11111" >> /var/log/test.log 192.168.1.10 GET /login.html 12345 (?<ip>\d+\.\d+\.\d+\.\d+) (?<method>\w+) (?<request>/.*) (?<bytes>\d+)可以看到根據(jù)我們寫的正則也可以進(jìn)行字段的過濾,其他日志類型也可以寫類似的
?
Grok多模式匹配(兼容多種日志)
如果一個(gè)日志文件下有多個(gè)日志格式怎么辦?例如項(xiàng)目新版本添加一個(gè)日志字段,需要兼容舊日志匹配 使用多模式匹配,寫多個(gè)正則表達(dá)式,只要滿足其中一條就能匹配成功 例如: # cat /opt/patterns CID [0-9]{5,6} TAG \w+ filter {grok {patterns_dir =>"/opt/patterns"match => ["message", "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration} %{CID:cid}","message", "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration} %{EID:eid} %{TAG:tag}"] } }
Elasticsearch
grok {match => ["message", "\[%{TIMESTAMP_ISO8601:timestamp}\]\[%{DATA:loglevel}%{SPACE}\]\[%{DATA:source}%{SPACE}\]%{SPACE}\[%{DATA:node}\]%{SPACE}\[%{DATA:index}\] %{NOTSPACE} \[%{DATA:updated-type}\]","message", "\[%{TIMESTAMP_ISO8601:timestamp}\]\[%{DATA:loglevel}%{SPACE}\]\[%{DATA:source}%{SPACE}\]%{SPACE}\[%{DATA:node}\] (\[%{NOTSPACE:Index}\]\[%{NUMBER:shards}\])?%{GREEDYDATA}"]}?
總結(jié)
以上是生活随笔為你收集整理的ELK Logstash 自定义正则模式patterns_dir的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习】【Apriori算法-1】A
- 下一篇: 事业发展规划