微服务监控

微服务监控用来监控所有基于Spring Boot实现的应用。涵盖的功能主要包括如下几个方面:每一个应用的状态信息;日志信息;应用环境参数等。另外,在每一个应用状态发生变化的情况下,会邮件通知配置的开发者(需要配置)。
其核心原理是读取Eureka服务注册与发现中心的所有服务信息。

1.完整的maven配置



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.7.RELEASE
         
    
    com.tufire
    huotu-monitor
    0.0.1-SNAPSHOT
    huotu-monitor
    micro services monitor

    
        1.8
        Finchley.SR2
    

    
        
            de.codecentric
            spring-boot-admin-starter-server
            2.0.4
        

        
            org.springframework.boot
            spring-boot-starter-security
        

        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.jolokia
            jolokia-core
        
        
         
        
            org.springframework.boot
            spring-boot-starter-actuator
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    true
                
            
        
    

2.application.yml配置文件
 

server:
  port: 9411
spring:
  application:
    name: monitor
  ##登录的用户名和密码
  security:
    user:
      name: username
      password: password
  boot:
    admin:
      ui:
        title: 监控名称

management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

##带用户身份认证的eureka注册中心配置
eureka:
  client: 
    registerWithEureka: false
    serviceUrl:
      defaultZone: http://ht:ht2018@localhost:8761/eureka/

logging:
  path: /ht/logs/
  file: monitor.log



3.启动类

package com.tufire.monitor;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
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 org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
import org.springframework.security.web.csrf.CookieCsrfTokenRepository;

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

/**
 * 服务监控启动类
 * 
 * @author wuhoujian
 *
 */
@SpringBootApplication
@EnableDiscoveryClient
@EnableAdminServer
public class HuotuMonitorApplication {

    public static void main(String[] args) {
        SpringApplication.run(HuotuMonitorApplication.class, args);
    }

    @Configuration
    public static class SecuritySecureConfig extends WebSecurityConfigurerAdapter {
        private final String adminContextPath;

        public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
            this.adminContextPath = adminServerProperties.getContextPath();
        }

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
            successHandler.setTargetUrlParameter("redirectTo");
            successHandler.setDefaultTargetUrl(adminContextPath + "/");

            http.authorizeRequests()
                    .antMatchers(adminContextPath + "/assets/**").permitAll()
                    .antMatchers(adminContextPath + "/login").permitAll()
                    .anyRequest().authenticated()
                    .and()
                    .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
                    .logout().logoutUrl(adminContextPath + "/logout").and()
                    .httpBasic().and()
                    .csrf()
                    .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
                    .ignoringAntMatchers(
                            adminContextPath + "/instances",
                            adminContextPath + "/actuator/**"
                    );
        }
    }
}

4.需要被监控的服务,pom.xml和application.yml的改动



	org.springframework.boot
	spring-boot-starter-actuator
# acurator监控
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

5.启动服务监控启动类,访问:http://localhost:9411

微服务监控_第1张图片

微服务监控_第2张图片

微服务监控_第3张图片

你可能感兴趣的:(SpringCloud)