监控的意义

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

监控的实施方式

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

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

可视化监控平台

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. shell编程-发送消息

    需求:利用 Linux 自带的 mesg 和 write 工具,编写一个向用户快速发送消息的脚本,输入用户名作为第一个参数,消息内容为第二个参数.脚本需要检测用户是否登录,是否打开消息功能,以及当前发 ...

  2. CKS 考试题整理 (02)-Apparmor

    Context Apparmor 已在 cluster 的工作节点 node02 上被启用.一个 Apparmor 配置文件已存在,但尚未被实施. Task 在 cluster 的工作节点 node0 ...

  3. Instruments中常用Template的使用

     Instruments是苹果提供的Xcode套件,可用于分析iOS,MacOS程序的性能数据,进行性能提升.Instruments提供了很多类型的Template,用于特定场景的分析.这里选了3种常 ...

  4. 带你彻底掌握Bean的生命周期

    摘要:我们将深入研究Spring Framework的核心部分--Spring Bean的生命周期. 本文分享自华为云社区<Spring高手之路5--彻底掌握Bean的生命周期>,作者: ...

  5. 2023-07-01:redis过期策略都有哪些?LRU 算法知道吗?

    2023-07-01:redis过期策略都有哪些?LRU 算法知道吗? 答案2023-07-01: 缓存淘汰算法(过期策略) 当Redis的内存超出物理内存限制时,内存中的数据就会频繁地与磁盘进行交换 ...

  6. 1.6 编写双管道ShellCode后门

    本文将介绍如何将CMD绑定到双向管道上,这是一种常用的黑客反弹技巧,可以让用户在命令行界面下与其他程序进行交互,我们将从创建管道.启动进程.传输数据等方面对这个功能进行详细讲解.此外,本文还将通过使用 ...

  7. Day02_Java_作业

    A:选择题 1. 若有定义:int a,b; a=a+10;则执行上述语句后,a的值是(d). A. 10 B. 11 C. 0 D. 编译产生错误 2. 以下选项中变量均已正确定义,合法的赋值语句是 ...

  8. 图像处理_ISP_坏点矫正

    1 坏点介绍 图像坏点(Bad pixel) : 图像传感器上光线采集点(像素点)所形成的阵列存在工艺上的缺陷,或光信号进行转化为电信号的过程中出现错误,从而会造成图像上像素信息错误,导致图像中的像素 ...

  9. CentOS7系统初始化个人配置

    以下内容为个人最小化安装后的配置步骤 更换yum源为阿里云 yum install -y epel-release lrzsz wget yum-axelget mv /etc/yum.repos.d ...

  10. 一文理解GIT的代码冲突

    对于GIT,不知道有没有人和我一样,很长时间都是小心翼翼.紧张兮兮,生怕一不小心,自己辛苦写的代码没了. 特别是代码冲突,更是难到我无法理解,每次都要求助于百度,跟着人家的教程一步步解决,下一次还是这 ...