SpringBoot 监控

概述

SpringBoot 自带监控功能 Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean 加载情况、配置属性、日志信息等。

使用

使用步骤

  1. 导入依赖坐标:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  1. 访问 http://localhost:8080/acruator



  2. 路径详解:

路径 描述
/beans 描述应用程序上下文里全部的 Bean,以及它们的关系
/env 获取全部环境属性
/env/{name} 根据名称获取特定的环境属性值
/health 报告应用程序的健康指标,这些值由 HealthIndicator 的实现类提供
/info 获取应用程序的定制信息,这些信息由 info 打头的属性提供
/mappings 描述全部的 URI 路径,以及它们和控制器(包含 Actuator 端点)的映射关系
/metrics 报告各种应用程序度量信息,比如内存用量和 HTTP 请求计数
/metrics/{name} 报告指定名称的应用程序度量值
/trace 提供基本的 HTTP 请求跟踪信息(时间戳、HTTP 头等)
  1. 添加基础监控信息:
# 添加 info 信息
info.name=zhangsan
info.age=23 # 开启健康检查的完整信息
management.endpoint.health.show-details=always

  1. 添加完整监控信息:
# 将所有的监控 endpoint 暴露出来
management.endpoints.web.exposure.include=*

如下定义的 RequestMapping,就可通过 /mappings 进行在线监控:

@RestController
public class HelloController { @RequestMapping("/hello")
public String sayHello() {
return "Hello Hello SpringBoot!";
}
}

同时,IDEA 也提供了 Actuator 的查看功能:

SpringBoot Admin

概述

  • SpringBoot Admin 是一个开源社区项目,用于管理和监控 SpringBoot 应用程序。
  • SpringBoot Admin 有两个角色:客户端(Client)和服务端(Server)。
  • 应用程序作为 SpringBoot Admin Client 向为 Spring Boot Admin Server 注册。
  • SpringBoot Admin Server 的 UI 界面包含了 SpringBoot Admin Client 的 Actuator Endpoint 上的一些监控信息。

使用

admin-server

  1. 创建 admin-server 模块
  2. 导入依赖坐标 admin-starter-server



  3. 在引导类上启用监控功能 @EnableAdminServer

admin-client

  1. 创建 admin-client 模块
  2. 导入依赖坐标 admin-starter-client
  3. 配置相关信息:server 地址等
  4. 启动 server 和 client 服务,访问 server

SpringBoot 项目部署

SpringBoot 项目开发完毕后,支持两种方式部署到服务器:

方式一:jar 包(官方推荐)

  1. 将项目打成 jar 包。
  2. 使用 java -jar 命令启动内置 Tomcat 进行部署。

方式二:war 包

  1. 将项目改成 war
  2. 启动类进行以下修改:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; // 继承 SpringBootServletInitializer
@SpringBootApplication
public class SpringbootDeployApplication extends SpringBootServletInitializer { public static void main(String[] args) {
SpringApplication.run(SpringbootDeployApplication.class, args);
} // 重写以下方法
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(SpringbootDeployApplication.class);
}
}
  1. 部署到外置 Tomcat 即可。

