모니터링을 위해 사용하는 도구

현재 dev 서버는 모니터링을 위해 아래와 같은 도구를 사용한다.

메트릭을 수집하기 위한 도구

prometheus 메트릭을 수집하고 저장한다. 메트릭의 예로는 CPU 사용량, 메모리 사용량, JVM 정보, Http 요청 수 등이 있다.
node_exporter 시스템 메트릭(CPU 사용량, 메모리 사용량, 디스크 I/O 등)을 prometheus가 수집할 수 있도록 제공한다.
spring_actuator was 메트릭(JVM 정보, Http 요청 수 등)을 prometheus가 수집할 수 있도록 제공한다.

로그를 수집하기 위한 도구

loki 로그를 수집하고 저장한다.
promtail 서버에서 발생하는 로그를 수집하여 Loki로 전달하는 역할을 한다.

모니터링을 위한 도구

grafana loki에 저장된 로그와 prometheus에 저장된 로그를 가져와서 화면에 보여준다.

메트릭 수집 방식

prometheus의 시스템 메트릭 수집과정

image.png

(1) prometheus가 node_exporter에게 메트릭 정보를 요청(http)한다.

(2) node_exporter는 prometheus에게 인스턴스의 정보를 응답(http)한다.

(3) (1)번과 (2)번 과정을 주기적으로 반복한다.

prometheus의 was 메트릭 수집과정

image.png