赞
踩
<!-- boot-admin服务端依赖,版本 -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server-ui</artifactId>
<version>2.2.2</version>
</dependency>
<!--搭配安全框架,使得进入服务监控需要密码-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
前两个依赖是 springBoot 集成 Actuator 的必要可视化依赖,它依赖传递了 spring-boot-starter-actuator 的依赖,
使得 actuator 可用。
security 则是为了更加安全,登录可视化页面需要账号密码。
server:
port: 7017 #端口,也是页面访问的端口
spring:
profiles:
active: dev
#服务名
application:
name: service-actuator
#进入页面的权限密码
security:
user:
name: admin
password: 123456
boot:
admin:
ui:
#页面标题
title: '模块学习服务监控'
启动类上添加注解 @EnableAdminServer
/**
* @author byChen
* @date 2022/8/30
*/
@EnableAdminServer
@SpringBootApplication
public class Actuator7016 {
public static void main(String[] args) {
SpringApplication.run(Actuator7016.class, args);
}
}
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;
/**
* 服务注册,设置账号密码
*/
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private final String adminContextPath;
public SecurityConfig(AdminServerProperties adminServerProperties) {
this.adminContextPath = adminServerProperties.getContextPath();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
successHandler.setTargetUrlParameter("redirectTo");
http.authorizeRequests()
//1.配置所有静态资源和登录页可以公开访问
.antMatchers(adminContextPath + "/assets/**").permitAll()
.antMatchers(adminContextPath + "/login").permitAll()
.anyRequest().authenticated()
.and()
//2.配置登录和登出路径
.formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
.logout().logoutUrl(adminContextPath + "/logout").and()
//3.开启http basic支持,admin-client注册时需要使用
.httpBasic().and()
.csrf().disable();
}
}
直接启动服务端的服务,然后访问页面 http://localhost:7017 端口为自己配置的端口
登录进入
可以看到,页面正常展示出来,但是因为没有客户端服务注册进去,因此显示 0 个服务,接下来创建客户端,并配置
这里客户端指一般的微服务模块,即需要统一交给actuator来管理的模块
客户端需要引入客户端依赖
<!--服务监控注册-->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.2.2</version>
</dependency>
server:
port: 7015
spring:
datasource:
url: jdbc:mysql://47.93.244.193:3306/module-learn?serverTimezone=GMT%2B8
username: webUser
password: chenchong
driver-class-name: com.mysql.cj.jdbc.Driver
profiles:
active: dev
#服务名
application:
name: service-cache
# 注册服务监控
boot:
admin:
client:
url: http://localhost:7017 #这里端口即是 actuator 服务端的端口号
username: admin #因为服务端配置了密码验证,所以这里客户端也得输入账号密码
password: 123456
# #可以控制服务监控哪个不显示
management:
endpoint:
health:
show-details: always # 这里写always 全部信息都展示
# 左侧展示所有信息
endpoints:
web:
exposure:
include: "*" # 展示全部信息
# 如果想要在页面远程查看日志信息,需要指定文件输出地址保存起来
logging:
file:
name: D:/logs/cache.log
可以看到,已经有一个客户端应用注册进去了,点击应用墙里面的应用,进入详细指标信息页面:
到这里配置完成
接下来学习各部分的含义内容
如何有其他的软件应用也实现了健康指标,在这里也会显示,比如redis
这里展示应用中,配置文件(yml,或者properties) 中全部可配置的属性信息(包含自己配置的+环境默认配置的)
调整日志级别
远程查看日志
因为没有配置定时任务,因此这里没有展示
显示controller层接口映射,包含自定义的+actuator 自己的
在服务端上引入邮件依赖
<!--监控邮件通知-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
mail:
host: smtp.qq.com # 确定使用qq邮箱服务
username: 133442345736@qq.com
#授权码
password: xxxxxxxxxxxx
boot:
admin:
ui:
#页面标题
title: '模块学习服务监控'
notify:
mail:
#发件人
from: 133442345736@qq.com
#收件人,多个用 , 分隔开
to: 99123456536@qq.com
当有服务停掉,会自动发邮件到收件人邮箱
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。