欢迎访问我的网站:原文
使用spring-actuator 并且使用prometheus, grafana 做可视化视图展示
总体过程图:
2017-11-02-17-21-51
监控
SpringBoot 应用监控
SpringBoot 其实也整合了 ops 的功能,也就是运维的部分能力。通过引入包spring-boot-starter-actuator来监控相关的指标信息,详情文档:Actuator 介绍。另外在新版本的actuator中已经有了加密信息,所以对于一些信息的获取可能需要授权,因此我们还需要引入spring-security,pom 文件如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
当然既然引入了spring-security,我们就需要对其做一些配置,我的完整配置是这样的:
# 应用的api端口
server.port=8818
# 启用基础认证
security.basic.enabled = true
# 安全路径列表,逗号分隔,此处只针对/admin路径进行认证
security.basic.path = /admin
# 认证使用的用户名
security.user.name = admin
# 认证使用的密码。 默认情况下,启动时会记录随机密码。
security.user.password = 123456
# 可以访问管理端点的用户角色列表,逗号分隔
management.security.roles = SUPERUSER
# actuator暴露接口使用的端口,为了和api接口使用的端口进行分离
management.port = 8099
# actuator暴露接口的前缀
management.context-path = /admin
# actuator是否需要安全保证
management.security.enabled = true
# actuator的metrics接口是否需要安全保证
endpoints.metrics.sensitive = false
# actuator的metrics接口是否开启
endpoints.metrics.enabled=true
# actuator的health接口是否需要安全保证
endpoints.health.sensitive=false
# actuator的health接口是否开启
endpoints.health.enabled=true
指标采集
采集应用的指标信息,我们使用的是prometheus,相应的我们引入包:
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_spring_boot</artifactId>
<version>0.0.26</version>
</dependency>
之后在程序中开启相应的配置:
@SpringBootApplication
@EnablePrometheusEndpoint
@EnableSpringBootMetricsCollector
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
这个时候我们可以开始启动我们的应用程序,并且访问相关接口:http://localhost:8099/admin/prometheus
输入 properties 文件中的账号密码,就能看到下图:












网友评论