ELK日志处理
前提:采用ELK组件
ElasticSearch
一个基于 JSON 的分布式的搜索和分析引擎,作为 ELK 的核心,它集中存储数据,用来搜索、分析、存储日志。它是分布式的,可以横向扩容,可以自动发现,索引自动分片
Logstash
一个动态数据收集管道,支持以 TCP/UDP/HTTP 多种方式收集数据(也可以接受 Beats 传输来的数据),并对数据做进一步丰富或提取字段处理。用来采集日志,把日志解析为json格式交给ElasticSearch
Kibana
一个数据可视化组件,将收集的数据进行可视化展示(各种报表、图形化数据),并提供配置、管理 ELK 的界面
pom文件
切记:用logback做日志处理,slf4j作为日志门面
SpringBoot
<dependency>
<groupId>org.slf4j
</groupId>
<artifactId>log4j-over-slf4j
</artifactId>
</dependency>
<dependency>
<groupId>net.logstash.logback
</groupId>
<artifactId>logstash-logback-encoder
</artifactId>
<version>5.2
</version>
</dependency>
<dependency>
<groupId>org.projectlombok
</groupId>
<artifactId>lombok
</artifactId>
<optional>true
</optional>
</dependency>
SSM
<dependency>
<groupId>net.logstash.logback
</groupId>
<artifactId>logstash-logback-encoder
</artifactId>
<version>4.11
</version>
</dependency>
<dependency>
<groupId>ch.qos.logback
</groupId>
<artifactId>logback-classic
</artifactId>
<version>1.2.3
</version>
</dependency>
<dependency>
<groupId>net.logstash.log4j
</groupId>
<artifactId>jsonevent-layout
</artifactId>
<version>1.7
</version>
</dependency>
配置信息:
yml配置:
logging:
config: classpath
:logback.xml
logback.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${catalina.base}/fx-expert-rankings-web_log/log_dev_%d{yyyy-MM-dd}.log
</FileNamePattern>
<MaxHistory>30
</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
</encoder>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB
</MaxFileSize>
</triggeringPolicy>
</appender>
<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>47.97.156.209:5044
</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"appname":"fx-expert-rankings-web-test"}
</customFields>
</encoder>
</appender>
<logger name="com.niu" level="INFO">
<appender-ref ref="stash"/>
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
</logger>
</configuration>
使用:
@Slf4j
@Service
public class studentServiceImpl extends BaseServiceImpl{
···
log
.error();
}
@Service
public class studentServiceImpl extends BaseServiceImpl{
private static Logger log
= LoggerFactory
.getLogger(studentServiceImpl
.class);
}