Spring Boot 应用可视化监控
欢迎访问我的网站:原文
使用spring-actuator 并且使用prometheus, grafana 做可视化视图展示
总体过程图:

监控
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 文件中的账号密码,就能看到下图:

ps: 这里需要注意一点,我们在
prometheums.yml
中使用的IP地址一定要准确,因为我是docker访问的,所以我使用的是宿主机的地址
数据可视化展示
同样的我也是使用 docker :
docker run --name grafana -d -p 3000:3000 grafana/grafana
成功之后访问:http:localhost:3000,输入账号密码:admin/admin
。
之后就开始配置 grafna。
- 先配置数据源,这里稍微注意下 ip 地址
2017-11-02-16-49-26
- 新建 dashboard
2017-11-02-16-51-04
- 配置图形数据
2017-11-02-16-51-28
- 选择指标,这里的指标数据只能是
promethues
采集到了的数据http://localhost:9090/graph:

4.1. prometh
采集的数据http://localhost:9090/graph

- 最终结果
