SpringBoot实现监控Actuator,关闭redis监测

目录
  • SpringBoot监控Actuator,关闭redis监测
    • 方法
  • springboot Actuator
    • 查看配置明细
    • 运行时度量

SpringBoot监控Actuator,关闭redis监测

方法

当我们导入了spring-boot-starter-actuator这个依赖后, SpringBoot会默认去监测一些信息。其中就包括redis、 会根据redis的默认初始配置, localhost:6379 尝试连接redis。如果我们没有用到redis, 启动就会报错

 <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
      <version>2.2.1.RELEASE</version>
   </dependency>

比如我在使用SpringBootAdmin的时候,其中内置了Actuator的依赖, 启动报错

[WARN ] 2020-05-28 09:28:17.179 [registrationTask1] de.codecentric.boot.admin.client.registration.ApplicationRegistrator - Failed to register application as Application(name=admin-client, managementUrl=http://Gordon-pc:8768/actuator, healthUrl=http://Gordon-pc:8768/actuator/health, serviceUrl=http://Gordon-pc:8768/) at spring-boot-admin ([http://localhost:8769/instances]): I/O error on POST request for "http://localhost:8769/instances": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect. Further attempts are logged on DEBUG level
[WARN ] 2020-05-28 09:28:19.075 [boundedElastic-1] org.springframework.boot.actuate.redis.RedisReactiveHealthIndicator - Redis health check failed
org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to localhost:6379
at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1200)
at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getConnection(LettuceConnectionFactory.java:1179)
at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getSharedReactiveConnection(LettuceConnectionFactory.java:952)
at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getReactiveConnection(LettuceConnectionFactory.java:429)
at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getReactiveConnection(LettuceConnectionFactory.java:94)
at reactor.core.publisher.MonoSupplier.call(MonoSupplier.java:85)
at reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:225)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to localhost:6379
at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78)
at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56)
at io.lettuce.core.AbstractRedisClient.getConnection(AbstractRedisClient.java:234)
at io.lettuce.core.RedisClient.connect(RedisClient.java:207)
at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.lambda$getConnection$1(StandaloneConnectionProvider.java:115)
at java.util.Optional.orElseGet(Optional.java:267)
at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.getConnection(StandaloneConnectionProvider.java:115)
at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1198)
... 15 common frames omitted

在网上搜了下解决方法, 发现都是提供的这一种方式:

@Component("redisHealthIndicator")
public class RedisHealthIndicator implements HealthIndicator {

    @Override
    public Health health() {
        return Health.up().build();
    }
}

结果我在看配置文件的时候, 发现另一个简单的方式: application.yml中加上

management:
  health:
    redis:
      enabled: false

就可以了~

springboot Actuator

通过Actuator可以深入的了解springboot应用程序的内部, 可以进行监控和度量一些配置信息。

这些特性可以通过rest端点、远程shell和jmx获得。

以下主要探讨rest端点的使用。

查看配置明细

1)/beans 上下文bean的情况

查看spring上下文中bean的情况, /beans会返回一个json文档,描述上下文里每个Bean的情况,类型、依赖注入

2)/autoconfig 自动配置情况

positiveMatches指定的自动配置表示匹配成功的bean
negativeMatches对应的自动配置表示匹配失败的bean

3)/env 查看配置属性

包括:环境变量、JVM属性、命令行参数,以及application.properties或application.yml文件提供的属性

运行时度量

对运行时度量情况作一个快照,以此检查应用程序的健康状况。

1)/metrics 应用程序的度量值

2)/trace 跟踪web请求的所有信息

包括请求方法、路径、时间戳,以及请求和响应的头信息。

3)/health 健康检查器

