当前位置: 首页 > news >正文

基于spring-boot-admin实现对应用、数据库、nginx等监控

1、服务端相关配置

1.1 yml配置

service:application:name: spring-boot-monitor-server
server:port: 9900
spring:boot:admin:ui:title: 运维监控中心brand: <span class="brand">运维监控中心</span>   # 纯文字即可default-language: zh   # 启动即中文# 让 SBA 使用内置登录模板login-icon: "assets/img/icon-spring-boot-admin.svg"web:resources:static-locations: classpath:/static/,classpath:/i18n/

1.2 pom.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.7</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.maker.monitor</groupId><artifactId>maker-monitor</artifactId><version>0.0.1-SNAPSHOT</version><name>maker-monitor</name><description>Demo project for Spring Boot</description><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 存在于 spring-boot-admin-starter-server,但需手动再引一次 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-server</artifactId><version>3.3.6</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><resources><resource><directory>src/main/resources</directory><includes><include>**/*.json</include><include>**/*.yml</include></includes></resource></resources><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

1.3 服务端增加认证授权配置

package com.maker.monitor.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;@Configuration
@EnableWebSecurity   // 必须
public class AdminSecurityConfig {/* 内存账号,生产可换 JDBC / LDAP */@Beanpublic UserDetailsService users() {UserDetails user = User.builder().username("admin")/* 明文 123456 */.password("123456").roles("ADMIN").build();return new InMemoryUserDetailsManager(user);}/* 密码编码器 */@Beanpublic PasswordEncoder passwordEncoder() {
//        return new BCryptPasswordEncoder();return NoOpPasswordEncoder.getInstance(); // **明文比对**}/* 安全规则 */@Beanpublic SecurityFilterChain filterChain(HttpSecurity http) throws Exception {http.authorizeHttpRequests(auth -> auth/* 1. 登录页、静态资源放行 */.requestMatchers(HttpMethod.GET,"/applications/**", "/instances/**","/login", "/assets/**", "/actuator/**").permitAll().requestMatchers(HttpMethod.POST, "/instances").permitAll()/* 2. 其余都需要认证 */.anyRequest().hasRole("ADMIN"))/* 3. 表单登录 */.formLogin(form -> form.loginPage("/login")          // 用 SBA 自带登录页.defaultSuccessUrl("/", true).permitAll())/* 4. 登出 */.logout(logout -> logout.logoutUrl("/logout").logoutSuccessUrl("/login?logout"))/* 5. 关闭 csrf(如用 postman 测试) */.csrf(csrf -> csrf.disable());return http.build();}
}

2、客户端相关配置

2.1 yml配置

server:port: 8080
spring:application:name: business-client# 1. Redisdata:redis:host: ${REDIS_HOST:100.128.180}port: ${REDIS_PORT:9379}password: ${REDIS_PWD:1234567890}# 2. 达梦dameng:url: ${DM_URL:jdbc:dm://100.128.180.88:16325/xxxx}username: ${DM_USER:xxxx}password: ${DM_PWD:323423424}# 3. Nginxnginx:status-url: ${NGINX_STATUS:http://100.128.180.88/nginx_status}# 4. 东方通 TongWebtongweb:jmx-url: ${TONGWEB_JMX:service:jmx:rmi:///jndi/rmi://10.28.80.88:9060/jmxrmi}boot:admin:client:url: http://localhost:9900  # 服务端地址
#        username: admin                     # 登录账号
#        password: 123456                    # 登录密码instance:# 3.x 已废弃 prefer-ip,直接给 service-urlservice-url: http://${HOST_IP:localhost}:${server.port:8080}name: ${spring.application.name}management:server:port: ${server.port:8080}health:redis:enabled: truedameng:enabled: truenginx:enabled: true   # 需要你在项目里自己实现 NginxHealthIndicatortongweb:enabled: false   # 同样要求你自定义过 TongWebHealthIndicator# --- 5. 其他 ---elasticsearch:enabled: falsemail:enabled: falsediskSpace:enabled: truedefaults:enabled: trueendpoints:web:exposure:include: "*"   # 至少要有 env   # 至少暴露 healthendpoint:env:enabled: trueshow-values: alwaysinfo:enabled: truehealth:show-details: alwaysprobes:enabled: true      # 支持 k8s 探针,可选
probe:services:- name: 档案管理系统(OLD)url: http://110.8.174.71:8088/api/itsm/#/loginexpect-code: 200- name: GZW互联网系统url: https://opweb.sasac.gov.cnexpect-code: 200- name: GZW官网url: http://www.sasac.gov.cn/expect-code: 200- name: GZW监管网系统url: https://opxxx.sasac.gov.cnexpect-code: 200

2.2、pom.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.7</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.maker.monitor.client</groupId><artifactId>multi-middleware-monitor</artifactId><version>1.0</version><name>business-client</name><description>business-client</description><properties><java.version>17</java.version></properties><dependencies><!-- 一定要带 web 容器,否则启动完 main 方法就结束 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-client</artifactId><version>3.3.6</version></dependency><dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId></dependency><dependency><groupId>org.apache.httpcomponents.client5</groupId><artifactId>httpclient5</artifactId></dependency><!--  必须暴露 actuator  --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!-- Redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- 达梦 JDBC(本地 lib 方式) --><dependency><groupId>com.dameng</groupId><artifactId>DmJdbcDriver18</artifactId><version>8.1.3.62</version></dependency><!-- 东方通 JMX 远程 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

3、展示

4、代码下载

4.1服务端下载

通过网盘分享的文件:maker-monitor.zip
链接: https://pan.baidu.com/s/1iV9et3tXmluDv5BZFVcxyw?pwd=trwd 提取码: trwd 

4.2客户端下载

通过网盘分享的文件:monitor-business-client.zip
链接: https://pan.baidu.com/s/1MqJ9oaeIpLCjkQ_WPnlm7A?pwd=svu5 提取码: svu5 

http://www.dtcms.com/a/578892.html

相关文章:

