spring cloud 日志收集ELK

半城伤御伤魂 提交于 2020-01-01 03:10:33

最近因微服务开发需要,搭建了一个日志收集框架ELK,途中踩过坑,故此留帖记录下

  首先下载安装一个Elasticsearch,官网地址:https://www.elastic.co/downloads/elasticsearch

根据不同的环境下载不同的版本安装解压即可

然后找到如下位置双击启动

页面出现这种情况说明启动成功:

 

 Elasticsearch还可以根据自己的喜好设置分片命名

 

 

同理继续下载kibana  ,地址:https://www.elastic.co/downloads/kibana

这里可以注意就是下面文件中配置的Elasticsearch路径要和之前安装路径一致,双击启动

 

 最后安装现在logstash,路径:https://www.elastic.co/downloads/logstash,这里注意解压是解压路径看看是否有空白存在,如果有记得换个路径,不然可能启动失败,

然后在改路径下新建一个 logstash.conf(名字任意),

内容如下(采用官方推荐的redis方式):

input {
redis {
data_type => "list"  #存储类型
type => "redis-input"
key => "logstash:redis"#key值,后面要与spring boot中key保持一致
host => "127.0.0.1" 
port => 6379
threads => 5 #启动线程数量
codec => "json"
}
}

output {
elasticsearch {
hosts => ["localhost:9200"]
index => "springboot-elk" #index是定义将过滤后的日志推送到Elasticsearch后存储的名字
}
stdout { codec => rubydebug}  #是否在控制台打印
}

cmd命令启动文件:

在bin目录中新建logstash启动批处理文件run.bat

内容如下:

 

最后只需吧把你启动好springboot项目加上依赖:

<dependency>
<groupId>com.cwbase</groupId>
<artifactId>logback-redis-appender</artifactId>
<version>1.1.5</version>
</dependency>

在resources下新增一个logback.xml文件即可,文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<Target>System.out</Target>
<encoder>
<pattern>[%d{HH:mm:ss}][%t][%p][%c]-%m%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
</appender>
<appender name="LOGSTASH" class="com.cwbase.logback.RedisAppender">
<source>boot-sleuth</source>
<type>dev</type>
<host>127.0.0.1</host>
<key>logstash:redis</key>
<tags>dev</tags>
<mdc>true</mdc>
<location>true</location>
<callerStackIndex>0</callerStackIndex>
</appender>

<root level="info">
<appender-ref ref="Console"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>

到此日志收集架构搭建完成,

注:使用kibana时,记得创建一个index pattern ,

这样即可看到自己的日志了

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!