Spring Cloud Admin健康检查 邮件 短信

本文介绍了如何使用SpringBootAdmin来管理和监控SpringBoot微服务。首先,创建了一个SpringBoot项目并引入了SpringBootAdmin的相关依赖,然后通过配置文件启用监控功能,并展示了启动后的访问地址。接着,添加了邮件通知配置,当服务下线时会收到邮件通知。最后,自定义了短信通知,实现了服务状态改变时发送短信的功能。
摘要由CSDN通过智能技术生成

Admin 简介

官方文档:What is Spring Boot Admin?

SpringBootAdmin是一个用于管理和监控SpringBoot微服务的社区项目,可以使用客户端注册或者Eureka服务发现向服务端提供监控信息。
注意,服务端相当于提供UI界面,实际的监控信息由客户端Actuator提供
通过SpringBootAdmin,你可以通过华丽大气的界面访问到整个微服务需要的监控信息,例如服务健康检查信息、CPU、内存、操作系统信息等等

本篇文章使用SpringBoot 2.3.3.RELEASE、SpringCloud Hoxton.SR6、SpringBoot Admin 2.2.3版本,此外,服务注册中心采用eureka

一、SpringCloud使用SpringBoot Admin

1.1 创建一个SpringBoot项目,命名为admin-test,引入如下依赖

 <!-- Admin 服务 -->
  <dependency>
      <groupId>de.codecentric</groupId>
      <artifactId>spring-boot-admin-starter-server</artifactId>
      <version>2.2.1</version>
  </dependency>
  <!-- Admin 界面 -->
  <dependency>
      <groupId>de.codecentric</groupId>
      <artifactId>spring-boot-admin-server-ui</artifactId>
      <version>2.2.1</version>
  </dependency>

1.2 启动类

@SpringBootApplication
@EnableAdminServer
public class AdminTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(AdminTestApplication.class, args);
    }
    
  }

1.3 配置文件

spring.application.name=admin-test

management.endpoints.jmx.exposure.include=*
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always

# spring cloud access&secret config
alibaba.cloud.access-key=****
alibaba.cloud.secret-key=****

1.4 启动项目
输入项目地址:http://localhost:8080/applications
在这里插入图片描述

二、配置邮件通知

2.1 pom

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2.2 邮件配置

spring.mail.host=smtp.qq.com
spring.mail.username=单纯QQ号
spring.mail.password=授权码
spring.mail.properties.mail.smpt.auth=true
spring.mail.properties.mail.smpt.starttls.enable=true
spring.mail.properties.mail.smpt.starttls.required=true

#收件邮箱
spring.boot.admin.notify.mail.to=xxxx@qq.com
# 发件邮箱
spring.boot.admin.notify.mail.from= xxxx@qq.com

2.3 QQ邮箱设置
找到自己的QQ邮箱
QQ邮箱 》 设置 》 账户 》红框处获取 授权码
在这里插入图片描述
我们将 consumer 服务下线后
在这里插入图片描述
接着我们就收到了邮件通知,告诉我们服务关闭了
在这里插入图片描述

三、发送短信通知

通知类:

package com.passenger.config;

import java.util.Map;

import com.common.utils.SMS.SendSms;
import de.codecentric.boot.admin.server.domain.entities.Instance;
import de.codecentric.boot.admin.server.domain.entities.InstanceRepository;
import de.codecentric.boot.admin.server.domain.events.InstanceEvent;
import de.codecentric.boot.admin.server.notify.AbstractStatusChangeNotifier;
import net.minidev.json.JSONObject;
import reactor.core.publisher.Mono;

public class MessageNotifier extends AbstractStatusChangeNotifier  {
	public MessageNotifier(InstanceRepository repository) {
        super(repository);
    }
    @Override
    protected Mono<Void> doNotify(InstanceEvent event, Instance instance) {
        String serviceName = instance.getRegistration().getName();
        String serviceUrl = instance.getRegistration().getServiceUrl();
        String status = instance.getStatusInfo().getStatus();
        Map<String, Object> details = instance.getStatusInfo().getDetails();
        StringBuilder str = new StringBuilder();
        str.append("服务预警 : 【" + serviceName + "】");
        str.append("【服务地址】" + serviceUrl);
        str.append("【状态】" + status);
        str.append("【详情】" + JSONObject.toJSONString(details));
        return Mono.fromRunnable(() -> {
            SendSms.sendMessage(str.toString(),"159****78");//SendSms是发送短信的工具类,需要自行封装,sendMessage是工具类发送短信的静态方法
        });
    }
}

启动类:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import de.codecentric.boot.admin.server.domain.entities.InstanceRepository;

@SpringBootApplication
@EnableAdminServer
public class AdminApplication {

	public static void main(String[] args) {
		SpringApplication.run(AdminApplication.class, args);
	}
	   @Bean
	    public DingDingNotifier dingDingNotifier(InstanceRepository repository) {
	        return new DingDingNotifier(repository);
	    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值