Spring Boot + Micrometer로 얻은 메트릭을 Elasticsearch로 보내 Kibana에서 표시
                                            
                                                
                                                
                                                
                                                
                                                
                                                 11728 단어  Elasticsearch키바나spring
                    
하고 싶은 일
마이크로미터이라는 라이브러리를 사용하면 응용 프로그램의 지표를 쉽게 얻을 수 있습니다.
메트릭이란, CPU나 메모리의 사용 상황으로부터, Spring Boot의 경우는 URL에의 액세스 상황등도 메트릭으로서 디폴트로 취득할 수 있습니다.
이 근처를 보면 좋을 것입니다.
직접 검색할 항목을 추가할 수도 있습니다.
했던 일
Micrometer에서 수집한 메트릭은 어딘가의 데이터스토어에 저장되지만, 그 저장처는 복수 선택할 수 있습니다.
마이크로미터 문서
CloudWatch, Elasticsearch, Datadog, Prometheus 등.
이번에는 Elasticsearch에 데이터를 넣고 Kibana에서 시각화 해보기로 결정했습니다.
환경
이번 실시 환경입니다.$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.1 LTS
Release:	18.04
Codename:	bionic
$ java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-0ubuntu0.18.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
$ mvn -version
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T03:41:47+09:00)
Maven home: /path/to/.sdkman/candidates/maven/current
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-39-generic", arch: "amd64", family: "unix"
 대상 애플리케이션
매우 간단하고 작은 응용 프로그램을 만듭니다.pom.xml의 종속성.    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.1.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-elastic</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.1.1.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
Spring Boot에서 Micrometer를 사용할 때는 spring-boot-starter-actuator를 추가하고 메트릭의 대상을 Elasticsearch로 만들기 때문에 micrometer-registry-elastic를 추가합니다.
송신 간격은 조금 짧게 5초로 했습니다.
src/main/resources/application.propertiesmanagement.metrics.export.elastic.step=5s
설정은 여기를 참조하십시오.
 Micrometer Elastic
 Metrics / Supported monitoring systems / Elastic
준비한 어플리케이션은, 이 정도.
src/main/java/com/example/micrometer/elastic/App.javapackage com.example.micrometer.elastic;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
    public static void main(String... args) {
        SpringApplication.run(App.class, args);
    }
}
이번에는 Controller 아무것도 준비되어 있지 않지만, Spring Boot 어플리케이션에서는 Micrometer를 추가했을 때 Spring Web MVC 등에 맞추어 메트릭스를 취득할 수 있습니다.
 Elasticsearch 설치 및 시작tar.gz 다운로드 및 배포.$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.2.tar.gz
