Actuator与服务监控

时间:2022-07-24
本文章向大家介绍Actuator与服务监控,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

在SpringCloud体系中,SpringCloud-Admin能够提供强大的服务监控功能。去年我也整理过SpringCloud-admin的相关文档。但对Actuator并不是很熟悉,之前只知道Actuator能够提供了很多restful接口供SpringCloud-admin去调用。然后进行展示。

因为微服务能够通过注册中心获取到服务的地址从而使得SpringCloud只需要对接到注册中心即可实现对服务的监控。但是考虑到有些系统目前处于另外一种状态。比如与微服务相比服务确实是将一个大系统拆分成了很多独立的子系统。而且子系统可以独立部署而且还可以集群部署。但是没有注册中心,也就是服务没有弹性。服务的容错性只能通过nginx等被动的方式进行。那么在这种形势下使用SpringCloud-admin就不行了。但是作为基础组件的Actuator确实可以用一下。但是肯定需要我们自定义开发了。当然服务端肯定需要与我们进行配合,然后导入Actuator相关的jar包。然后进行暴露。作为收集端和展示端我们需要采用定时任务的方式进行获取Actuator的服务信息。然后进行处理并存储,然后通过html页面进行对外展示。基本的思路是这样的。我本人的想法是做一个即可以兼容微服务又可以兼容普通项目的监控平台。这样对于运维和开发来说都有重要的意义。

项目中如何整合Actuator?

1.导入spring-boot-starter-actuator。

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

在配置文件中填写 actuator相关暴露的接口信息。

# 监控端口为8081
management.server.port=8081
#不允许调用actuator提供的服务关机接口
management.endpoint.shutdown.enabled=false
# 设置端点是否可用 默认只有shutdown可用
management.endpoints.enabled-by-default=true
# 设置是否暴露端点 不让shutdown进行暴露供api调用
management.endpoints.web.exposure.exclude=shutdown
#将所有的监控接口对外暴露,注意这里的*不用带引号 
management.endpoints.web.exposure.include=*
#监控容器额contentpath
management.server.servlet.context-path=/monitor
#监控地址的基础前缀
management.endpoints.web.base-path=/simple

设置好上边配置信息。就可以启动程序并查看暴露的接口了。

可以看到Actuator共扫描到了15个可以暴露的接口。

在postMan中测试一下所暴露的接口,通过这些接口我们可以进行定制化开发。然后制作自己的监控系统。

那么这些接口都提供哪些信息?要做好监控这些东西都是相当重要的。

在官网上我们发现

就目前来说,个人觉得metrics、health、info、configprops比较重要。所以后期整合的时候会先收集这些指标。