prometheus는 따로 설정하지 않으면 내부적으로 TSDB를 사용합니다. prometheus 옵션에서 지정된 위치에 파일로 저장하게 됩니다. 현재 약 200대의 하드웨어 모니터링과 하둡 네임 노드 데이터 노드 모니터링, 메소, kafka의 모니터링을 하고 있습니다. 10초마다 데이터를 pull 해서 저장하고 있습니다.
데이터 저장 기간은 3개월로 설정을 해둔 설정 입니다. 현재 300G를 사용하고 있습니다. 생각보다 데이터를 많이 쓰고 있어서 놀랐습니다. 얼마나 쓸지 감이 없을 때는 tsdb 저장 경로를 디폴트로 잡고 사용했는데요. 사용하다가 보니 용량을 너무 많이 쓰고 있어서 그대로 다른 디스크로 옮겨서 사용 중입니다.
prometheus의 기능은 데이터 저장과 시계열 데이터 전달에 있습니다. prometheus와 함께 grafana가 사용되는 이유 입니다. chart를 그리는 역할은 grafana가 담당을 하고 데이터를 저장하거나 전달하는 역할을 prometheus가 담당합니다.
tsdb 저장 경로 옵션은 다음과 같습니다.
--storage.tsdb.path
실행 할 때 같이 써주면 되고요. default로 사용하던 파일을 그대로 복사해서 사용하는 것도 문제없이 잘 동작했습니다. 기존 저장된 파일이 큰 경우 켤 때 시간이 조금 더 걸립니다.
아무래도 파일 DB이고 용량이 커지다 보면 grafana에서 시간 구간을 변경할때 딜레이가 조금 있습니다. 로그성 모니터링 데이터다 보니 빠른 속도가 필요하지 않고 조금 기다렸다 보면 되지만 현재 prometheus에서 pull 하는 시간은 10초에서 15~30초로 늘리는 것도 괜찮을 거 같습니다.
아니면 종류별로 다른 시간으로 수집할 수 있는지 옵션을 확인해서 처리하는것도 방안으로 생각 중입니다. 300G라는 데이터가 부담이 되긴 합니다. 서버는 계속 늘어날 텐데 이렇게 수집하는 게 맞는지도 고민해 볼 사항이고 모니터링이 덜 중요하다고 하지만 HA구성도 가능합니다. 혹시나 HA구성을 하게 되었을 때 같은 데이터를 300G 이상 유지하고 있는 것도 부담이고요.
추가적으로 아키텍쳐나 모니터링 시간 구간을 어떻게 설정할지는 판단해 봐야 할 거 같습니다.