$ tar xf elasticsearch-6.5.2.tar.gz
$ cd elasticsearch-6.5.2
시작.$ bin/elasticsearch
확인.$ curl localhost:9200{
  "name" : "qd3p2vS",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "6kr__MvLRsuxV5-8d8j5UQ",
  "version" : {
    "number" : "6.5.2",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "9434bed",
    "build_date" : "2018-11-29T23:58:20.891072Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
 Kibana 설치 및 시작tar.gz 다운로드 및 배포.$ wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.2-linux-x86_64.tar.gz
$ tar xf kibana-6.5.2-linux-x86_64.tar.gz
$ cd kibana-6.5.2-linux-x86_64
시작.$ bin/kibana
 http://localhost:5601를 방문하면 Kibana를 볼 수 있습니다.
 
 애플리케이션을 시작하고 지표를 시각화해 봅니다.
시작.$ mvn spring-boot:run 
시작한 후 Kibana에 액세스해보십시오.
이미 'metrics-yyyy-mm'이라는 인덱스에 지표가 전송되었으므로 '
"Discover"에서 이것을 등록합니다.
 
시간 필드는 @timestamp군요.
 
"Discover"에서 보면 전송된 데이터를 볼 수 있습니다.
 
그럼, 「Visualize」를 선택해 표시해 봅시다.
이번에는 JavaVM의 메모리에 대해 시각화해 보겠습니다.
Y축은 value, Average, X축은 Date Histgram, 필드는 @timestamp, 간격은 Minite로 필터링합니다.
 
X축은 Filters를 추가하여 name: jvm_memory_used에서 표시할 메트릭을 좁혔습니다.
 
그렇게 나타났습니다.
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Spring Boot + Micrometer로 얻은 메트릭을 Elasticsearch로 보내 Kibana에서 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/charon/items/1d0ca185220ab1e78b65
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.1 LTS
Release:	18.04
Codename:	bionic
$ java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-0ubuntu0.18.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
$ mvn -version
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T03:41:47+09:00)
Maven home: /path/to/.sdkman/candidates/maven/current
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-39-generic", arch: "amd64", family: "unix"
매우 간단하고 작은 응용 프로그램을 만듭니다.
pom.xml의 종속성.    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.1.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-elastic</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.1.1.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
Spring Boot에서 Micrometer를 사용할 때는 spring-boot-starter-actuator를 추가하고 메트릭의 대상을 Elasticsearch로 만들기 때문에 micrometer-registry-elastic를 추가합니다.송신 간격은 조금 짧게 5초로 했습니다.
src/main/resources/application.properties
management.metrics.export.elastic.step=5s
설정은 여기를 참조하십시오.Micrometer Elastic
Metrics / Supported monitoring systems / Elastic
준비한 어플리케이션은, 이 정도.
src/main/java/com/example/micrometer/elastic/App.java
package com.example.micrometer.elastic;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
    public static void main(String... args) {
        SpringApplication.run(App.class, args);
    }
}
이번에는 Controller 아무것도 준비되어 있지 않지만, Spring Boot 어플리케이션에서는 Micrometer를 추가했을 때 Spring Web MVC 등에 맞추어 메트릭스를 취득할 수 있습니다.Elasticsearch 설치 및 시작tar.gz 다운로드 및 배포.$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.2.tar.gz
$ tar xf elasticsearch-6.5.2.tar.gz
$ cd elasticsearch-6.5.2
시작.$ bin/elasticsearch
확인.$ curl localhost:9200{
  "name" : "qd3p2vS",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "6kr__MvLRsuxV5-8d8j5UQ",
  "version" : {
    "number" : "6.5.2",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "9434bed",
    "build_date" : "2018-11-29T23:58:20.891072Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
 Kibana 설치 및 시작tar.gz 다운로드 및 배포.$ wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.2-linux-x86_64.tar.gz
$ tar xf kibana-6.5.2-linux-x86_64.tar.gz
$ cd kibana-6.5.2-linux-x86_64
시작.$ bin/kibana
 http://localhost:5601를 방문하면 Kibana를 볼 수 있습니다.
 
 애플리케이션을 시작하고 지표를 시각화해 봅니다.
시작.$ mvn spring-boot:run 
시작한 후 Kibana에 액세스해보십시오.
이미 'metrics-yyyy-mm'이라는 인덱스에 지표가 전송되었으므로 '
"Discover"에서 이것을 등록합니다.
 
시간 필드는 @timestamp군요.
 
"Discover"에서 보면 전송된 데이터를 볼 수 있습니다.
 
그럼, 「Visualize」를 선택해 표시해 봅시다.
이번에는 JavaVM의 메모리에 대해 시각화해 보겠습니다.
Y축은 value, Average, X축은 Date Histgram, 필드는 @timestamp, 간격은 Minite로 필터링합니다.
 
X축은 Filters를 추가하여 name: jvm_memory_used에서 표시할 메트릭을 좁혔습니다.
 
그렇게 나타났습니다.
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Spring Boot + Micrometer로 얻은 메트릭을 Elasticsearch로 보내 Kibana에서 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/charon/items/1d0ca185220ab1e78b65
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.2.tar.gz
$ tar xf elasticsearch-6.5.2.tar.gz
$ cd elasticsearch-6.5.2
$ bin/elasticsearch
$ curl localhost:9200{
  "name" : "qd3p2vS",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "6kr__MvLRsuxV5-8d8j5UQ",
  "version" : {
    "number" : "6.5.2",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "9434bed",
    "build_date" : "2018-11-29T23:58:20.891072Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
tar.gz 다운로드 및 배포.$ wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.2-linux-x86_64.tar.gz
$ tar xf kibana-6.5.2-linux-x86_64.tar.gz
$ cd kibana-6.5.2-linux-x86_64
시작.$ bin/kibana
 http://localhost:5601를 방문하면 Kibana를 볼 수 있습니다.
애플리케이션을 시작하고 지표를 시각화해 봅니다.
시작.$ mvn spring-boot:run 
시작한 후 Kibana에 액세스해보십시오.
이미 'metrics-yyyy-mm'이라는 인덱스에 지표가 전송되었으므로 '
"Discover"에서 이것을 등록합니다.
 
시간 필드는 @timestamp군요.
 
"Discover"에서 보면 전송된 데이터를 볼 수 있습니다.
 
그럼, 「Visualize」를 선택해 표시해 봅시다.
이번에는 JavaVM의 메모리에 대해 시각화해 보겠습니다.
Y축은 value, Average, X축은 Date Histgram, 필드는 @timestamp, 간격은 Minite로 필터링합니다.
 
X축은 Filters를 추가하여 name: jvm_memory_used에서 표시할 메트릭을 좁혔습니다.
 
그렇게 나타났습니다.
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Spring Boot + Micrometer로 얻은 메트릭을 Elasticsearch로 보내 Kibana에서 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/charon/items/1d0ca185220ab1e78b65
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
$ mvn spring-boot:run 
Reference
이 문제에 관하여(Spring Boot + Micrometer로 얻은 메트릭을 Elasticsearch로 보내 Kibana에서 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/charon/items/1d0ca185220ab1e78b65텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)