  • 台州公司做网站学校让做网站做完怎么交
  • 回过头来重新对C语言进行深度学习(一)
  • 网站多久才能做起来三明市建设局网站
  • 《Effective Java》解读第9条:try-with-resources 优先于 try-finally
  • redis 大key问题整理
  • 如何解决 pip install --target 安装成功但脚本不在 PATH(无法调用)问题
  • 深圳企业集团网站建设一个人制作网站
  • 网站外链建设原则中国最大建筑招聘网
  • 李沐深度学习笔记D2-矩阵计算
  • 做期货关注网站淄博网站排名优化报价
  • 创新的南昌网站建设住房和城乡建设部网站城市稽查
  • 张家口建设局网站网站规划的内容
  • 花生壳做网站速度古典asp网站源码
  • leetcode 2208 将数组和减半的最少操作次数
  • 免费的外贸网站怎么搭建个人网站电脑做服务器
  • php网站开发软件是什么烟台芝罘区住房建设局网站
  • AI代码编辑器 - AI代码框架 - AIDevFlow - 使用手册
  • 镇江网站建设哪家好阳江市企业网站优化
  • 教程网站后台密码杭州网站建设unohacha
  • 系统运维Day01_SSH服务
  • 长沙企业网站建设优度wordpress英文
  • 一二三线协同 | IT运维系统如何实现问题处理的高效闭环
  • 建设银行淮安招聘网站阿里云网站建设官方自营店
  • 做外贸在那些网站找业务增城网站开发
  • 【HarmonyOS-App发布】
  • 建网站的费用是多少钱旅游电子商务网站建设的流程
  • JVM(Java Virtual Machine)
  • css全局样式初始化
  • 产品类网站手机怎么下载网页上的视频
  • linux一次性批量更新文件时间戳