Spring Boot Admin –用于管理Spring Boot应用程序的Admin UI

作为微服务开发的一部分,我们许多人都将Spring Boot与Spring Cloud功能一起使用。 在微服务领域,我们将有许多Spring Boot应用程序将在相同/不同的主机上运行。 如果将Spring Actuator添加到Spring Boot应用程序中,我们将获得很多现成的端点来监视和与Spring Boot应用程序交互。 列表如下。

ID 描述 敏感违约
actuator 为其他端点提供基于超媒体的“发现页面”。 要求Spring HATEOAS位于类路径上。 真正
auditevents 公开当前应用程序的审核事件信息。 真正
autoconfig 显示自动配置报告,该报告显示所有自动配置候选者以及应用它们“被”或“未被”的原因。 真正
beans 显示应用程序中所有Spring Bean的完整列表。 真正
configprops 显示所有@ConfigurationProperties的整理列表。 真正
dump 执行线程转储。 真正
env 从Spring的ConfigurableEnvironment公开属性。 真正
flyway 显示已应用的所有Flyway数据库迁移。 真正
health 显示应用程序的运行状况信息(当应用程序是安全的时,通过未经身份验证的连接访问时为简单的“状态”,而通过身份验证时则为完整的消息详细信息)。
info 显示任意应用程序信息。
loggers 显示和修改应用程序中记录器的配置。 真正
liquibase 显示已应用的所有Liquibase数据库迁移。 真正
metrics 显示当前应用程序的“指标”信息。 真正
mappings 显示所有@RequestMapping路径的整理列表。 真正
shutdown 允许正常关闭应用程序(默认情况下未启用)。 真正
trace 显示跟踪信息(默认情况下,最近的100个HTTP请求)。 真正

上面的端点提供了许多有关Spring Boot应用程序的见解。 但是,如果您有许多正在运行的应用程序,则通过命中终点并检查JSON响应来监视每个应用程序是一个繁琐的过程。 为了避免这种麻烦,Code Centric团队提出了Spring Boot Admin模块,它将为我们提供Admin UI Dash板来管理Spring Boot应用程序。 该模块处理来自执行器端点的数据,并提供有关单个仪表板上所有已注册应用程序的见解。 现在,我们将在以下各节中演示Spring Boot Admin功能。

第一步,创建一个Spring Boot应用程序,通过添加以下maven依赖项将其作为Spring Boot Admin服务器模块进行制作。

<dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-server</artifactId><version>1.5.1</version>
</dependency>
<dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-server-ui</artifactId><version>1.5.1</version>
</dependency>

通过将@EnableAdminServer添加到您的配置中来添加Spring Boot Admin Server配置。

package org.samrttechie;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;import de.codecentric.boot.admin.config.EnableAdminServer;@EnableAdminServer
@Configuration
@SpringBootApplication
public class SpringBootAdminApplication {public static void main(String[] args) {SpringApplication.run(SpringBootAdminApplication.class, args);}@Configurationpublic static class SecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {// Page with login form is served as /login.html and does a POST on /loginhttp.formLogin().loginPage("/login.html").loginProcessingUrl("/login").permitAll// The UI does a POST on /logout on logouthttp.logout().logoutUrl("/logout");// The ui currently doesn't support csrfhttp.csrf().disable();// Requests for the login page and the static assets are allowedhttp.authorizeRequests().antMatchers("/login.html", "/**/*.css", "/img/**", "/third-party/**").permitAll();// ... and any other request needs to be authorizedhttp.authorizeRequests().antMatchers("/**").authenticated();// Enable so that the clients can authenticate via HTTP basic for registeringhttp.httpBasic();}}// end::configuration-spring-security[]}

让我们创建更多的Spring Boot应用程序,以通过上述步骤中创建的Spring Boot Admin服务器进行监视。 现在将创建的所有Spring Boot应用程序将充当Spring Boot Admin客户端。 要将应用程序作为Admin客户端,请添加以下依赖项以及执行器依赖项。 在此演示中,我创建了三个应用程序,例如Eureka Server,客户服务和订单服务。

<dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-client</artifactId><version>1.5.1</version>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

将以下属性添加到application.properties文件。 这个属性告诉Spring Boot Admin服务器在哪里运行。 因此,客户端将向服务器注册。

spring.boot.admin.url=http://localhost:1111

现在,如果我们启动Admin Server和其他Spring Boot应用程序,则可以在Admin Server仪表板中查看所有admin客户端信息。 在此示例中,当我们在1111端口上启动管理服务器时,我们可以在http://:// <host_name>:1111上看到仪表板。 以下是Admin Server用户界面的屏幕截图。

下面给出了应用程序的详细视图。 在此视图中,我们可以看到日志文件的尾部,指标,环境变量,日志配置,我们可以在其中动态切换组件级别,根级别或程序包级别的日志级别以及其他信息。

现在,我们将看到另一个名为Spring Boot Admin的通知功能。 当应用程序状态为DOWN或应用程序状态为UP时,这将通知管理员。 Spring Boot管理员支持以下渠道通知用户。

