当前位置: 首页>后端>正文

spring cloud 不输出日志 spring cloud 日志收集

本文分为四个部分来讲述基于sping-cloud、spring-boot搭建的日志采集服务。本文中所用到的依赖包皆通过maven下载。

第一部分、服务注册中心搭建

首先、新建名为Eurke-Server的maven工程。用来做服务注册中心。具体pom内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>springcloud-server</groupId>
    <artifactId>com.asiainfo.springcloud</artifactId>
    <version>1.0-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <version>1.4.4.RELEASE</version>
        </dependency>
    </dependencies>
</project>

第二步、进入/resource目录并在目录下新建bootstrap.yml、application.yml文件。

编辑模式打开bootstrap.yml写入如下内容:

spring:
  application:
    name: eureka-server
  cloud:
    config:
      uri: ${CONFIG_SERVER_URL:http://localhost:8888}

编辑模式打开application.yml写入如下内容:

server:
  port: 8761 #服务端口

eureka:
  client:
    registerWithEureka: false #是否将自己注册进注册中心
    fetchRegistry: false # 此客户端是否获取eureka服务器注册表上的注册信息,默认为true
  server:
    waitTimeInMsWhenSyncEmpty: 0 #在Eureka服务器获取不到集群里对等服务器上的实例时,需要等待的时间,单位为毫秒,默认为1000 * 60 * 5

第三步、main/java目录下新建application.java类,并创建好main方法。

package com.asiainfo.server;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer//打开服务注册功能
@EnableDiscoveryClient//打开服务发现功能
public class main {

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

至此,服务注册中心搭建完成。

第二部分、服务调用环境搭建,与注册中心一样需要首先建立maven工程。

首先、编辑pom文件,如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.asininfo.springcloud</groupId>
    <artifactId>data-callclient</artifactId>
    <version>1.0-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <version>1.4.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
            <version>1.3.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
            <version>1.5.9.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
            <version>1.2.5.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-sleuth-zipkin</artifactId>
            <version>1.2.5.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-commons</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-commons</artifactId>
            <version>1.3.1.RELEASE</version>
        </dependency>
    </dependencies>
</project>

由于spring-coud spring-boot包存在部分相同的jar包 为了避免jar包冲突这里统一使用spring-boot下的最新jar包。

第二步、进入/resource目录并在目录下新建bootstrap.yml、application.yml文件。

编辑模式打开bootstrap.yml写入如下内容:

spring:
  application:
    name: call
  sleuth:
    sampler:
       percentage: 1 #日志采集 1代表100%
  zipkin:
    base-url: http://localhost:8084 #日志采集服务地址
    enabled: true #打开日志采集服务
  cloud:
    config:
      uri: ${CONFIG_SERVER_URL:http://localhost:8080}


编辑模式打开application.yml写入如下内容:

# Discovery Server Access
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/ #服务注册中心地址

# HTTP Server
server:
  port: 8082   # HTTP (Tomcat) port #服务端口


第三步、main/java目录下新建application.java类,并创建好main方法。

package com.asiainfo.client;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;


/**
 * <p>title:main</p>
 *
 * <p>Description://TODO </p>
 *
 * <p>Copyright: Copyright (c) 2018</p>
 *
 * <p>Company: www.aisiainfo.com</p>
 *
 * @author liudp
 * @version 1.0
 * @date 2018/5/23 10:07
 */
@SpringBootApplication //spring-boot注解
@EnableAutoConfiguration
@EnableEurekaClient //打开服务注册
@EnableFeignClients//开启服务内部调用
public class main {
    public static void main(String[] args) {
        SpringApplication.run(main.class,args);
    }
}


第四步、新建Controller类,代码如下:

package com.asiainfo.client.com.asiainfo.controller.com.asiainfo.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/test/")
public class TestController {

    @Autowired
    private TestService testService;
    @RequestMapping("/data1/{data}")
    public Object getData(@PathVariable("data") String data) {
        System.out.println(data);
        Map<String, Object> obj = new HashMap<String, Object>(1);
        for (int i = 0; i < 10; i++) {
            obj.put("j" + i, i);
        }
        testService.getData("1111");
        return obj;
    }
}

第五步、新建接口类,原因为FeignClient调用是通过接口方式进行。代码如下:

package com.asiainfo.client.com.asiainfo.controller.com.asiainfo.service;

import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@FeignClient(value = "recive") //指定落地方应用名称
@Service
public interface TestService {

    @RequestMapping("/test/data1/{data}")//落地方地址
    public  Object getData(@PathVariable("data")String data);
}

第三部分、落地方工程搭建,具体参照第二部分调用侧工程环境搭建。需要注意的事项为:

1.端口不能与调用侧端口一样。

2.应用名称不能一样。

3.配置FeignClient接口类时,此时填写的应该是被调用侧的应用名称。

第四部分、日志服务搭建

首先搭建maven工程,编辑pom文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.asiainfo.springcloud</groupId>
    <artifactId>log-server</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-netflix-eureka-server</artifactId>
            <version>1.4.4.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>[spring-boot-*,)</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.zipkin.java</groupId>
            <artifactId>zipkin-autoconfigure-ui</artifactId>
            <version>2.4.7</version>
            <exclusions>
                <exclusion>
                  <groupId>org.springframework.boot</groupId>
                    <artifactId>[spring-boot-*,)</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>io.zipkin.java</groupId>
            <artifactId>zipkin-server</artifactId>
            <version>2.4.7</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>[spring-boot-*,)</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

    </dependencies>
</project>

第二步,创建bootstrap.yml 、application.yml文件,由于配置和上面差不多,这里就不在浪费口水了。

编辑模式打开bootstrap.yml并填入一下内容:

spring:
  application:
    name: log-server

编辑模式打开

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
spring:
  application:
    name: log-server

# HTTP Server
server:
  port: 8084   # HTTP (Tomcat) port

第三步 新建含main方法的类,并写入如下内容:

package com.asiainfo.log.server;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import zipkin.server.EnableZipkinServer;

@EnableDiscoveryClient
@EnableZipkinServer
@SpringBootApplication
public class main {

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

至此,整个工作搭建完成。依次启动Eureka-server、call、recive、log-server四个工程。待服务注册成功后,浏览器输入:

http://127.0.0.1:8082/test/data1/123

返回结果如下:

spring cloud 不输出日志 spring cloud 日志收集,spring cloud 不输出日志 spring cloud 日志收集_Spring-cloud,第1张

浏览器输入:

http://127.0.0.1:8084/zipkin/#

界面如下:

spring cloud 不输出日志 spring cloud 日志收集,spring cloud 不输出日志 spring cloud 日志收集_Sping-seluth_02,第2张

选择服务名称:

spring cloud 不输出日志 spring cloud 日志收集,spring cloud 不输出日志 spring cloud 日志收集_Sping-seluth_03,第3张

点击任意链接,进入详细日志界面。

spring cloud 不输出日志 spring cloud 日志收集,spring cloud 不输出日志 spring cloud 日志收集_spring cloud 不输出日志_04,第4张


https://www.xamrdz.com/backend/3h91931173.html

相关文章: