kafka log 정책
ambari 기준으로 kafka 관련된 로그는 2군데에 저장 된다.
log.dirs : 메세지 보관을 위한 오프셋을 포함한 로그이다.
/var/log/kafka : kafka 자체 로그이며 kafka.env 파일에서 설정 할 수 있다.
1. Topic 에 관한 로그 는 아래 정책으로 log.dirs 경로(server.properties 파일에 설정) 에 저장된다.
로그의 잘려진 segment 는 상응하는 index 파일과 같이 저장된다. 그 파일 내임은 Base offset 을 표현하기도 한다.
이것을 설명하자면 log 파일 이저장되는 구조를 이해 해야하는데,
log 파일은 실제메세지를 strucuted message format 으로 저장한다. each message 는 처음 64 비트에 증가된 offset 을 포함한다.
그러므로 이파일에서 특정 오프셋의 메세지를 찾는것은 log 파일이 커질 수록 무거워진다.
또한 메세지를 공급하기 위해서는 브로커는 가장 나중의 offset 을 기억하고 메세지를 정확하게 받아들이기 위해 진행 시킨다.
그러므로 로그파일의 offset 기억하기 위해 index 파일이 존재한다.
index 파일은 아래와 같은 항목을 저장한다.
- 4 Bytes: Relative Offset
- 4 Bytes: Physical Position
이때 파일내임은 base offset 을 표현한다. index 파일은 로그파일의 index.interval.bytes 의 단위마다 index 파일을 새로 쓴다.(default 4096)
2. kafka 서버자체의 로그 (INFO / ERROR / WARN 등) 은 kafka_env.sh 안에 로그 경로가 지정되어있다.
주로내용은 자바 info 로 채워지는데 이 또한 시간이 지나면 일주일에1~2G 정도 용량이 찬다.
log4j 설정을 이용해 로그양을 줄일 수 있다. 2번 은 말그대로 log 이다.