环境搭建
版本介绍
组件 | 版本号 |
---|---|
logstash | 7.6.2 |
elasticsearch | 7.6.2 |
kibana | 7.6.2 |
Docker安装ELK
安装Elasticsearch
1、 启动elasticsearch
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch
-e "discovery.type=single-node"
-e "cluster.name=elasticsearch"
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data
-d elasticsearch:7.6.2
2、 安装中文分词器IKAnalyzer
# 进入容器
docker exec -it elasticsearch /bin/bash
# 安装分词器
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
# 退出容器
exit
# 重启
docker restart elasticsearch
安装Logstash
1、 下载logstash
docker pull logstash:7.6.2
2、 创建配置文件
mkdir /mydata/logstash
cd /mydata/logstash
vi logstash.conf
logstash.conf配置文件如下:
input {
# 读取网络数据采用tcp,生产环境不建议使用,因为tcp只能在sizeQueue中缓存20个事件(日志记录)
tcp {
mode => "server"
host => "0.0.0.0"
# 定义的端口
port => 4560
# codec表示使用的插件,json_lines就是之前安装的插件
codec => json_lines
# type可以自定义名称
type => "debug"
}
tcp {
mode => "server"
host => "0.0.0.0"
port => 4561
codec => json_lines
type => "error"
}
redis {
# data_type有三种类型
# list => BLPOP
# channel => SUBSCRIBE
# pattern_channel => PSUBSCRIBE
data_type => "pattern_channel"
# 订阅的key,可以使用模糊
key => "logstash-*"
# redis服务器
host => "192.168.1.41"
# redis端口
port => 6379
threads => 5
}
}
# 过滤器,对数据进行处理
filter{
# 对type=error的日志进行过滤
if [type] == "error" {
mutate {
remove_field => "port"
remove_field => "host"
remove_field => "@version"
}
# 启用json插件解码
json {
# 解码的key名称
source => "message"
# 如果json是多层结构,设置target=jsoncontent
target => "jsoncontent"
}
}
}
output {
# 将日志输出到elasticsearch
elasticsearch {
# 地址
hosts => "192.168.1.41:9200"
# 日志文件名称格式,type引用input中定义的type值
index => "log-%{type}-%{+YYYY.MM.dd}"
}
}
具体的其它类型配置说明可以参考链接
3、 启动logstash服务
docker run --name logstash -p 4560:4560 -p 4561:4561 -p 4562:4562 -p 4563:4563
--link elasticsearch:es
-v /mydata/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
-d logstash:7.6.2
4、 在logstash安装json_lines插件
# 进入容器
docker exec -it logstash /bin/bash
# 进步bin目录
cd /bin/
# 安装插件
logstash-plugin install logstash-codec-json_lines
# 退出容器
exit
# 重启logstash
docker restart logstash
安装Kibana
# 下载
docker pull kibana:7.6.2
# 启动
docker run --name kibana -p 5601:5601 --link elasticsearch:es -e "elasticsearch.hosts=http://es:9200" -d kibana:7.6.2
通过访问http://ip:5601 进入kibana
界面说明
整合Springboot
net.logstash.logback
logstash-logback-encoder
5.3
192.168.1.41:4560
192.168.1.41:4561
参考:
SpringBoot应用ELK搭建Docker日志收集:
juejin.cn/post/697100…
Logstash 最佳实践:
doc.yonyoucloud.com/doc/logstas…