springbootadmin整合

目录

整体图

springboot版本:

springbootadmin版本:

整合了日志、钉钉推送、

admin服务端

pom.xml 

application.yml

java相关类

启动类

admin增加账号密码,security相关类

钉钉预警相关类,几个类放到一起

验证:http://localhost:9100

client客户端

pom.xml

application.yml

钉钉机器人webhook

参考:ruoyi的文档


整体图

 

springboot版本:

<spring-boot.version>2.2.1.RELEASE</spring-boot.version>

springbootadmin版本:

<spring-boot-admin.version>2.2.1</spring-boot-admin.version>

整合了日志、钉钉推送、

admin服务端

pom.xml 

 <!-- SpringBoot Admin -->
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-server</artifactId>
            <version>${spring-boot-admin.version}</version>
        </dependency>
        <!-- spring security -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <!-- SpringBoot Web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.13</version>
        </dependency>

application.yml

spring:
  application:
    name: homelife-monitor
  security:
    user:
      name: admin
      password: admin123
  boot:
    admin:
      ui:
        title: 员工APP


# 开发环境配置
server:
  # 服务器的HTTP端口,默认为8080
  port: 9100
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    logfile:
      enabled: true
    health:
      show-details: always

java相关类

启动类

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@EnableAdminServer
@SpringBootApplication
public class MonitorApp
{
    public static void main(String[] args)
    {
        SpringApplication.run(MonitorApp.class, args);
        System.out.println("(♥◠‿◠)ノ゙  监控中心启动成功   ლ(´ڡ`ლ)゙  \n" +
                " .-------.       ____     __        \n" +
                " |  _ _   \\      \\   \\   /  /    \n" +
                " | ( ' )  |       \\  _. /  '       \n" +
                " |(_ o _) /        _( )_ .'         \n" +
                " | (_,_).' __  ___(_ o _)'          \n" +
                " |  |\\ \\  |  ||   |(_,_)'         \n" +
                " |  | \\ `'   /|   `-'  /           \n" +
                " |  |  \\    /  \\      /           \n" +
                " ''-'   `'-'    `-..-'              ");
    }
}

admin增加账号密码,security相关类


/**
 * 监控权限配置
 *
 * @author ruoyi
 */