  • 邮件通知
  • 寻呼机通知
  • Hipchat通知
  • 松弛通知
  • 让我们聊天通知

在本文中,我们将配置Slack通知。 将以下属性添加到Spring Boot Admin Server的application.properties文件中。

spring.boot.admin.notify.slack.webhook-url=https://hooks.slack.com/services/T8787879tttr/B5UM0989988L/0000990999VD1hVt7Go1eL //Slack Webhook URL of a channel
spring.boot.admin.notify.slack.message="*#{application.names *#{to.status}*" //Message to appear in the channel

使用Spring Boot Admin,我们可以管理所有应用程序。 因此,我们需要使用登录功能来保护Spring Boot Admin UI。 让我们启用到Spring Boot Admin服务器的登录功能。 在这里,我将进行基本身份验证。 将以下maven依赖项添加到Admin Server模块。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-server-ui-login</artifactId><version>1.5.1</version>
</dependency>

将以下属性添加到application.properties文件。

security.user.name=admin //user name to authenticate
security.user.password=admin123 //Password to authenticate

随着我们向Admin Server添加安全性,Admin客户端应该能够通过身份验证连接到服务器。 因此,将以下属性添加到Admin客户端的application.properties文件。

spring.boot.admin.username=admin
spring.boot.admin.password=admin123

还有一些其他UI功能,例如Hystrix,Turbine UI,我们可以在仪表板上启用它们。 您可以在此处找到更多详细信息。 Github上提供了为该演示创建的示例代码。

翻译自: https://www.javacodegeeks.com/2017/06/spring-boot-admin-admin-ui-administration-spring-boot-applications.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

md5与des算法有何不同_Python算法详解:为什么说算法是程序的灵魂?

算法是程序的灵魂,只有掌握了算法,才能轻松地驾驭程序开发。软件开发工作不是按部就班,而是选择一种最合理的算法去实现项目功能。算法能够引导开发者在面对一个项目功能时用什么思路去实现,有了这个思路后,编程工作只需要遭循这个思路去实现即可。本章将详细讲解计算机算法的基…

高可用性(HA),会话复制,多VM Payara群集

抽象 在研究如何创建高可用性&#xff08;HA&#xff09;时&#xff0c;我发现了会话复制的多机Payara / GlassFish群集&#xff0c;无法在一个参考中找到所需的一切。 我认为这将是一个普遍的需求并且很容易找到。 不幸的是&#xff0c;我的假设是错误的。 因此&#xff0c;本…

如何快速弄懂一个新模型_如何评估创业项目是否靠谱?一个新的模型 | 创创锦囊...

要判断一个创业项目是否靠谱&#xff0c;是否能拥有广阔的市场和巨大的增长潜力&#xff0c;不仅是投资人关心的话题&#xff0c;更是每一个创业者在创业过程中不断思考的问题。投资人关注大趋势、大机会&#xff0c;遵循自上而下的思维模型&#xff0c;在心仪的赛道上寻找合适…

java编译找不到符号 int age=in.nexint()_Java报错找不到符号,小白自学求大佬解决...

import java.util.*;public class guess_1{public static void main(String[] args){Scanner innew Scanner(System.in);System.out.println("--------猜拳游戏--------");System.out.println("请出拳(1.剪刀 2.石头 3.布)");int personin.nextInt();int c…

Java命令行界面(第24部分):MarkUtils-CLI

本系列中有关使用Java解析命令行参数的第一篇文章介绍了Apache Commons CLI库。 这是本系列中介绍的基于Java的命令行解析库中最古老的&#xff0c;而且可能是最常用的之一。 Apache Commons CLI确实显示了它的时代&#xff0c;特别是与一些更现代的基于Java的命令行处理库相比…

view如何接受json_如何将你的 ThinkJS 项目部署到 ZEIT 上

编者按&#xff1a;本文作者奇舞团前端开发工程师李喆明。什么是 ZEITZEIT(https://zeit.co) 是免费的云平台&#xff0c;支持部署静态网站以及 Serverless 函数。Serverless 是近几年比较火的概念&#xff0c;简单去理解就是你只需要去实现具体的业务逻辑&#xff0c;而与最终…

Spring MVC和REST中@RestController和@Controller注释之间的区别

Spring MVC中的RestController注释不过是Controller和ResponseBody注释的组合。 它已添加到Spring 4.0中&#xff0c;以简化在Spring框架中RESTful Web Services的开发。 如果您熟悉REST Web服务&#xff0c;您就会知道Web应用程序与REST API之间的根本区别在于&#xff0c;Web…

java patriciatrie_明明白白以太坊Merkle Patricia Trie

在以太坊数据结构中&#xff0c;Merkle Patricia Trie始终是个绕不过去的坎&#xff0c;世界状态&#xff0c;交易&#xff0c;交易收据等都是以这种树的形式存储在区块链数据库中&#xff0c;并将树root hash保存在区块头里。可以说不弄懂这种树的原理就没有办法真正明白以太坊…

jdeveloper_适用于JDeveloper 11gR2的Glassfish插件

jdeveloper众所周知&#xff0c; ADF Essentials是使用Java构建Web应用程序的绝佳框架&#xff0c;它可以自由开发和部署。 您在Glassfish&#xff08;3.1&#xff09;服务器上部署ADF Essentials应用程序。 但是&#xff0c;JDeveloper并不带有嵌入式Glassfish服务器&#xff…

Spring Cloud教程– Spring Cloud Config Server简介

问题 SpringBoot在通过属性或YAML文件外部化配置属性方面提供了很大的灵活性。 我们还可以使用特定于配置文件的配置文件&#xff08;例如application.properties &#xff0c; application-dev.properties &#xff0c; application-prod.properties等&#xff09;分别为每个环…

数字孪生体技术白皮书_基于Flownex的数字孪生体解决方案 系列介绍之二:数据中心应用实例...

致力于数字孪生体技术的研究与发展通过解决方案和工程化应用造福人类来源&#xff1a;数字孪生体实验室原创作者&#xff1a;王永康转载请注明来源和出处导 读《基于Flownex的数字孪生体解决方案》是我们最近完成的系列落地方案之一。该方案适用于热力系统、冷却系统、通风空调…

node php聊天室,最简单的Nodejs聊天室示例

今天群里一个同学找我要一个nodejs聊天室的demo。给他了一个简单的例子&#xff0c;顺便记录下&#xff1a;准备工作(前提是已经装好了nodejs)&#xff1a;mkdir nodejs-democd nodejs-demo安装express : npm install express安装socket.io : npm install socket.io安装foreve…

neo4j安装_neo4j 社区版win10 下安装

准备工作&#xff1a;Neo4j下载网址&#xff1a;https://neo4j.com/download-center/#releasesava jdk官网下载&#xff1a;https://www.oracle.com/technetwork/java/javase/downloads/index.html安装 查看是否有用旧版本的java jdk ,如果有请在设置“应用和功能”卸载 旧的ja…

php网站 qq登陆,php写的插件网站接入QQ登录,QQ互联

qq按钮这里的链接是入口&#xff0c;调用你的apiapi_qq.php前端直接链接到此/*** 这个QQ登录简单实用&#xff0c;只要大家看我写的注释会一目了然&#xff0c;请注意看哦。* 带有"todo"这样注释的地方都是要你去改成你自己的逻辑* 这个php怎么进来呢&#xff1f;这是…

Spring MVC中@RequestParam和@PathVariable批注之间的区别?

Spring MVC框架是在Java世界中开发Web应用程序最流行的框架之一&#xff0c;它还提供了一些有用的注释&#xff0c;可以从传入的请求中提取数据并将请求映射到控制器&#xff0c;例如 RequestMapping&#xff0c; RequestParam和PathVariable。 即使将RequestParam和ParthVari…

excel 两列模糊匹配给出结果_北大硕士给大脑植入Excel病毒,工作效率提升了好几倍...

在工作中&#xff0c;我们经常会碰到这样的同事&#xff0c;他们是这样完成工作的&#xff1a;先用计算器算好结果&#xff0c;甚者动用手指头在电脑屏幕上数数&#xff0c;然后把数据填写到Excel表格中。结果可以预见&#xff0c;原本可以在上班时间完成的工作&#xff0c;愣是…

java ee cdi_Java EE CDI Producer方法教程

java ee cdi这是CDI Producer方法的教程。 在CDI中&#xff0c;生产者方法生成一个对象&#xff0c;然后可以将其注入。 当我们要注入本身不是bean的对象&#xff0c;要注入的对象的具体类型在运行时可能有所不同&#xff0c;或者当对象需要一些bean构造函数不执行的自定义初始…

qnap nas web php,如何在QNAP NAS上建立并使用 iSCSI Target

本帖最后由 小Q 于 2015-2-5 13:30 编辑在QNAP Turbo NAS上建立并使用iSCSI Target&#xff0c;快速、便利且便宜建置网络储存系统之方式内容&#xff1a;l 在Windows中使用Microsoft iSCSI启动器来连接iSCSI装置什么是iSCSI且它有什么好处?iSCSI(Internet Small Computer Sy…

openssl php api,PHP7使用openssl解密易班API中的用户数据

PHP7使用openssl解密易班API中的用户数据一、mcrypt扩展解密自从PHP版本更新到了7.1以上以后&#xff0c;mcrypt扩展被废弃&#xff0c;使用mcrypt扩展会出现如下图的报错。只能使用openssl来代替。然而易班轻应用提供的还是旧版本的mcrypt扩展&#xff0c;这将导致php版本升级…

Spring MVC的DispatcherServlet – Java开发人员应该知道的10件事

如果您使用过Spring MVC&#xff0c;那么您应该知道什么是DispatcherServlet&#xff1f; 它实际上是Spring MVC的心脏&#xff0c;确切地说是MVC设计模式或控制器的C语言。 应该由Spring MVC处理的每个Web请求都通过DispatcherServlet处理。 通常&#xff0c;它是Front Contro…