• -------------------------------------------------------------
  • ====================================

SpringCloud监控应用

springcloud dewbay 5年前 (2019-04-12) 2086次浏览 已收录 0个评论 扫描二维码

springboot admin,用于监控基于 Spring Boot 的应用,并提供 UI 界面,是一个很好使,很方便的利器;项目要加入 Admin 监控目前主要有两中方式,一种是通过 Admin client,另外一种就是通过 eureka,将应用注册到 eureka,他通过内置的 zuul 机制,可以读取到服务中心所有注册的应用,实现监控,本文主要介绍第二种方式。

首先要有 eureka 的服务注册中心,这个在本系列文章中已经介绍过,这里我们就不在多说,直接介绍 spring boot admin 项目的开发。

首先引入 pom 依赖:

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>1.5.9.RELEASE</version>
   <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
   <java.version>1.8</java.version>
   <mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
</properties>

<dependencies>
   <dependency>
      <groupId>de.codecentric</groupId>
      <artifactId>spring-boot-admin-server</artifactId>
      <version>1.4.6</version>
   </dependency>
   <dependency>
      <groupId>de.codecentric</groupId>
      <artifactId>spring-boot-admin-server-ui</artifactId>
      <version>1.4.6</version>
   </dependency>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-eureka</artifactId>
   </dependency>

   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
   </dependency>

   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-mail</artifactId>
   </dependency>

   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-security</artifactId>
   </dependency>
</dependencies>
<dependencyManagement>
   <dependencies>
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-dependencies</artifactId>
         <version>Camden.SR5</version>
         <type>pom</type>
         <scope>import</scope>
      </dependency>
   </dependencies>
</dependencyManagement>



<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
         <executions>
            <execution>
               <goals>
                  <goal>build-info</goal>
               </goals>
            </execution>
         </executions>
      </plugin>
   </plugins>
</build>

这里一定要注意springcloud的版本使用,要和 springboot 版本兼容,测试修改过多个版本,最终确定
Camden.SR5 和上面的 springboot 版本是兼容的,这样配置在本地使用 idea 直接启动程序可以正常使用,
但是在使用 maven 编译成 jar 包是会报错,记住吧 test 包中的测试类删掉就可以编译成功了,这是一个坑,搞了一天才弄成功。

当前日志级别管理仅限 Logback,通过 JMX 实现,所以需要依赖 jolokia 。同时,还需要配置 Logback 的 JMXConfigurator: 

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <jmxConfigurator/>
</configuration>
 

启动类如下:

@Configuration
@EnableAutoConfiguration
@EnableDiscoveryClient
@EnableAdminServer
public class AdminserverApplication {

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

配置文件:

# 解决 windows 下运行时无法识别主机名的问题
spring.boot.admin.client.prefer-ip=true
server.port=7086
spring.application.name=zk_admin
eureka.instance.preferIpAddress=true
eureka.client.service-url.defaultZone=http://172.16.1.28:7082/eureka/,http://172.16.1.29:7082/eureka/

#定义各种额外的详情给服务端显示
#从 pom.xml 中获取
info.app.name="@project.name@"
info.app.description="@project.description@"
info.app.version="@project.version@"
info.spring-boot-version="@project.parent.version@"
info.version=@project.version@
#宕机邮件提示
spring.mail.host=smtp.126.com
spring.mail.username=****
spring.mail.password=*****
spring.boot.admin.notify.mail.from=*****
spring.boot.admin.notify.mail.to=******

management.security.enabled=false
management.security.roles=SUPERUSER
security.user.name=xjgz2018
security.user.password=xjgz2018.
security.basic.enabled=false

#开启 shutdown 的安全验证
endpoints.health.sensitive= true
endpoints.cors.allowed-methods=HEAD,GET,POST
#启用 shutdown
endpoints.shutdown.enabled=true
#禁用密码验证
endpoints.shutdown.sensitive=false

配置文件中还增加了服务状态变化邮件提示,以方便服务的管理。

服务启动后访问 http://127.0.0.1:7086

页面如下:

现在还有一个问题,如果提供服务的应用使用了 redis 的话,redis 状态会处于 down 状态,有时候应用的 redis 是可用的,有时候是不可也用的,这个问题暂时还没有找到原因。

转载于 https://blog.csdn.net/wang_shuyu/article/details/79497218


露水湾 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SpringCloud监控应用
喜欢 (3)
[]
分享 (0)
关于作者:
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址