포스트

분산 서버 로그 처리

kafka log back appender + elasticsearch + kibana

​

현재 운영중인 장비가 너무 많기 때문에 로그를 어떻게 확인할까 고민은 많이 있었다.

​

ELK 방식으로 예전에 구축했을 때 설정해줄 것이 많이 있었는데, 이번에는 SPRING BOOT에 logback에 kafka log appender 형태로 로그를 보낼 수 있는 것을 확인하고, 적용하게 되었다.

(네트워크 방화벽 설정만 잘되어 있으면 ok)

​

바탕으로 설치되어야 할 것은 아래 링크와 같이 구축이 되어 있어야 한다.

​

                                ![]()

[출처 : https://www.elastic.co/kr/blog/just-enough-kafka-for-the-elastic-stack-part1]

​

위 그림 처럼 logstash indexer 와 elasticsearch 등 설정 부분에 대해서는 아래 블로거 처럼 가능할 것 같다.

​

[출처 : https://gyrfalcon.tistory.com/entry/Kafka-Kafka%EB%A1%9C-Log%EB%A5%BC-%EB%B3%B4%EB%82%B4%EB%8A%94-%EB%B0%A9%EB%B2%95%EB%93%A4]

​

​

kafka logback appender 라이브러리는 아래 링크를 확인이 가능하다.

​

[출처 : https://github.com/danielwegener/logback-kafka-appender]

​

gradle 의존성 라이브러리는 아래와 같다.

// <https://mvnrepository.com/artifact/com.github.danielwegener/logback-kafka-appender>
    compile group: 'com.github.danielwegener', name: 'logback-kafka-appender', version: '0.2.0-RC2'
// <https://mvnrepository.com/artifact/net.logstash.logback/logstash-logback-encoder>
    compile group: 'net.logstash.logback', name: 'logstash-logback-encoder', version: '5.2'

logback 설정은 다음과 같다.









      {"instanceId":"${인스턴스ID}"}


    ${topic}

bootstrap.servers=${kafka}








      %date{yyyy-MM-dd:HH:mm:ss.SSS} %-5level %relative --- [%thread] %logger.%method\(%file:%line\) : %msg %n


      INFO



 ...






​

kafka에서 수신 받을 수 있는 logback indexer + elasticsearch 등이 필요하며, 위와 같이 spring application의 logback에 추가하게 되면 아래와 같이 키바나에서 로그가 확인 가능하다.

​

                                ![](/assets/images/posts/221538825840/a4635f08d74c.png?type=w580)

​

더 잘 나타내주는 곳

​

아래 링크

https://gyrfalcon.tistory.com/entry/LogstashShipper-%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%B4-Kafka-%EB%A9%94%EC%84%B8%EC%A7%80%EB%A5%BC-elasticsearch%EB%A1%9C-%EC%A0%80%EC%9E%A5?category=674612

​

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.