这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战
本文使用Filebeat收集日志信息输送到Logstash。ELK+Filebeat环境搭建 可以看这一篇文章
1. 配置logstash.config
input {
beats {
port => 5044
}
}
filter {
grok{
match => { "message" => "%{APPNAME:appname} %{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{JAVALOGMESSAGE:msg}" }
}
date {
match => ["timestamp","yyyy-MM-dd HH:mm:ss,SSS","ISO8601"]
target => "@timestamp"
}
}
output {
elasticsearch {
hosts => ["192.168.0.103:9200"]
user => "elastic"
password => "123456"
index => "%{appname}"
template_overwrite => true
}
}
grok
里面的 %{APPNAME:appname}
这里是自定义的正则表达式规则
修改Logstash
容器里面的patterns
进入Logstash
容器应用
docker exec -it logstash /bin/bash
cd /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns
vi grok-patterns
我这里获取的是日志信息开头出现第一个空格前面的字符串
我这里日志格式信息如下,获取的是开头open-web
作为索引
open-web 2021-08-08 14:29:11.088 [] [http-nio-5001-exec-9] INFO TID: N/A com.example.learning.controller.GoodsController - GoodsController#getGoodsById request:111