监控的意义

  • 监控服务状态是否宕机
  • 监控服务运行指标(内存、虚拟机、线程、请求等)
  • 监控日志
  • 管理服务(服务下线)

监控的实施方式

大部分监控平台都是主动拉取监控信息,而不是被动地等待应用程序传递信息

应用程序要设置:是否能被监控、开放那些信息给显示监控信息的服务器(监控平台)

可视化监控平台

Spring Boot Admin :开源社区项目,用于监督和管理SpringBoot应用程序,

客户端注册到服务端后,通过HTTP请求方式,服务端定期从客户端获取对应信息,

并通过UI界面展示对应信息

服务端

  • 坐标↓(可以在创建时在Ops中勾选)
<properties>
<java.version>1.8</java.version>
<spring-boot-admin.version>2.7.4</spring-boot-admin.version>
</properties> <dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency> <dependencyManagement>
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-dependencies</artifactId>
<version>${spring-boot-admin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

  • 将程序配成一个web服务↓
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

  • 配置端口,使用时要防止与本机的其他应用程序的端口冲突
server:
port: 8080

  • 在主启动类开启AdminServer:@EnableAdminServer

客户端

  • 客户端创建时要勾选Ops下的Client,而且必须是web程序

  • 要在配置文件中设置被哪个服务端监控

server:
port: 80 spring:
boot:
admin:
client:
url: http://localhost:8080

  • 在客户端配置哪些信息可以被监控↓
spring:
boot:
admin:
client:
url: http://localhost:8080 management:
endpoint: # 这里设置对外开放是否开放对应功能
health:
enabled: true # health端点必须开放
show-details: always
info:
enabled: true
endpoints:
web:
exposure:
include: "*" # 配在web端能不能看到,默认是health
enabled-by-default: true # 开放所有端点

监控原理

Actuator

actuator提供了SpringBoot生产就绪功能,通过端点的配置与访问,获取端点信息

端点描述了一组监控信息,SpringBoot提供了多个内置端点,也可以根据需要自定义端点信息

访问当前应用的所有端点信息:/actuator

访问端点详细信息:/actuator/端点名称

info端点指标控制

management:
endpoint: # 这里设置对外开放是否开放对应功能
health:
show-details: always
enabled: true
info:
enabled: true
endpoints:
web:
exposure:
include: "*" # 配在web端能不能看到,默认是health
enabled-by-default: true info:
appName: @project.artifactId@
version: @project.version@
author: 王东林 # 在info中配置一个值叫:author,具体值是:王东林
复杂的info信息(在Client端设置)
@Component
public class InfoConfig implements InfoContributor {
@Override
public void contribute(Info.Builder builder) {
builder.withDetail("runTime", System.currentTimeMillis()); Map infoMap = new HashMap();
infoMap.put("buildTime", "2006");
builder.withDetails(infoMap); //支持链式编程
}
}

health端点指标控制

  • 自定义健康指标↓
@Component
public class HealthConfig extends AbstractHealthIndicator {
@Override
protected void doHealthCheck(Health.Builder builder) throws Exception {
boolean condition = false;
if (condition) {
builder.status(Status.UP);
builder.withDetail("haha1", "哈哈1");
builder.withDetail("haha2", "哈哈2");
builder.withDetail("haha3", "哈哈3");
} else {
builder.status(Status.OUT_OF_SERVICE);
builder.withDetail("上线了吗?", "并没有");
} }
}

metrics端点指标控制

  • metrics 即性能指标
  • 自定义metrics端点↓

自定义监控

@Component
//声明该类是端点,id是访问名称,第二个参数是是否默认开启
@Endpoint(id = "pay", enableByDefault = true)
public class PayEndpoint { @ReadOperation //声明当读取该端点调用该方法
public Object pay() {
Map payMap = new HashMap();
payMap.put("level", 600);
payMap.put("level2", 1000);
payMap.put("level5", 9999);
return payMap;
}
}

SpringBootAdmin_监控的更多相关文章

  1. 使用Monit监控本地进程

    目前用它监控某些服务,失败自动重启,同时监控特定的日志文件,如果有变化,就发邮件报警 安装不细写了,网上好多 我先用cat /proc/version看了下我的系统是el6的,于是wget http: ...

  2. node服务的监控预警系统架构

    需求背景 目前node端的服务逐渐成熟,在不少公司内部也开始承担业务处理或者视图渲染工作.不同于个人开发的简单服务器,企业级的node服务要求更为苛刻: 高稳定性.高可靠性.鲁棒性以及直观的监控和报警 ...

  3. 采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)

    前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC Mi ...

  4. Logstash实践: 分布式系统的日志监控

    文/赵杰 2015.11.04 1. 前言 服务端日志你有多重视? 我们没有日志 有日志,但基本不去控制需要输出的内容 经常微调日志,只输出我们想看和有用的 经常监控日志,一方面帮助日志微调,一方面及 ...

  5. C# 利用性能计数器监控网络状态

    本例是利用C#中的性能计数器(PerformanceCounter)监控网络的状态.并能够直观的展现出来 涉及到的知识点: PerformanceCounter,表示 Windows NT 性能计数器 ...

  6. 使用Zabbix监控Oracle数据库

    Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...

  7. 【开源】.net 分布式架构之监控平台

    开源地址:http://git.oschina.net/chejiangyi/Dyd.BaseService.Monitor .net 简单监控平台,用于集群的性能监控,应用耗时监控管理,统一日志管理 ...

  8. Opserver开源的服务器监控系统(ASP.NET)

    Opserver是Stack Exchange下的一个开源监控系统,系统本身由C#语言开发的ASP.NET(MVC)应用程序,无需任何复杂的应用配置,入门很快.下载地址:https://github. ...

  9. Performance Monitor4:监控SQL Server的IO性能

    SQL Server的IO性能受到物理Disk的IO延迟和SQL Server内部执行的IO操作的影响.在监控Disk性能时,最主要的度量值(metric)是IO延迟,IO延迟是指从Applicati ...

  10. IT运维监控解决方案介绍

    现状 •小公司/ 创业团队< 500台服务器规模 开源方案:Zabbix.Nagios.Cacti- 云服务提供商:监控宝.oneAlert等 •BAT级别> 10万台服务器 投 ...

