ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring Boot 핵심 기능 5 - 모니터링 & 관리 (Grafana)
    BackEnd/Spring Boot 2023. 5. 17. 08:50
    반응형

    그라파나(Grafana)

      프로메테우스가 DB라고 하면, 해당 DB에 있는 데이터를 불러서 사용자가 보기 편하게 보여주는 대시보드가 필요합니다. 그라파나는 매우 유연하고, 데이터를 그래프로 보여주는 툴입니다. 수 많은 그래프를 제공하고, 프로메테우스를 포함한 다양한 데이터소스를 지원합니다.

    그라파나 설치

    https://grafana.com/grafana/download

            → 압축을 푼 곳에서 bin 폴더로 이동하여 grafana-server.exe 실행

            → 개발자를 확인할 수 없기 때문에 'grafana-server'을(를) 열 수 없습니다. (이전 포스팅 프로메테우스 설치 참고)

            → 압축을 푼 곳에서 bin 폴더로 이동하여 ./grafana-server

     

    그라파나 실행

    http://localhost:3000

    • email or username: admin
    • password: admin

     

    그라파나 데이터소스 추가

      그라파나에서 프로메테우스를 데이터소스로 사용해서 데이터를 읽어와야 합니다.

    1. 왼쪽 하단에 있는 설정(Configuration) 버튼에서 Data sources를 선택합니다.
    2. Add data source를 선택합니다.
    3. Prometheus를 선택합니다.
    4. Prometheus 데이터 소스를 설정합니다. → URL: http://localhost:9090
    5. Save & test를 선택합니다.

     

    그라파나 대시보드 만들기

    1. 왼쪽 Dashboards 메뉴를 선택합니다.
    2. New 버튼 선택 → New Dashboard를 선택합니다.
    3. 오른쪽 상단의 Save dashboard 저장 버튼(disk 모양)을 선택합니다.
    4. Dashboard name: hello dashboard를 입력하고 저장합니다.

     

    대시보드에 패널 만들기

      대시보드가 큰 틀이라면 패널은 그 안에 모듈처럼 들어가는 실제 그래프를 보여주는 컴포넌트입니다.

    1. 오른쪽 상단의 Add panel 버튼(차트 모양) 선택합니다.
    2. Add a new panel 메뉴를 선택합니다.
    3. 패널의 정보를 입력할 수 있는 화면이 나타납니다.
    4. 아래에 보면 Run queries 버튼 오른쪽에 Builder, Code라는 버튼이 보입니다. Code를 선택합니다.
    5. Enter a PromQL query... 이라는 부분에 메트릭을 입력하면 됩니다.

     

    CPU 메트릭 만들기

      다음 메트릭을 패널에 추가합니다.

    • system_cpu_usage: 시스템의 CPU 사용량
    • process_cpu_usage: JVM 프로세스 CPU 사용량

     

      PromQL에 system_cpu_usage를 입력하고 Run queries 버튼을 선택하면, 패널에 시스템 CPU 사용량을 그래프로 확인할 수 있습니다. process_cpu_usage도 하나의 그래프에서 확인하기 위해 하단의 + Query 버튼을 선택 → PromQL에 process_cpu_usage를 입력하고 Run queries 버튼을 선택합니다. 패널에 프로세스 CPU 사용량이 추가된 것을 확인할 수 있습니다.

     

    • 그래프의 데이터 이름 변경: 패널 그래프 하단을 보면 범례(Legend)라고 하는 차트에 제공하는 데이터 종류를 구분하는 텍스트가 표시되어 있습니다. 예) system_cpu_usage를 입력한 곳 하단 Options 선택 → Legend 선택 → Custom 선택 → system cpu 입력
    • 패널 이름 설정: 오른쪽에 보면 Panel options라는 부분이 있습니다. Title을 수정합니다.
    • 패널 저장하기: 화면 오른쪽 상단의 Save or Apply 버튼을 선택합니다.
    • 그래프 데이터 사이즈 변경: 그래프를 보면 데이터 사이즈가 byte로 보이기 때문에 불편할 수 있습니다. 변경하기 위해서는 오른쪽 옵션 창을 확인 후 Standard options → Unit → Data → bytes(SI)를 선택합니다.
    • 최소값 변경: Standard options → Min → 0을 선택합니다.

     

    그라파나 공유 대시보드 활용

      다음 사이트에 접속하여 검색창에 spring이라고 검색하면 다양한 대시보드를 확인할 수 있습니다.

    https://grafana.com/grafana/dashboards/

     

    스프링 부트 시스템 모니터 대시보드 불러오기

      다음 사이트에 접속한 다음 Copy Id to clipboard를 선택합니다. 또는 ID: 11378 이라고 되어 있는 부분의 숫자를 저장합니다.

    https://grafana.com/grafana/dashboards/11378-justai-system-monitor/

    1. 그라파나 왼쪽 Dashboards 메뉴를 선택합니다.
    2. New 버튼 선택 → Import를 선택합니다.
    3. 불러올 대시보드 숫자(11378)를 입력하고 Load 버튼을 선택합니다.
    4. Prometheus 데이터소스를 선택하고 Import 버튼을 선택합니다.

     

      대시보드를 확인해보면 대부분의 메트릭을 대시보드에 표현한 것을 확인할 수 있습니다. 각각의 항목들을 보고 대시보드를 어떻게 구성해야 하는지도 학습할 수 있습니다.

     

    대시보드 수정하기

      대시보드를 수정하려면 먼저 수정모드로 변경해야 합니다. 오른쪽 상단의 설정 버튼을 선택하고 Make editable을 선택합니다. 해당 대시보드는 톰캣이 아니라 Jetty라는 웹 서버를 기준으로 통계를 수집합니다. 다음 순서에 따라 Tomcat 통계로 변경합니다.

    1. Jetty Statistics 부분으로 이동한 다음 설정 버튼을 통해 Title을 Tomcat Statistics로 변경합니다.
    2. Thread Config Max 패널 설정: jetty_threads_config_max → tomcat_threads_config_max_threads로 변경합니다.
    3. Thread 패널 설정: jetty_threads_current → tomcat_threads_current_threads, jetty_threads_busy → tomcat_threads_busy_threads로 변경하고, jetty_threads_idle 및 jetty_threads_jobs를 제거합니다.

     

      실무에서는 주로 CPU, 메모리, 커넥션 풀 사용량 및 에러 로그 급증 등을 모니터링합니다.

     

    반응형

    댓글

Designed by Tistory.