@Configuration
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter
{
    private final String adminContextPath;

    public WebSecurityConfigurer(AdminServerProperties adminServerProperties)
    {
        this.adminContextPath = adminServerProperties.getContextPath();
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception
    {
        SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
        successHandler.setTargetUrlParameter("redirectTo");
        successHandler.setDefaultTargetUrl(adminContextPath + "/");

        http
            .headers().frameOptions().disable()
            .and().authorizeRequests()
            .antMatchers(adminContextPath + "/assets/**"
                , adminContextPath + "/login"
                , adminContextPath + "/actuator/**"
                , adminContextPath + "/instances/**"
            ).permitAll()
            .anyRequest().authenticated()
            .and()
            .formLogin().loginPage(adminContextPath + "/login")
            .successHandler(successHandler).and()
            .logout().logoutUrl(adminContextPath + "/logout")
            .and()
            .httpBasic().and()
            .csrf()
            .disable();
    }
}

钉钉预警相关类,几个类放到一起

//通知回调类

import java.util.Map;

@Component
public class DingDingNotifier extends AbstractStatusChangeNotifier {

    public DingDingNotifier(InstanceRepository repository) {
        super(repository);
    }

    @Override
    protected Mono<Void> doNotify(InstanceEvent event, Instance instance) {
        String serviceName = instance.getRegistration().getName();
        String serviceUrl = instance.getRegistration().getServiceUrl();
        String getStatus = instance.getStatusInfo().getStatus();
        Map<String, Object> details = instance.getStatusInfo().getDetails();
        StringBuilder str = new StringBuilder();
        /**\n前后必须两个空格**/
        str.append("- **应用名称** : 【" + serviceName + "】    \n  ");
//        str.append("<font color=#FF0000 size=6 face=\"黑体\"> 监控报警 : 【" + serviceName + "】 </font>");
        str.append("-  **服务地址**  :" + serviceUrl + "   \n  ");
        str.append("-  **应用状态**  :" + getStatus + "   \n  ");
        str.append("-  **应用详情**  :" + JSONObject.toJSONString(details));
        Markdown m = new Markdown();
        m.setTitle("后台监控");
        m.setText(str.toString());
        Robot robot = new Robot();
        robot.setMarkdown(m);
        return Mono.fromRunnable(() -> {
//            DingDingMessageUtil.sendTextMessage(str.toString());
            RobotSendUtils.send(robot, "https://oapi.dingtalk.com/robot/send?access_token=de4b9f59f517ed887dc966a549c5a59dc7b4f27edc1d960040");
        });
    }
}

// httpclient发送类和实体信息

public class RobotSendUtils {

    public static void send(Robot robot, String WEBHOOK){

        //创建HttpClient对象
        HttpClient httpClient = HttpClients.createDefault();

        // 创建请求方法的实例
        HttpPost httpPost = new HttpPost(WEBHOOK);

        //请求参数
        httpPost.addHeader("Content-Type", "application/json; charset=utf-8");
        HttpEntity httpEntity = new StringEntity(JSON.toJSONString(robot),"utf-8");
        httpPost.setEntity(httpEntity);

        HttpResponse response;
        String result;
        try {
            response = httpClient.execute(httpPost);

            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {

                result = EntityUtils.toString(response.getEntity(), "utf-8");

                System.out.println(result);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

-------------

import lombok.Data;

@Data
public class Robot {

    private String msgtype = "markdown";//默认markdown

    private Markdown markdown;//信息

    private At at;//@的人

}

----------------
import lombok.Data;

@Data
public class Markdown {

    private String title;//标题

    private String text;//内容

}

----------------

import java.util.List;

public class At {

    private List atMobiles;//@的人
    private Boolean isAtAll = false;//默认不@all

}


验证:http://localhost:9100

client客户端

pom.xml

    <!-- SpringBoot Admin Client -->
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>${spring-boot-admin.version}</version>
        </dependency>

<!-- SpringBoot Actuator -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

application.yml

spring:
  application:
    name: admin-client
  boot:
    admin:
      client:
        url: http://localhost:9100

management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    logfile:
      enabled: true
      external-file: ${user.home}/homelife-start/logs/application.log
    health:
      show-details: always

钉钉机器人webhook

这个可以取百度一下

参考:ruoyi的文档

http://doc.ruoyi.vip/ruoyi-cloud/cloud/monitor.html#%E6%95%B4%E5%90%88admin-ui

https://blog.csdn.net/ron03129596/article/details/109127704?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-4.control&spm=1001.2101.3001.4242

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBootAdmin可以与Nacos进行集成,以实现对Spring Boot应用程序的监控和管理。为了实现这种集成,可以按照以下步骤进行操作: 1. 创建Spring Boot Admin Server:使用Spring Cloud注册中心(例如Nacos)作为Spring Boot Admin Server的注册中心。这可以在创建服务端时进行配置。 2. 配置SpringBootAdmin与Nacos集成:可以通过修改Spring Boot Admin Server的配置文件来配置与Nacos的集成。可以设置Nacos的地址和其他相关配置。具体的配置可以参考相关文档或者参考引用中提供的示例。 3. 认证和授权:SpringBootAdmin提供了登录页面和注销功能,但是它不会提供默认的身份验证和授权方法。因此,在分布式Web应用程序中,可以根据具体需求选择合适的身份验证和授权方法,并进行相应的集成和配置。 使用上述方法,您可以将SpringBootAdmin与Nacos集成,实现对Spring Boot应用程序的监控和管理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringBootAdmin与Nacos集成demo](https://download.csdn.net/download/jialiuyang/11069675)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [springBoot Admin整合nacos](https://blog.csdn.net/qq_48624152/article/details/123112628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Nacos整合Spring Boot Admin](https://blog.csdn.net/afgasdg/article/details/124332560)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值