监控的意义

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

监控的实施方式

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

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

可视化监控平台

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. js修改css样式

    修改宽度: document.getElementById("div1").style.width="200px"; 修改border-radius: docu ...

  2. 让AI支持游戏制作流程:从游戏设计到发布一个完整的生态系统

    目录 引言 随着游戏产业的快速发展,人工智能(AI)技术在游戏开发中的应用越来越广泛.游戏设计人员可以通过利用AI技术来自动化游戏中的某些流程,提高游戏制作的效率,降低开发成本,同时还可以创造出更加具 ...

  3. java.lang.Error: Unresolved compilation problems

    一般有两种常见的情况: 1.当一个 jar 文件的 MANIFEST.MF 中已经标记了 Sealed: true 时,这个 jar 内所有的 java package 中的类必须来自这个 jar 包 ...

  4. 如何在 Windows10 Professional 服务器上搭建自己的 Git 服务器。

    一.简介 以前,在别家的公司,一般早就把源代码管理工具搭建好了,很少有机会自己搭建一套.最近,公司也许要把现在不少的源码进行管理,于是我打算自己搭建源代码管理服务器.说起源代码管理,当然有很多中解决方 ...

  5. BitLocker加密过程中断断电,能否恢复数据?

    BitLocker是Windows系统提供的磁盘加密功能,用户自己可以手动开启.在访问受BitLocker保护的磁盘分区时,需要先提供正确的密码.秘钥或是BEK文件.如果使用BitLocker将系统盘 ...

  6. 【原创】xenomai UDD介绍与UDD用户态驱动示例

    目录 xenomai UDD与用户态驱动示例 一.UDD介绍 二.UDD原理及框架 1. 内存映射 2. 中断处理 UDD与UIO的区别 3. linux UIO与xenomai UDD框架对比 3. ...

  7. 【转载】DSP 缓存机制及影响测试

    本文主要以DSP讲解cache原理,但原理与CPU是相通的,故转载,原文地址:https://blog.csdn.net/qq_39376747/article/details/112794096 目 ...

  8. linux内核vmlinux的编译过程之 --- vmlinux.o详解(八)

    内核构建系统之所以要在链接 vmlinux 之前,去链接出vmlinux.o.其原因并不是要将 vmlinux.o 链接进 vmlinux,而是要在链接 vmlinux.o 的过程中做完两个动作: e ...

  9. Dubbo的高级特性:服务管控篇

    王有志,一个分享硬核Java技术的互金摸鱼侠 加入Java人的提桶跑路群:共同富裕的Java人 上一篇,我们已经介绍了 DUbbo 在服务治理方面提供的特性,今天我们一起来看看 Dubbo 在其它方面 ...

  10. Linux 修改文本dos/unix 格式

    使用 vi 命令打开文件,使用 :set ff 查看格式 如果显示dos,可使用 :set ff=unix 修改 pem 证书,使用 cat xx.key xx.crt DigiCertCA.crt ...