Spring Boot Admin监控中心详细讲解

你心心念念想得到的人,也许正是别人已经玩腻了的人!!!所以,我们现在正在想学习的东西,正是人家已经玩了很久已经很腻的人了~~~所以现在立刻马上开始

Spring Boot Admin  是个什么东东?为什么要用他?

Spring Boot Admin简介:

Spring Boot Admin 是一个管理和监控Spring Boot 应用程序的开源软件。每个应用都认为是一个客户端,通过HTTP或者使用 Eureka注册到admin server中进行展示,Spring Boot Admin UI部分使用AngularJs将数据展示在前端。

Spring Boot Admin 是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。他可以:在列表中浏览所有被监控spring-boot项目的基本信息,详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,还可以直接修改logger的level。

这篇文章给大家介绍如何使用Spring Boot Admin对Spring Boot应用进行监控。

Admin Server:  pom文件引入admin-server、admin-server-ui

	<dependencies>

<!-- 		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency> -->

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

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

配置文件:

server.port=8070

服务启动类:

package com.inspire.efficacy.admin;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import de.codecentric.boot.admin.config.EnableAdminServer;

@SpringBootApplication
@EnableAdminServer
public class SpringBootAdminApp {
	public static void main(String[] args) {
		SpringApplication.run(SpringBootAdminApp.class, args);
	}
}

服务启动,浏览器访问:http://10.2.8.42:8070/

Admin Client:

配置文件信息:

spring.boot.admin.url=http://10.2.8.42:8070
management.security.enabled=false

pom文件依赖关系:

		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-client</artifactId>
			<version>1.5.6</version>
		</dependency>

启动类:

package com.inspire.efficacy.basicdata;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@EnableDiscoveryClient
@SpringBootApplication
@EnableTransactionManagement
public class EfficiencyBasicdataApp {
	public static void main(String[] args) {
		SpringApplication.run(EfficiencyBasicdataApp.class, args);
	}
}

配置完成之后,启动Client端服务,再次访问服务:http://10.2.8.42:8070  可以看到客户端的相关信息:

首页会展示被监控的各个服务,点击详情可以查看某个服务的具体监控信息

通过上图可以看出,Spring Boot Admin以图形化的形式展示了应用的各项信息,这些信息大多都来自于Spring Boot Actuator提供的接口。

 

===================至此,spring boot admin就全部配置完成了=====================================

把项目放到linux服务器上后,就完全不好使了。

服务器是A、B两台,A主要放admin server   B主要放admin client,问题出现在 admin server上注册的admin client

显示http://localhost:2100  所有的服务都是offline ,查询资料是因为注入监控中心是根据hosts里面的名称来找的,所有

vim /etc/hosts改掉对应关系就可以了。

============================================================================================

接下来我们给监控中心加登录页,避免裸奔,以及生产环境避免所有人都可以登录

首先pom文件增加

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

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
			<version>1.4.5.RELEASE</version>
		</dependency>

增加配置信息:

package com.inspire.efficacy.admin.config;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true, proxyTargetClass = true)
public class SecuritySecureConfig extends WebSecurityConfigurerAdapter {
	
	private static Logger logger = LoggerFactory.getLogger(SecuritySecureConfig.class);
	
    @Override
    public void configure(WebSecurity web) throws Exception {
        //忽略css.jq.img等文件
        web.ignoring().antMatchers("/**.html","/**.css", "/img/**", "/**.js","/third-party/**");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {  	
    	logger.info("configure method has been invoked start...");
        http
                .csrf().disable() //HTTP with Disable CSRF
                .authorizeRequests() //Authorize Request Configuration
                .antMatchers( "/login",
                        "/api/**",
                        "/**/heapdump",
                        "/**/loggers",
                        "/**/liquibase",
                        "/**/logfile",
                        "/**/flyway",
                        "/**/auditevents",
                        "/**/jolokia").permitAll() //放开"/api/**":为了给被监控端免登录注册并解决Log与Logger冲突
                .and()
                .authorizeRequests()
                .antMatchers("/**").hasRole("USER")
                .antMatchers("/**").authenticated()
                .and() //Login Form configuration for all others
                .formLogin()
                .loginPage("/login.html")
                .loginProcessingUrl("/login").permitAll()
                .defaultSuccessUrl("/")
                .and() //Logout Form configuration
                .logout()
                .deleteCookies("remove")
                .logoutSuccessUrl("/login.html").permitAll()
                .and()
                .httpBasic();
        logger.info("configure method has been invoked end...");
    }
    
}

application.properties文件中:

server.port=8070
spring.application.name=Spring Boot Admin Web
spring.boot.admin.url=http://localhost:${server.port}
#\u8BA9\u63A7\u5236\u5668\u8F93\u51FA\u7684json\u683C\u5F0F\u66F4\u7F8E\u89C2
spring.jackson.serialization.indent-output=true
#\u5141\u8BB8\u533F\u540D\u7528\u6237\u5B8C\u5168\u8BBF\u95EEhealth\u7AEF\u70B9
endpoints.health.sensitive=false
#spring boot default user.name='user'
security.user.name=admin
#spring boot dafault user.password \u9879\u76EE\u542F\u52A8\u65F6\u6253\u5370\u5728\u63A7\u5236\u53F0
security.user.password=admin
security.basic.enabled=false
management.security.enabled=false

所有的配置都加上后,访问localhost:8070   可以完全访问登录页:

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值