ELK Logstash 自定义正则模式patterns_dir
生活随笔
收集整理的這篇文章主要介紹了
ELK Logstash 自定义正则模式patterns_dir
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果過濾插件里面自帶的正則匹配無法滿足你的需求,那么你可以寫自己的正則匹配規則,如何使用,CID [0-9]{5,6}這個是自定義規則
[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+)可以看到根據我們寫的正則也可以進行字段的過濾,其他日志類型也可以寫類似的
?
Grok多模式匹配(兼容多種日志)
如果一個日志文件下有多個日志格式怎么辦?例如項目新版本添加一個日志字段,需要兼容舊日志匹配 使用多模式匹配,寫多個正則表達式,只要滿足其中一條就能匹配成功 例如: # 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}"]}?
總結
以上是生活随笔為你收集整理的ELK Logstash 自定义正则模式patterns_dir的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习】【Apriori算法-1】A
- 下一篇: 事业发展规划