Spring Boot Admin

news2024/11/17 2:48:56

概述

Spirng Boot Admin 登录页面
  • Spring Boot Admin是一个用于管理Spring Boot应用的监控工具,它允许你查看和管理多个Spring Boot应用实例。用于应用信息进行界面化的展示,常常辅助我们开发人员快速查看服务运行状态
  • 在微服务架构中,Spring Boot Admin通常作为一个独立的微服务运行,作为监控服务端可以单独部署和启动
  • 但在我们公司内部微服务架构中,我们使用Spring Boot Admin与Eureka注册中心进行集成,以便自动发现并监控注册在Eureka中的服务实例。这种集成方式可以减少对客户端应用的单独配置,实现更加自动化和集中化的监控管理

监控功能

  • 显示应用程序的监控状态
  • 应用程序上下线监控(部署过50+应用到正式环境时用于确定应用是否发布成功)
  • 查看 JVM,线程信息(遇到OOM时使用过)
  • 可视化的查看日志以及下载日志文件
  • 动态切换日志级别
  • Http 请求信息跟踪
  • 其他功能点……

项目实战

创建一个标准的springboot项目

pom添加依赖

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>版本号</version>
</dependency>

yml配置Spring Boot Admin Server属性

bootstrap/application.yml配置SpringBoot Admin Server属性:端口号,服务名,用户登录信息等

# 端口
server:
  port: 90040 
spring:
  application:
    name: monitor-server
  # config client 配置中心config
  profiles:
    active: prod
  cloud:
    config:
      fail-fast: true
      username: config
      password: cofing
      label: trunk
      profile: ${spring.profiles.active} #prod  # 取哪個版本的配置文件
      #uri: http://localhost:9090/ # Config Server URI, 无Eureka Server才需要配置
      discovery:
        enabled: true
        service-id: cdp-config-server
        
    inetutils:
      ignored-interfaces: # 配置Eureka Client註冊到Eureka服務器時,需要忽略的網卡清單。僅針對運行環境(主機)存在多網卡的情景。
        - "docker.*"  # 忽略并避免使用docker網卡IP註冊
        - "veth.*"    # 忽略并避免使用docker環境下容器的虛擬網卡
        - "virbr0"    # 忽略并避免使用 KVM創建的提供NAT模式網卡IP註冊 
        - "kbr0"      # 忽略并避免使用自定義的基於OpenvSwitch技術構建的docker物理主機通信虛擬網IP註冊
        - "VMware.*"  # 忽略并避免使用vmware網卡IP註冊
  main:
    allow-bean-definition-overriding: true

management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS
    
# 和Eureka instance进行集成
eureka:
  instance:
    prefer-ip-address: true
    instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}
    # 注意:如果应用存在上下文,则必须设置health-check-url-path和status-page-url-path
    #health-check-url: http://${spring.cloud.client.ip-address}:${server.port}${server.servlet.context-path}/actuator/health
    health-check-url-path: /actuator/health
    #status-page-url: http://${spring.cloud.client.ip-address}:${server.port}${server.servlet.context-path}/actuator/info
    status-page-url-path: /actuator/info
    home-page-url-path: /
    metadata-map:
      management:
        context-path: /actuator  # spring boot admin获取客户端的默认端点路径前缀为"/actuator":因为客户端有上下文路径,故需要通过eureka client告知admin server
      user:  # 如果不配置则无法获取 /actuator/health信息,提示401
        name: monitor  #SpringBootAdmin本身作为一个Eureka客户端被发现,这里由于SpringBootAdmin需要进行登录,因此,此处配置SpringBootAdmin登录时使用的用户名
        password: monitor2024.

--- # prod为正式Docker配置环境,使用"---"间隔不同环境
spring:
  profiles: prod
eureka:
  client:
    serviceUrl: 
      defaultZone:  http://admin:admin.@peer1:8761/eureka/,http://admin:admin.@peer2:8762/eureka/  # 高可用地址
在config配置中心动态拉取springboot admin服务应用对应的配置文件信息:
spring:
  # 安全配置
  security:
    user:
      name: monitor
	  # password: ENC(YTz0WOWB8fm4wvHNRsjKoHxFNo3T64D1)
      password: monitor2024.

