SpringBoot集成ELK日志分析、管理

一、前言

           ELK现在来说是做日志管理分析最好的一种方式了,当然像logback或者一般项目启动追加本地txt文件,再或者docker命令查看,这些也是可以的,但是这些在出现大数据量日志的时候,查找相关信息是非常麻烦的,所以如果说中大型项目并且注重于日志的分析管理,推荐使用ELK。

本次演示ELK的版本都是最新的,7.12.0

 

二、ELK安装,切记ELK的版本必须对应

关于ELK的安装前面有文章已经写过,不过是针对Windows系统的,现在的项目差不多都是Linux部署了,无关紧要,配置是一样配置的。所以安装的方式请移步:

ELK安装

ELK实现Mysql数据同步

 

三、配置启动

ELK启动的顺序一定要是ES先起服务,不然其它两个会报错,配置文件中是依赖ES的。

1.conf/elasticsearch.yml 默认情况下es的配置文件不需要做什么修改,除非你想修改端口号、添加用户名密码啥的,自行把握。

2.kibana.yml  这里的用户名密码是需要插件的,在ES安装的时候配置的,这里添加用户名密码最终只是在登录kibana的时候需要登录。

elasticsearch.hosts: ["http://localhost:9200"]

server.host: "0.0.0.0"

server.port: 5601

kibana.index: ".kibana"

i18n.locale: "zh-CN"

#elasticsearch.username: "kibana"

#elasticsearch.password: "123456"

3.conf/logstach.conf

input {
    tcp {  
        host => "localhost"  
        port => 9601  
        mode => "server"  
        tags => ["tags"]  
        ##格式json  
        codec => json_lines         
    }  
 
} 
output {
    elasticsearch {
        hosts => "localhost:9200"
        index => "%{[appname]}-%{+YYYY.MM.dd}"
    }
}

配置完毕、启动~

 

四、整合SpringBoot

pom.xml 添加

        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>5.2</version>
        </dependency>

 

src/resource新建logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--该日志将日志级别不同的log信息保存到不同的文件中 -->
<configuration>
    <appender name="LOGSTASH"
              class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <!--        端口是在logstach.conf中配置的-->
        <destination>localhost:9601</destination>
        <!-- encoder必须配置,有多种可选 -->
        <encoder charset="UTF-8"
                 class="net.logstash.logback.encoder.LogstashEncoder">
            <!-- "appname":"spring-boot-lee" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段,切记小写  -->
            <customFields>{"appname":"spring-boot-lee"}</customFields>
        </encoder>
    </appender>

    <!-- ch.qos.logback.core.ConsoleAppender 表示控制台输出 -->
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <!--
        日志输出格式:
			%d表示日期时间,
			%thread表示线程名,
			%-5level:级别从左显示5个字符宽度
			%logger{50} 表示logger名字最长50个字符,否则按照句点分割。
			%msg:日志消息,
			%n是换行符
        -->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ----> [%thread] ---> %-5level %logger{50} - %msg%n</pattern>
        </layout>
    </appender>

    <!--
		logger主要用于存放日志对象,也可以定义日志类型、级别
		name:表示匹配的logger类型前缀,也就是包的前半部分
		level:要记录的日志级别,包括 TRACE < DEBUG < INFO < WARN < ERROR
		additivity:作用在于children-logger是否使用 rootLogger配置的appender进行输出,
		false:表示只用当前logger的appender-ref,true:
		表示当前logger的appender-ref和rootLogger的appender-ref都有效
    -->
    <!-- hibernate logger -->
    <logger name="com.example" level="debug"/>
    <!-- Spring framework logger -->
    <logger name="org.springframework" level="debug" additivity="false"></logger>

    <root level="INFO">
        <appender-ref ref="stdout"/>
        <appender-ref ref="LOGSTASH"/>
    </root>
</configuration>

配置完毕,写个测试接口添加打印的日志,启动项目,登录Kibana,http://localhost:9200

 

这里就是全部的日志信息

 

ES默认数据是存放内存的,建议设置为内存+磁盘,完毕~

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值