可以检查应用程序启动状况,以及相关依赖中间件的连接状态。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 基于SpringBoot应用监控Actuator安全隐患及解决方式

    概述 微服务作为一项在云中部署应用和服务的新技术是当下比较热门话题,而微服务的特点决定了功能模块的部署是分布式的,运行在不同的机器上相互通过服务调用进行交互,业务流会经过多个微服务的处理和传递,在这种框架下,微服务的监控显得尤为重要. 而Actuator正是Spring Boot提供的对应用系统的监控和管理的集成功能,可以查看应用配置的详细信息,例如自动化配置信息.创建的Spring beans信息.系统环境变量的配置信息以及Web请求的详细信息等. 如果使用不当或者一些不经意的疏忽,可能造成信

  • springboot Actuator的指标监控可视化功能详解

    springboot为我们提供了丰富的指标监控功能SpringBoot Actuator SpringBoot Actuator是springboot为简化我们对微服务项目的监控功能抽取出来的模块,使得我们每个微服务快速引用即可获得生产界别的应用监控.审计等功能. 后序文章会更新使用 我们先来看看怎么可视化 我们可以通过github上的开源项目 这里 我们创建一个springboot项目 作为可视化的服务端 使用新功能首先都是引入依赖 需要web项目 <dependency> <grou

  • SpringBoot actuator 健康检查不通过的解决方案

    SpringBoot actuator 健康检查不通过 今天遇到有个服务能够注册成功,但是健康检查不通过,通过浏览器访问健康检查的url,chrome的network一直显示pending,说明这个请求提交了,但是得不到返回,卡住了. 原来以为健康检查就是检查服务端口下的/health这个请求本身是否能正常返回,其实不是. 所谓健康检查是有很多检查项的,springboot中继承AbstractHealthIndicator的类,比如DataSourceHealthIndicator Redis

  • SpringBoot Admin 如何实现Actuator端点可视化监控

    目录 SpringBoot Admin 实现Actuator端点可视化监控 简介 Spring Boot Admin Server Spring Boot Admin Client 启动客户端, 在管理端进行可视化端点监控 Spring Boot 监控信息可视化 一.设置Spring Boot Admin Server 二.注册客户端 SpringBoot Admin 实现Actuator端点可视化监控 简介 Actuator可视化监控SpringBoot Admin Note: SpringB

  • Prometheus 入门教程之SpringBoot 实现自定义指标监控

    上篇文章我们已经可以在 Grafana 上看到对应的 SpringBoot 应用信息了,通过这些信息我们可以对 SpringBoot 应用有更全面的监控.但是如果我们需要对一些业务指标做监控,我们应该怎么做呢?这篇文章就带你一步步实现一个模拟的订单业务指标监控. 假设我们有一个订单系统,我们需要监控它的实时订单总额.10 分钟内的下单失败率.请求失败数.那么我们应该怎么做呢? 添加业务监控指标 在 spring-web-prometheus-demo 项目的基础上,我们添加一个 Promethe

  • SpringBoot指标监控的实现

    目录 一.SpringBoot--Actuator 1.1 快速开始 1.2 简单介绍最常用的几个端点 1.3 开启或关闭某个端点 1.4 定制端点 1.5 SpringBoot--Admin Server 一.SpringBoot--Actuator 1.1 快速开始 未来每一个微服务在运算部署以后,我们都需要对其进行监控.追踪.审计和控制等等.Springboot就抽取了Actuator场景,使得我们每个微服务快速引用即可获得生产级别的应用监控.审计等功能. 那么,我们要怎么用呢? 首先,导

  • SpringBoot 指标监控actuator的专题

    目录 1.写在前面 2.SpringBoot Actuator 3.定制化Endpoint 3.1 定制health端点信息 3.2 定制info端点信息 1.写在前面 首先肯定要说一下SpringBoot的四大核心了: 自动装配:简单配置甚至零配置即可运行项目 起步依赖:场景启动器 Actuator:指标监控 命令行界面 :命令行 这篇文章呢,我来和大家聊聊指标监控这个东西. 2.SpringBoot Actuator 未来每一个微服务在云上部署以后,我们都需要对其进行监控.追踪.审计.控制等

  • SpringBoot基于Actuator远程关闭服务

    1.在pom.xml文件引入依赖 <!-- 运行状态监控actuator依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 2.配置文件配置 server: port: 8100 #web服务端口 servlet:

  • SpringBoot配置Actuator组件,实现系统监控

    目录 一.Actuator简介 二.与SpringBoot2.0整合 1.核心依赖Jar包 2.Yml配置文件 三.监控接口详解 1.Info接口 2.Health接口 3.Beans接口 4.Conditions接口 5.HeapDump接口 6.Mappings接口 7.ThreadDump接口 8.ShutDown接口 四.源代码地址 一.Actuator简介 监控分类 Actuator 提供Rest接口,展示监控信息. 接口分为三大类: 应用配置类:获取应用程序中加载的应用配置.环境变量

  • SpringBoot实现监控Actuator,关闭redis监测

    目录 SpringBoot监控Actuator,关闭redis监测 方法 springboot Actuator 查看配置明细 运行时度量 SpringBoot监控Actuator,关闭redis监测 方法 当我们导入了spring-boot-starter-actuator这个依赖后, SpringBoot会默认去监测一些信息.其中就包括redis. 会根据redis的默认初始配置, localhost:6379 尝试连接redis.如果我们没有用到redis, 启动就会报错 <depende

  • 聊一聊SpringBoot服务监控机制

    前言 任何一个服务如果没有监控,那就是两眼一抹黑,无法知道当前服务的运行情况,也就无法对可能出现的异常状况进行很好的处理,所以对任意一个服务来说,监控都是必不可少的. 就目前而言,大部分微服务应用都是基于 SpringBoot 来构建,所以了解 SpringBoot 的监控特性是非常有必要的,而 SpringBoot 也提供了一些特性来帮助我们监控应用. 本文基于 SpringBoot 2.3.1.RELEASE 版本演示. SpringBoot 监控 SpringBoot 中的监控可以分为 H

  • SpringBoot服务监控机制原理解析(面试官常问)

    前言 任何一个服务如果没有监控,那就是两眼一抹黑,无法知道当前服务的运行情况,也就无法对可能出现的异常状况进行很好的处理,所以对任意一个服务来说,监控都是必不可少的. 就目前而言,大部分微服务应用都是基于 SpringBoot 来构建,所以了解 SpringBoot 的监控特性是非常有必要的,而 SpringBoot 也提供了一些特性来帮助我们监控应用. 本文基于 SpringBoot 2.3.1.RELEASE 版本演示. SpringBoot 监控 SpringBoot 中的监控可以分为 H

  • 用SpringBoot Admin监控SpringBoot程序

    项目源码地址:https://github.com/laolunsi/spring-boot-examples/tree/master/02-spring-boot-admin-demo 一.SpringBoot Admin概要 SpringBoot Admin用于监控SpringBoot程序,一个SpringBoot程序通过向SpringBoot Admin Server注册或使用@DiscoveryClient等微服务方式,可以将自身注册到SpringBoot Admin Server. S

  • 如何用Springboot Admin监控你的微服务应用

    1 简介 目前,微服务大行其道,各大小公司争相学习模仿,把单体应用拆得七零八落.服务多了,运行的实例多了,给运维人员的压力就更大了.如果有十几个应用,单单做Health Check就已经够费时间的了.聪明的Springboot提供了Actuator接口,可以非常好获得应用的内部信息,然而针对数量庞大的服务却无能为力. 得益于开源社区的力量,我们有了Springboot Admin.它能对注册于服务发现的所有应用监控起来,功能包括健康检查.JVM内存.INFO信息.获得线程栈和堆栈信息.提醒(邮件

  • SpringBoot可视化监控的具体应用

    本文主要介绍了Spring Boot 应用可视化监控,分享给大家,具体如下: 1.Spring Boot 应用暴露监控指标[版本 1.5.7.RELEASE] 首先,添加依赖如下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> /

  • 五分钟解锁springboot admin监控新技巧

    最近这一个月由于项目进度紧张,将近一个月没有动静.分享一下最近体会的springboot监控的一些心得体会,供一些规模不是很大的团队做一些监控. 适用场景: 1.项目规模不大 2.用户量不是很大.并发要求不强 3.无专门运维力量 4.精致的团队规模 对于一些常规的项目,或者企业职责分工不是非常明确的单位来说.往往一个系统从需求到设计,开发,测试到最终上线,运维.往往80%的任务由开发团队来完成.由此,开发人员除了要实现系统的功能,还要为客户进行问题咨询答疑以及生产问题解决. 试想,一个应用上线后

随机推荐