#jasypt 正式环境需要加密,对应ENC(YTz0WOWB8fm4wvHNRsjKoHxFNo3T64D1)
#jasypt:
  #encryptor:
    #password: monitor2024 # 密钥盐/passsword salt

创建启动类

package com.monitor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties;
import de.codecentric.boot.admin.server.config.EnableAdminServer;

/**
 * 
 * @ClassName: MonitorApplication
 * @Description: 应用监控服务端启动类
 * @author test
 *
 */
@SpringBootApplication
@EnableAutoConfiguration
@EnableAdminServer
@EnableDiscoveryClient
@EnableEncryptableProperties
public class MonitorApplication {
    public static void main( String[] args ){
        SpringApplication.run(MonitorApplication.class, args);
    }
}

启动主启动类

Spring Boot Admin Server启动后,通过http:localhost(或者部署的服务器IP):90040/,随后输入正确登录用户信息(monitor/monitor2024),验证通过后我们就可以查看已经正常启动的服务以及对应的运行状态等信息~

应用配置信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1637767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【linux】进程(深入理解linux进程状态)

开始之前先说一个与本文无关的小知识&#xff0c;chdir命令可以更改当前进程的工作目录哦。 目录 linux具体进程状态&#xff1a;R && S&#xff1a;T && t&#xff1a;D&#xff1a;僵尸进程 && 孤儿进程&#xff1a; OS的理论线&#xff1a;运行&…

JMeter性能压测脚本录制

第一步&#xff1a;电脑打开控制面板设置代理服务器 第二步&#xff1a;jmeter的测试计划添加一个HTTP&#xff08;S&#xff09;脚本记录器 在脚本记录器里配置好信息&#xff0c;然后保存为脚本文件&#xff08;.*表示限定&#xff09; 此方框内容为项目地址&#xff08;可改…

如何安装cuda版本的torch-sparse和torch-scatter

安装对应cuda版本的torch&#xff0c;确保cuda可用 使用nvidia-smi查看cuda版本&#xff0c;我的是11.4&#xff0c;然后就找到pytorch历史版本&#xff0c;页面搜索cuda 11.4&#xff0c;没搜到&#xff0c;继续往小版本搜&#xff0c;搜到cuda 11.3&#xff0c;果断安装&…

日拱一卒,月进一步(10)

303. 区域和检索 - 数组不可变 - 力扣&#xff08;LeetCode&#xff09; 动态规划~ 前缀和 最朴素的思想是存储数组nums的值&#xff0c;每次调用sumRange时&#xff0c;通过循环的方法计算数组nums从下标i到下标j的元素和&#xff0c;需要计算j-i1个元素的和。由于每次检索…

Sobel算法:边缘提取的原理与实践【基于python、C++基于opencv的代码实现!!】

Sobel算法&#xff1a;深入解析边缘检测的原理与实现 在图像处理领域&#xff0c;边缘检测是一项至关重要的任务。其中&#xff0c;Sobel算法以其高效和稳定的性能&#xff0c;成为边缘检测中的常用方法之一。本文将深入解析Sobel算法的原理与实现&#xff0c;带您了解如何通过…

02_机器学习算法_基于XGBoost的分类预测

1. XGBoost 算法 1.1 XGBoost 的介绍 XGBoost是2016年由华盛顿大学陈天奇老师带领开发的一个可扩展机器学习系统。严格意义上讲XGBoost并不是一种模型,而是一个可供用户轻松解决分类、回归或排序问题的软件包。它内部实现了梯度提升树(GBDT)模型,并对模型中的算法进行了诸多…

通过先序和中序求后序(通过后序和中序求先序)

一、通过先序和中序求后序 二、通过后序和中序求后序 1、利用后序和中序的特点来求出二叉树 2、后序输出二叉树 如图&#xff0c;先给了一个后序和中序&#xff0c;后序的最后一个为根节点 然后在中序中查找相同的元素&#xff0c;在这个元素左边的为左子树&#xff0c;右…

最简方式安装oracle 23c free

简介 我一直认为&#xff0c;最靠谱的文档就是原厂官网的文档&#xff0c;阅读再次加工的文档都有可能把你带偏。 oracle官网提供了大量的文档&#xff0c;一个好的oracle使用者&#xff0c;应该首先是好的oracle官网阅读者。 oracle数据库作为收费颇贵的商业数据库软件&#…

C++ 优先级队列priority_queue

