千家信息网

SpringBoot-Admin如何实现微服务监控+健康检查+钉钉告警

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,小编给大家分享一下SpringBoot-Admin如何实现微服务监控+健康检查+钉钉告警,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!基于SpringCloud微服务平台,进行服务实
千家信息网最后更新 2025年01月31日SpringBoot-Admin如何实现微服务监控+健康检查+钉钉告警

小编给大家分享一下SpringBoot-Admin如何实现微服务监控+健康检查+钉钉告警,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

基于SpringCloud微服务平台,进行服务实例监控及健康检查,注册中心为eureka,SpringBoot提供了很好的组件SpringBoot Admin,2.X版本直接可以配置钉钉机器人告警。

效果:可以实现eureka注册的实例上线、下线触发钉钉告警。监控我们的服务实例健康检查。

搭建admin-server

pom依赖

        4.0.0                        org.springframework.boot                spring-boot-starter-parent                2.4.11                                 com.example        admin-server        1.0.0        etc-admin-server        Spring Boot Admin监控eureka服务实例和健康检查,钉钉告警                        1.8                2.4.3                2020.0.4                                    org.springframework.boot            spring-boot-starter-security                            org.springframework.boot            spring-boot-starter-web                                                de.codecentric                        spring-boot-admin-starter-server                                                        org.springframework.cloud                        spring-cloud-starter-netflix-eureka-client                                                        org.springframework.boot                        spring-boot-starter-test                        test                                                                                                        org.springframework.cloud                                spring-cloud-dependencies                                ${spring-cloud.version}                                pom                                import                                                                                de.codecentric                                spring-boot-admin-dependencies                                ${spring-boot-admin.version}                                pom                                import                                                                ${project.name}                                                                        org.springframework.boot                                spring-boot-maven-plugin                                                

application.yml配置

spring:  application:    name: admin-server  security:    user:      name: "admin"      password: "pwd"  boot:    admin:      notify:        dingtalk:          enabled: true          webhookUrl: 'https://oapi.dingtalk.com/robot/send?access_token=钉钉机器人access_token'          secret: '钉钉机器人secret'          message: '服务告警: #{instance.registration.name} #{instance.id} is #{event.statusInfo.status}'server:  port: 9002eureka:  client:    registryFetchIntervalSeconds: 5    service-url:      defaultZone: 'http://127.0.0.1:8020/eureka/'  instance:    hostname: ${spring.cloud.client.ip-address}    instance-id: ${spring.cloud.client.ip-address}:${server.port}    prefer-ip-address: true    ip-address: ${spring.cloud.client.ip-address}    leaseRenewalIntervalInSeconds: 10    health-check-url-path: /actuator/health    metadata-map:      user.name: ${spring.security.user.name}      user.password: ${spring.security.user.password}management:  endpoints:    web:      exposure:        include: "*"  endpoint:    health:      show-details: ALWAYS

启动类

package com.example;import de.codecentric.boot.admin.server.config.EnableAdminServer;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;/** * @author xxx */@EnableAdminServer@EnableDiscoveryClient@SpringBootApplicationpublic class AdminServerApplication {        public static void main(String[] args) {                SpringApplication.run(AdminServerApplication.class, args);        }}

config类

package com.example;import de.codecentric.boot.admin.server.config.AdminServerProperties;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotation.web.builders.HttpSecurity;import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;import org.springframework.security.web.csrf.CookieCsrfTokenRepository;/** * WebSecurity配置 * @author xxxx */@Configurationpublic class WebSecurityConfigure extends WebSecurityConfigurerAdapter {    private final String adminContextPath;    public WebSecurityConfigure(AdminServerProperties adminServerProperties) {        this.adminContextPath = adminServerProperties.getContextPath();    }    @Override    protected void configure(HttpSecurity http) throws Exception {        // @formatter:off        SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();        successHandler.setTargetUrlParameter("redirectTo");        successHandler.setDefaultTargetUrl(adminContextPath + "/");        http.authorizeRequests()                .antMatchers(adminContextPath + "/assets/**").permitAll()                .antMatchers(adminContextPath + "/login").permitAll()                .anyRequest().authenticated()                .and()                .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()                .logout().logoutUrl(adminContextPath + "/logout").and()                .httpBasic().and()                .csrf()                .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())                .ignoringAntMatchers(                        adminContextPath + "/instances",                        adminContextPath + "/actuator/**"                );        // @formatter:on    }}

启动后效果




看完了这篇文章,相信你对"SpringBoot-Admin如何实现微服务监控+健康检查+钉钉告警"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

0