一.简介
1:ELK是什么?
ELK分别是Elasticsearch(用于存储收集到的日志信息)、Logstash(是收集日志,配合spring boot再发送到Elasticsearch上 )、Kibana(是可视化的界面)
通过EKL日志收集,就不用再去线上服务器去查看日志
二.使用方法
1.开始搭建
https://download.csdn.net/download/m0_61569140/89507214 这是我已经下载的安装包;
也可以去官网找自己需要的下载
步骤一:Elasticsearch 安装
解压文件,进入bin目录,双击elasticsearch.bat,出现命令窗,不要关掉
在浏览器里打开这个地址http://localhost:9200/
出现这个说明没问题
步骤二:Kibana安装
跟前面的一样,进入bin目录双击kibana.bat启动,访问 http://localhost:5601/ 即可打开Kibana的用户界面
步骤三:logstash的安装
解压,进入bin目录,新建配置文件logstash.conf,配置内容如下
#读取控制台日志
input { stdin { } }
input {
tcp {
host => "127.0.0.1"
port => 9321
mode => "server"
# tags => ["tags"]
codec => json_lines
}
}
# output { stdout { codec => rubydebug } }
output {
stdout{codec =>rubydebug}
elasticsearch {
hosts => ["localhost:9200"]
index => "logback-%{+YYYY.MM.dd}"
}
}
在bin目录里面打开cmd,输入 logstash -f logstash.conf,显示成功,不要关掉命令窗
2.添加logback.xml配置文件:
添加依赖
<!-- 日志配置 -->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.2</version>
</dependency>
在日志配置文件使用,参考文件:主要看<appender name="LOGSTASH"/>的内容就可以了
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--日志配置-->
<property name="PROJECT_NAME" value="romoss_java"/>
<property name="LOG_BASE" value="/home/product/logs"/>
<property name="LOG_BACK_DIR" value="${LOG_BASE}/${PROJECT_NAME}_logs"/>
<!-- INFO日志 -->
<appender name="INFO_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_BACK_DIR}/info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_BACK_DIR}/info_%d{yyyyMMddHH}_%i.log</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>120</maxHistory>
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}|%thread|%X{traceId}-%X{rpcId}|%level|%C|%M|%L|%.-5120msg|%X{callChain}%n</pattern>
<charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
<!-- ERROR日志 -->
<appender name="ERROR_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_BACK_DIR}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_BACK_DIR}/error_%d{yyyyMMdd}_%i.log</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>10</maxHistory>
<totalSizeCap>2GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}|%thread|%X{traceId}-%X{rpcId}|%level|%C|%M|%L|%.-5120msg|%X{callChain}%n</pattern>
<charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
</appender>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<!--对应的映射的配置名-->
<appender name="LOGSTASH"
class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--配置logStash 服务地址,9321。9321是logstash\bin\logstash.conf文件中配置的输出端口号 -->
<destination>127.0.0.1:9321</destination>
<!-- 日志输出编码 -->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<charset>utf8</charset>
<!--Pattern为日志匹配的规则,也是索引的字段名,此处我们不指定,是因为在日志的打印的时候是直接打印的实体,
实体与的字段与值是规则的json格式,所以此处不做额外处理-->
<Pattern>%msg%n</Pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" />
<logger name="java.sql.Connection" level="INFO" />
<logger name="java.sql.ResultSet" level="INFO" />
<logger name="org.quartz.core.QuartzSchedulerThread" level="WARN" />
<logger name="org.mybatis.spring.SqlSessionUtils" level="WARN" />
<root level="INFO">
<appender-ref ref="ERROR_ROLLING"/>
<appender-ref ref="INFO_ROLLING"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
配置完之后,重启项目,再访问http://localhost:5601/ 就可以了
三.日志分析
进去创建个logback-*全匹配索引模式,就不用跟图上,每天分开了。创建完成之后,点击Discover进入,就可查看日志了。
四.总结
搭建了ELK日志收集系统之后,如果要查看SpringBoot应用的日志信息,就不需要查看服务器上日志文件了,直接在Kibana中查看了。
以上就是本文章的全部内容,本文章有借鉴了一些老师的代码,再结合本项目使用,记录文章是为了方便学习而记录,希望也能对大家有所帮助!