Springboot+ELK实现日志管理

介绍ELLK三部分的组成:

  • Elasticsearch:用于存储日志
  • Logstash:用户收集处理和转发日志
  • Kibana:提供可搜索的Web可视化界面

关于这三者的安装环境均是Centos7,安装步骤也较简单,详情如下:

《Linux安装Elasticsearch》
《Linux安装Kibana》
Logstash安装:

  1. 官网下载解压,注意和es以及Kibana版本的一致性
  2. 修改配置文件:logstash-6.4.3/config/logstash-sample.conf`
input {
  tcp {
    mode => "server"
    host => "192.168.145.134"    ##安装logstash的ip
    port => 4560                 ##设置logstash的端口
    codec => json_lines
  }
}
output {
  elasticsearch {
    hosts => "127.0.0.1:9200"    #es的ip和端口(本次logstash和es是同一个服务器)
    index => "springboot-logstash-%{+YYYY.MM.dd}"    ##es的index名称
  }
}


  1. 启动:
./logstash -f ../config/logstash-sample.conf    #在bin目录下执行

将Logstash的安装步骤写在SpringBoot环境搭建块,是因为Logstash的配置文件和SpringBoot的日志文件有很重要的关系。


SpringBoot环境的搭建:

  • 修改pom.xml,添加es和logstash的jar包
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/net.logstash.logback/logstash-logback-encoder -->
<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>4.11</version>
</dependency>
  • 添加日志文件
    注意:destination必须和logstash配置文件中input -tcp 中的host 和 port一致
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />

    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
      <!--这里必须和logstash配置文件中input -tcp 中的host 和 port一致-->
          <destination>192.168.145.134:4560</destination>
        <!-- 日志输出编码 -->
        <encoder charset="UTF-8"
                 class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <timestamp>
                    <timeZone>UTC</timeZone>
                </timestamp>
                <pattern>
                    <pattern>
                        {
                        "logLevel": "%level",
                        "serviceName": "${springAppName:-}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "rest": "%message"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>

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

</configuration>
  • 添加测试类
@RequestMapping("/test")
public String testlogstash() {
    logger.info("===================开始logstash的测试");
    return "hello word";
}
  • 启动项目进行测试
  • 在Kibana中查看日志信息:
    首先在management中添加 creat index patterns
    然后在Discover中查看
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
链路追踪是一种用于监控和分析分布式系统中请求的跟踪的技术。在Spring Boot中使用ELK(Elasticsearch、Logstash和Kibana)进行链路追踪,可以通过收集和展示日志信息来跟踪请求的流程和性能。具体配置步骤如下: 1. 首先,进入Kibana的管理界面,根据需求调整日志的生命周期管理策略,主要是配置过时自动删除。 2. 接下来,使用easyj-spring-boot-starter-logging快速集成ELK。首先在项目的pom.xml文件中添加依赖: ```xml <dependency> <groupId>icu.easyj.boot</groupId> <artifactId>easyj-spring-boot-starter-logging</artifactId> <version>0.7.4</version> </dependency> ``` 3. 在启动类上添加@EnableZipkinServer注解,确保Zipkin客户端可以找到服务。如下所示: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import zipkin2.server.internal.EnableZipkinServer; @EnableDiscoveryClient @SpringBootApplication @EnableZipkinServer public class CempSleuthApplication { public static void main(String[] args) { SpringApplication.run(CempSleuthApplication.class, args); } } ``` 4. 最后,在Kibana中创建搜索项并指定索引。您可以根据时间戳进行查询。完成后,点击“Discover”,您将看到刚刚创建的索引模板并查看数据。 至此,Spring Boot与ELK的链路追踪配置完成。启动项目后,您将能够看到链路追踪的日志

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值