분산 서버 로그 처리
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 등 설정 부분에 대해서는 아래 블로거 처럼 가능할 것 같다.
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에 추가하게 되면 아래와 같이 키바나에서 로그가 확인 가능하다.

더 잘 나타내주는 곳
아래 링크
This article is licensed under CC BY 4.0 by the author.