随机推荐

  1. 【IntelliJ】添加javaweb、tomcat语法支持

    默认情况下:idea不支持javaweb的语法 但,我们的期望是: 解决方法:配置tomcat如下: (假设你已经配置好了tomcat)接下来: 1.打开[项目结构(快捷键:Ctrl + Shift ...

  2. C# 集合类 入门

    什么是集合类? 集合类的位置在System.Collections.Generic命名空间中. 在我看来,集合类和大学里<数据结构>中所学的各种结构很像.集合类中包含Queue<T& ...

  3. 聊聊 RocketMQ 主从复制

    提到主从复制,我们可能立马会联想到 MySQL 的主从复制. MySQL 主从复制是 MySQL 高可用机制之一,数据可以从数据库服务器主节点复制到一个或多个从节点. 这篇文章,我们聊聊 Rocket ...

  4. playwright(十三) - PyTest基本使用

      我们都知道,在做单元测试框架中有UnitTest和Pytest,前者是Python中自带无需安装,Pytest需要安装,今天我们来讲的就是Pytest,当然如果是做自动化,建议两个都要掌握一下,可 ...

  5. 电脑安装JDk

    JDK软件下载链接:https://pan.baidu.com/s/1OG6wD-Fvgxu6FwuOUMDmQQ提取码:yu0l Eclipse软件下载链接:https://pan.baidu.co ...

  6. Maven配置UTF8,JDK版本

    <!-- 局部jdk配置,pom.xml中 --> <build> <plugins> <plugin> <groupId>org.apac ...

  7. hexo博客yilia主题_缺失模块_解决方案

    hexo博客yilia主题,左侧栏目有一个全部文章的按钮,刚开始开始报错缺失模块,如下图: 我解决了这个问题着实不容易饶了弯路,但是跟着提示步骤,其实很简单,走起: 1.查看node版本 win键+R ...

  8. 使用docker构建可动态启动的FreeSWITCH实例

    操作系统 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 Docker版本:23.0.6   使用docker打包FreeSWITCH可以极大简化部署环节,但针对高可用场景的 ...

  9. SpringBoot 启动流程分析(寻找扩展点)

    1.SpringBoot maven 依赖版本 <?xml version="1.0" encoding="UTF-8"?> <project ...

  10. oracle 11g手工建库步骤(初学者)

    要建立的数据库ORACLE_SID=test1sys和system的密码为oracle1.建立相应的目录mkdir /u01/app/oracle/oradata/test1mkdir /u01/ap ...