복붙노트

[SPRING] 스프링 부트 로그를 어떻게 탄력성에 직접 섭취합니까?

SPRING

스프링 부트 로그를 어떻게 탄력성에 직접 섭취합니까?

스프링 부트 애플리케이션 로그를 탄력적 인 검색으로 직접 전송하는 가능성을 조사하고 있습니다. 파일이나 로그를 사용하지 않고. Ingest 플러그인이 도움이 될 것 같습니다.

나의 초기 생각은 TCP를 통해 logback을 사용하여 이것을하는 것이다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
      <destination>127.0.0.1:4560</destination>
      <encoder class="net.logstash.logback.encoder.LogstashEncoder" />
  </appender>

  <root level="DEBUG">
      <appender-ref ref="stash" />
  </root>
</configuration>

위의 내용을 보시면 로그를 logstash에 직접 보낼 수 있습니다. 임 그냥 최신 기능을 사용하여 가능하고 logstash를 사용하여 건너 뛸 수 있는지 궁금해? ingest 메소드를 사용하여 네트워크를 통해 json으로 인코딩 된 로그를 직접 탄성으로 보내면?

내 질문

이것이 가능한지 궁금하네요? 그렇다면 어떻게 할 것인지 설명 할 수 있습니다. 또한 무엇이 함정이 될 수 있는지 등등.

해결법

  1. ==============================

    1.방금 제안을 시도했지만 완벽하게 해결되었습니다.

    방금 제안을 시도했지만 완벽하게 해결되었습니다.

    먼저 POM에 다음과 같은 종속성을 추가하십시오.

        <dependency>
            <groupId>org.logback-extensions</groupId>
            <artifactId>logback-ext-loggly</artifactId>
            <version>0.1.2</version>
        </dependency>
    

    그런 다음 logback.xml 구성에서 다음과 같이 appender와 logger를 추가하십시오.

    <appender name="ES" class="ch.qos.logback.ext.loggly.LogglyAppender">
        <endpointUrl>http://localhost:9200/tests/test?pipeline=logback</endpointUrl>
        <pattern>%m</pattern>
    </appender>
    <logger name="es" level="INFO" additivity="false">
        <appender-ref ref="ES"/>
    </logger>
    

    다음과 같이 인제 스트 파이프 라인을 정의해야합니다.

    PUT _ingest/pipeline/logback
    {
      "description": "logback pipeline",
      "processors": [
        {
          "set" : {
            "field": "source",
            "value": "logback"
          }
        }
      ]
    }
    

    그런 다음 코드에서 해당 로거를 사용하여 보유한 데이터를 ES에 보낼 수 있습니다

    private Logger esLogger = LoggerFactory.getLogger("es");
    ...
    esLogger.info("{\"message\": \"Hello World from Logback!\"}");
    

    그리고이 문서는 ES에서 끝납니다 :

    {
        "_index": "tests",
        "_type": "test",
        "_id": "AV3Psj5MF_PW7ho1yJhQ",
        "_score": 1,
        "_source": {
          "source": "logback",
          "message": "Hello World from Logback!",
        }
    }
    
  2. ==============================

    2.이전에 같은 질문을했습니다. Logback과 Elasticsearch를 직접 통합했습니다.

    이전에 같은 질문을했습니다. Logback과 Elasticsearch를 직접 통합했습니다.

    https://github.com/internetitem/logback-elasticsearch-appender를 방문하십시오.

    업데이트 2017 년 10 월에 ES v6.x의 주요 문제점을 보완 한 logback-elasticsearch-appender 개발

  3. from https://stackoverflow.com/questions/45615040/how-do-you-ingest-spring-boot-logs-directly-into-elastic by cc-by-sa and MIT license