javaspring思维导图 2019-05-19 12:20:00
一、elk 简介
二、elk的安装
我们采用的 docker 镜像安装。
#下载镜像 docker pull sebp/elk #启动镜像 , 指定es的内存 docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 5601:5601 -p 5044:5044 -p 9200:9200 -p 9300:9300 -it --name elk 2fbf0a30426d
由于sebp/elk中logstash的input的方式默认是filebeat,首先需要进入elk容器中修改input方式。logstash默认会将etc/logstash/conf.d/中的配置文件进行整合然后启动。
#进入容器 docker exec -it elk /bin/bash #进入修改目录 cd etc/logstash/conf.d/
修改 02-beats-input.conf 文件,修改如下:
input { tcp { port => 5044 codec => json_lines } } output{ elasticsearch { hosts => ["localhost:9200"] } }
保存后,我们使用 control + P + Q 退出容器。然后重启容器,让我们的配置生效。
docker restart elk
我们访问http://127.0.0.1:5601
三、创建工程
创建工程springboot-elk ,并使用logback 记录日志。
1. pom.xml
4.0.0 com.gf springboot-elk 0.0.1-SNAPSHOT jar springboot-elk Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent 2.1.1.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test ch.qos.logback logback-classic net.logstash.logback logstash-logback-encoder 5.2 org.springframework.boot spring-boot-maven-plugin true
2. 启动类
@RestController @SpringBootApplication public class SpringbootElkApplication { private final static Logger logger = LoggerFactory.getLogger( SpringbootElkApplication.class ); public static void main(String[] args) { SpringApplication.run(SpringbootElkApplication.class, args); } @GetMapping("/{name}") public String hi(@PathVariable(value = "name") String name) { logger.info( "name = {}" , name ); return "hi , " + name; } }
3. logback-spring.xml
INFO ${CONSOLE_LOG_PATTERN} utf8 127.0.0.1:5044 UTC { "severity": "%level", "service": "${springAppName:-}", "trace": "%X{X-B3-TraceId:-}", "span": "%X{X-B3-SpanId:-}", "exportable": "%X{X-Span-Export:-}", "pid": "${PID:-}", "thread": "%thread", "class": "%logger{40}", "rest": "%message" }
启动工程,日志会存入elasticsearch中,通过Kibana 的web界面,配置后,我们就可看到,下面我简单的修改下配置。
三、配置 pattern
配置 pattern 输入*,匹配所有数据。
选择时间@timestamp,这样数据展示会以时间排序
好了 ,点击discover,就可以看到我们springboot-elk项目的日志信息了。