springboot 整合 elk (Elasticsearch+Logstash+Kibana)

Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。

Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志

Logstash 收集日志 Elasticsearch 处理 Kibana 展示

springboot 整合 elk 两种方式
1.分别下载分别配置比较麻烦但是可以自定义灵活
2.直接下载elk(集成好的) 一步到位

今天介绍一下第二种方式(第一种老有问题自己还菜不献丑了)

在docker 环境下进行

1.下载镜像

docker pull sebp/elk

2.生成容器

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 5601:5601 -p 5044:5044 -p 9200:9200 -p 9300:9300 -it --name elk sebp/elk

5044 是 Logstash的端口
9200 是 Elasticsearch的端口
5601 是 Kibana的端口

3.需要修改 logstash 配置


进入 容器

docker exec -it elk /bin/bash

修改文件

vi /etc/logstash/conf.d/02-beats-input.conf

dd 删除原来的 粘贴新的

input {
   
    tcp {
   
        port => 5044
        codec => json_lines
    }
}
output{
   
    elasticsearch {
   
    hosts => ["localhost:9200"]
    }
}

4.重启elk

docker restart elk

5.测试访问


访问http://127.0.0.1:5601 测试能不能打开页面
出现页面先别操作先去整合sprongboot项目

6.整合springboot 项目-添加pom


项目pom 添加jar


	ch.qos.logback
	logback-classic



	net.logstash.logback
	logstash-logback-encoder
	5.2

7.整合springboot 项目-配置xml


编写logback-spring.xml放在resources下

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
	<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
	<property name="LOG_HOME" value="./logs" />
	<!-- 控制台输出 -->
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
			<pattern>%d{
   yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{
   50} - %msg  %n</pattern>
		</encoder>
	</appender>
	<!-- 按照每天生成日志文件 -->
	

你可能感兴趣的:(spring,运维)