为你的SpringBoot服务赋高大上的线上日志系统ELK
前言
日志是一个完整系统必不可少的组件,你会将日志输出到什么地方呢?控制台 or 文件?这些都是比较简单直接的方式,但恐怕都不是好的办法。因为日志数据量巨大,后期问题排查就要抓耳挠腮了。还有,每次抓取日志都远程要到服务器上,既不方便也不符合码农极客精神的追求。所以我们需要的是一个既可以高效搜索又可以随时随地抓取的日志系统,目前业界比较流行的方案是 ELK(Elasticsearch Logstash Kibana)。
ELK搭建
以下 ELK 安装部署都是采用 Docker 容器的方式,不了解 Docker 的朋友需要先去熟悉一下!
ELK镜像拉取
docker pull elasticsearch
docker pull logstash
docker pull kibana
此命令会从 Docker 仓库拉取 ELK 的最新镜像,目前版本是 7.10.2
ELK容器创建
1、Elasticsearch 容器创建运行
docker run --name elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \ # 单节点模式
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" \ # 初始内存和最大内存
-d elasticsearch
2、Kibana 容器创建运行
docker run --name kibana \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://部署ES服务IP地址:9200 \
-d kibana
3、Logstash 容器创建运行
创建 /usr/local/docker/logstash/logstash.conf 配置文件,内容为
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 4560
}
}
output {
elasticsearch {
hosts => ["部署ES服务IP地址:9200"]
action => "index"
codec => json
index => "today-log-%{ YYYY.MM.dd}"
}
}
docker run --name logstash \
-p 4560:4560 \
-v /usr/local/docker/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \ # 挂载logstash的配置文件
-d logstash
至此,ELK 的安装部署已经全部完成,看看它们的运行情况吧
docker ps
SpringBoot输出日志
1、Logstash 依赖
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.3</version>
</dependency>
2、创建 src/main/resource/logback-spring.xml 输出日志到 Logstash
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
<!--引用默认日志配置-->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<!--使用默认的控制台日志输出实现-->
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>部署Logstash服务的IP地址:4560</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<!--自定义日志输出格式-->
<pattern>
<pattern>
{
"project": "today",
"level": "%level",
"pid": "${PID:-}",
"thread": "%thread",
"class": "%logger",
"message": "%message",
"stack_trace": "%exception{20}"
}
</pattern>
</pattern>
</providers>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
访问 Kibana 查看日志
启动 SpringBoot 服务后浏览器访问 Kibana
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanggcafg
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01