SpringBoot 原理分析、监控、项目部署的更多相关文章

  1. SpringBoot原理分析与配置

    1.1 起步依赖原理分析 1.1.1 分析spring-boot-starter-parent 按住Ctrl点击pom.xml中的spring-boot-starter-parent,跳转到了spri ...

  2. SpringBoot原理—分析SpringBoot启动机制(starter机制)

    一:前言使用过springboot的同学应该已经知道,springboot通过默认配置了很多框架的使用方式帮我们大大简化了项目初始搭建以及开发过程.本文的目的就是一步步分析springboot的启动过 ...

  3. 云计算:Ubuntu下Vue+Springboot前后端分离项目部署(多节点)

    一.机器准备 首先准备三台机器: 我是一台WINDOWS系统主机,在WINDOWS里的 VMware 中安装两台Ubuntu系统虚拟机 如果你的虚拟机只有 CentOS,可以参考这篇文章:https: ...

  4. springBoot高级:自动配置分析,事件监听,启动流程分析,监控,部署

    知识点梳理 课堂讲义 02-SpringBoot自动配置-@Conditional使用 Condition是Spring4.0后引入的条件化配置接口,通过实现Condition接口可以完成有条件的加载 ...

  5. 部署点评Cat监控项目(转)

    原文地址:http://www.bubuko.com/infodetail-986338.html 在项目中监控代码运行的状况,可以采用点评的Cat项目来监控整个项目,但是按照官方的文档来部署cat, ...

  6. Android平台APK分析工具包androguard的部署使用和原理分析

    原创文章,转载请注明出处,谢谢. Android应用程序分析主要有静态分析和动态分析两种,常见的静态分析工具是Apktool.dex2jar以及jdgui.今天突然主要到Google code上有个叫 ...

  7. 部署点评Cat监控项目

    在项目中监控代码运行的状况,可以采用点评的Cat项目来监控整个项目,但是按照官方的文档来部署cat,总会遇到各种问题,讲解的也不够简明清楚,现在用一个单机来部署运行cat监控项目. 首先,到项目的Gi ...

  8. SpringBoot入门(0) HelloWorld的实现与原理分析

    SpringBoot(0) HelloWorld的实现与原理分析 一.环境准备 1.1 环境约束 –jdk1.8:Spring Boot 推荐jdk1.7及以上:java version “1.8.0 ...

  9. springboot创建,自动装配原理分析,run方法启动

    使用IDEA快速创建一个springboot项目 创建Spring Initializr,然后一直下一步下一步直至完成 选择web,表示创建web项目 运行原理分析 我们先来看看pom.xml文件 核 ...

随机推荐

  1. awk统计命令(求和、求平均、求最大值、求最小值)

    本节内容:awk统计命令 1.求和 cat data|awk '{sum+=$1} END {print "Sum = ", sum}' 2.求平均 cat data|awk '{ ...

  2. django搭建示例-ubantu环境

    python3安装--------------------------------------------------------------------------- 最新的django依赖pyth ...

  3. MySQL 用户权限相关命令

    ##1.创建用户: create user test identified by '123456';##identified后面跟密码 ##2.查询所有用户: select user from mys ...

  4. MySQL5.7安装教程(亲测有效)

    跟着狂神学java到了数据库阶段了,首先得安装好数据库啊,这里用的是MySQL 压缩包下载:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5. ...

  5. Docker从入门到精通(三)——概念与执行流程

    前面我们大概介绍了docker是什么以及如何安装docker,但是对里面出现的一些名词,可能大家还不熟悉,这篇文章就来为大家解惑. 1.容器化平台 Docker 是提供应用打包,部署与运行应用的容器化 ...

  6. 你的Redis怎么持久化的

    一.持久化套路 OK,一般我们在生产上采用的持久化策略为 (1)master关闭持久化 (2)slave开RDB即可,必要的时候AOF和RDB都开启 该策略能够适应绝大部分场景,绝大部分集群架构. 为 ...

  7. 密码学之Hash散列

    一.简介 hash(散列.杂凑)函数,是将任意长度的数据映射到有限长度的域上. 直观解释起来,就是对一串数据m进行杂糅,输出另一段固定长度的数据h,作为这段数据的特征(指纹).也就是说,无论数据块m有 ...

  8. 离散数学3.1&&3.3

    离散数学 当前所使用的数字电脑是离散的,二进制指令,传输到内存 早先使用的模拟电脑是连续的 判断是否是命题(两个步骤)[不要跳步骤] 陈述句 要么是真命题要么是假命题 真假性 真:用T或1表示,假:用 ...

  9. mrctf2020_shellcode_revenge(可见符shellcode)!!!!

    第一次碰到这种题目,需要用可见符shellcode来做 题目我就不放了,我认为网上大佬会比我说的更加详细 [原创]纯字母shellcode揭秘-软件逆向-看雪论坛-安全社区|安全招聘|bbs.pedi ...

  10. java数据类型:集合存储元素类型限制<泛型> ;自定义类指定泛型<T> 以及限制用法;派生子类泛型<T> super(泛型内参数); 泛型通配符?以及?限制用法

    问题背景 Java 集合有个缺点,把一个对象"丢进"集合里之后,集合就会"忘记"这个对象的数据类型,当再次取出该对象时 该对象的编译类型就变Object类型(其 ...