1、常用接口 底层使用的是堆实现&#xff0c;默认为大堆 2、理解&#xff1a; 优先级队列就是即使插入的是一个乱序的&#xff0c;但是依旧会按照有序的顺序出队列 优先级队列就是会根据大小来出队列&#xff0c;而不是谁在队头就出谁。 优先级队列底层是使用堆实现&#x…

Android Studio Jellyfish | 2023.3.1,快来看看有什么更新吧

大家节日快乐&#xff0c;在这个快乐的节日里&#xff0c;Android Studio 又迎来了它新一轮更新&#xff0c;虽然本次更新里有一大份和我们“没什么关系”&#xff0c;但是也许你的“网络”支持呢&#xff1f;一起来感受下全新的 Jellyfish &#xff08;水母&#xff09; 给我们…

使用Python及R语言绘制简易数据分析报告

Pytohn实现 在python中有很多包可以实现绘制数据分析报告的功能&#xff0c;推荐两个较为方便的包&#xff1a;pandas-profiling 和 sweetviz 。 使用 pandas-profiling 包&#xff08;功能全面&#xff09; 这个包的个别依赖包与机器学习的 sklearn 包的依赖包存在版本冲突&a…

Upload-labs 靶场通关解析(上)

前言 文件上传漏洞是一种常见的网络安全漏洞&#xff0c;存在于许多Web应用程序中。攻击者利用这个漏洞可以上传恶意文件到目标服务器&#xff0c;从而执行各种恶意操作&#xff0c;如执行恶意代码、获取敏感信息、控制服务器等。 文件上传漏洞的原理是&#xff0c;Web应用程…

商超物联网方案-Hotspot Service和客流分析方案概述

商超物联网方案-Hotspot Service和客流分析方案概述 场景概述 大型商场、大型综合体在相互竞争及线上消费的影响下&#xff0c;利润增长缓慢&#xff0c;迫切需要通过提供个性化服务提升顾客购物体验&#xff0c;促进利润增长。 向不同顾客推送其感兴趣的广告&#xff0c;不仅…

判断100以内的素数(筛选法)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <math.h>int main() {//初始化变量值&#xff1b;int i 0;int j 0;int n 0;int a[101] { 0 };//循环填充数组a…

Qt简单离线音乐播放器

有上传本地音乐文件&#xff0c;播放&#xff0c;暂停&#xff0c;拖拉进度条等功能的播放器。 mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QMediaPlayer> #include <QFileDialog> #include <QTime&g…

GORM数据库连接池对接Prometheus

一、背景与介绍 Golang的database/sql包定了关于操作数据库的相关接口&#xff0c;但是没有去做对应数据库的实现。这些实现是预留给开发者或者对应厂商进行实现的。 其中让我比较关注的是Golang的sql包有没有实现连接池pool的机制呢? 毕竟Golang是静态语言&#xff0c;类似J…

【模板】二维前缀和

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 二维前缀和板题。 二维前缀和&#xff1a;pre[i][j]a[i][j]pre[i-1][j]pre[i][j-1]-pre[i-1][j-1]; 子矩阵 左上角为(x1,y1) 右下角(x2,y2…

计算机网络chapter1——家庭作业

文章目录 复习题1.1节&#xff08;1&#xff09; “主机”和“端系统”之间有何不同&#xff1f;列举几种不同类型的端系统。web服务器是一种端系统吗&#xff1f;&#xff08;2&#xff09;协议一词常用来用来描述外交关系&#xff0c;维基百科是如何描述外交关系的&#xff1…

038——基于STM32和I.MX6uLL实现uart控制GPS(失败者总结)

目录 1、GPS模块简介 2、GPS数据格式 3、方案梳理 1、GPS模块简介 全球定位系统(Global Positioning System&#xff0c; GPS)是一种以空中卫星为基础的高精度无线电导航的定位系统&#xff0c;它在全球任何地方以及近地空间都能够提供准确的地理位置、车行速度及精确的时间…

项目运行到手机端

运行到真机 手机和点到连在同一个wifi网络下面点击hbuiler上面的预览得到一个&#xff0c;network的网址这个时候去在手机访问&#xff0c;那么就可以访问网页了 跨域处理 这个时候可能会访问存在跨域问题 将uniapp的H5版本运行到真机进行调试&#xff0c;主要涉及到跨域问题…