应用监控对标主要是在运维阶段开展的(监控系统软件),本文通过数据整理汇集了应用监控对标主要是在运维阶段开展的(监控系统软件)相关信息,下面一起看看。

简介Spring Boot提供了运行时应用程序监控和管理的功能。我们可以通过http、JMX和SSH协议进行操作。将自动获得审计、健康和索引信息。

端点列出一些主要端点:

敏感信息访问限制根据上表,如果认证为假,说明不敏感,可以随意访问;否则是受保护的,不能随意访问。

endpoints . mappings . sensitive=false。每一个都设置起来很麻烦。默认情况下,敏感方法要求用户具有执行器的角色,因此还可以设置关闭安全限制:

management . security . enabled=false http我们可以通过HTTP监控和管理应用程序,在pom.xml中添加以下依赖项:

依赖性groupid org.springframework.boot/groupid artifactid spring-boot-starter-actuator/artifactid/依赖性测试端点:自己测试其他端点!

默认情况下,Shutdownshutdown端点是关闭的,我们可以在application.properties中打开它:

端点。shutdown.enabled=trueshutdown端点不支持GET提交,access http://localhost:8080/shut down by POST;控制台效果:

自定义端点自定义端点通常由端点端点名称属性名称设置,每个段由.1:修改端点

Endpoints.beans.id=mybeans此时访问地址变为http://localhost:8080/my beans;2:打开端点

endpoints . shut down . enabled=true 3:关闭端点。

Endpoints.beans.enabled=false关闭端点并访问404: 4:仅打开所需的端点。如果只打开所需的端点,我们可以关闭所有端点,然后打开所需的端点:

端点。已启用=假端点。豆子。enabled=true//只有Beans端点打开,对其他端点的访问是4045:自定义端点访问路径。

management . context-path=/manage此时的访问路径为:6:自定义端点访问端口。当我们出于安全原因不将端点的端口暴露给外部时,我们需要为应用程序本身的业务端口和端点使用的端口使用不同的端口:

Management.port=8081访问路径为:7:关闭http端点。

Management.port=-1此时访问的所有端点都是404;

自定义端点当Spring Boot提供的端点不能满足我们的特殊需求,需要监控特殊的应用状态时,就需要自定义一个端点:StatusService.java。

@ servicepublic类statusservice {//这个类没什么特别的,只是改变了status私有字符串status的值;公共字符串get status(){ return status;public void set status(String status){ this . status=status;StatusEndPoint.java

//通过@ConfigurationProperties的设置,我们可以在application.properties中配置我们的endpoint @ configuration properties(前缀=' endpoints.status ')通过endpoints.status,IgnoreUnknownFields=false)///继承AbstractEndpoint类,它是Endpoint接口的抽象实现,目前该类必须覆盖invoke方法公共类status endpoint extensions抽象端点字符串实现ApplicationContextAware {//实现ApplicationContextAware接口可以使当前类感知Spring容器的资源,即可以访问容器的资源ApplicationContext context上下文;public status endpoint(){ super(' status ');@ Override public string invoke(){//覆盖invoke方法,返回我们要监控的内容,status service status service=context . get bean(status service . class);return '当前状态为:' Status service . get Status();@ Override public void setApplicationContext(application context arg 0)抛出beans exception { this . context=arg 0;DemoApplication.java

@ spring boot application @ RestControllerpublic class demo application { @ auto wired status service status service;public static void main(String[]args){ spring application . run(demo application . class,args);//bean @ bean公共端点string status(){ endpoint string status=new status endpoint();退货状态;//更改status @ requestmapping ('/change ')公共字符串更改状态(string status){ status service . set status(status);返回“确定”;访问:访问:再次访问:

自定义健康指示器健康信息是从ApplicationContext中所有健康指示器的Bean中收集的,一些健康指示器内置于Spring Boot中。自定义自己的HealthIndicator只需要一个实现HealthIndicator接口并注册为Bean的类:StatusHealth.java

@ Component公共类Status health实现HealthIndicator {//实现health indicator接口并重写health方法@ autowired Status service Status service;@ Override public Health Health(){ String status=status service . get status();if(status==null||!status . equals(' running '){ return health . down()。withDetail('Error ','未运行')。build();//当status的值为非运行时,构造失败:return Health.up()。build();//否则,测试运行成功:access:修改status的值为running,access:再次访问:

JMX我们还可以通过JMX监控和管理应用程序;在控制台调用java内置的jconsole实现JMX监控:打开jconsole页面,选择当前程序的进程:监控内存、线程、CPU利用率等。我们的程序可以在MBean标签的org.springframework.boot域下进行监控和管理:

书籍:Spring Boot实战以上是刚学习时做的笔记,以备参考!

这个网站是个人知识管理的网络存储空间。所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请一键举报。

更多应用监控对标主要是在运维阶段开展的(监控系统软件)相关信息请关注本站,本文仅仅做为展示!