Cloud Monitoring으로 Grafana 대시보드 가져오기

이 문서에서는 Grafana JSON 형식의 대시보드 파일을 Cloud Monitoring으로 가져오는 방법을 설명합니다. 다음과 같은 방법으로 Grafana 대시보드를 가져올 수 있습니다.

가져오기 프로세스는 Grafana에서 사용하는 JSON 형식의 대시보드 파일을 Cloud Monitoring에서 사용하는 JSON 형식으로 변환합니다. 변환된 대시보드는 원래 Grafana 대시보드와 다를 수 있습니다. 예를 들어 Grafana 대시보드가 Cloud Monitoring 대시보드에서 제공되지 않는 기능을 사용하는 경우 Grafana 대시보드의 해당 요소는 변환되지 않습니다. 이러한 차이점은 가져오기 결과에 나열됩니다.

PromQL 표현식과 Prometheus 데이터 소스를 사용하는 대시보드만 가져올 수 있습니다. 형식이 다른 쿼리나 데이터 소스를 사용하는 대시보드를 성공적으로 가져오지 못할 수 있습니다.

Cloud Monitoring으로 Prometheus 알림을 가져오는 방법은 Prometheus에서 알림 규칙 및 수신자 마이그레이션을 참조하세요.

가져온 대시보드 관리에 대한 일반적인 정보는 커스텀 대시보드 만들기 및 관리를 참조하세요.

시작하기 전에

Google Cloud 콘솔을 사용하든 가져오기 도구를 사용하든 대시보드를 가져오려면 충분한 권한이 있어야 하며, 가져올 대시보드가 있어야 합니다. 가져오기 도구를 사용할 때는 추가 기본 요건이 있습니다.

승인

커스텀 대시보드를 만들고 수정하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Monitoring 편집자(roles/monitoring.editor) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

역할에 대한 자세한 내용은 Identity and Access Management로 액세스 제어를 참조하세요.

가져올 Grafana 대시보드 수집

Grafana 대시보드를 가져오려면 JSON 형식의 파일로 로컬에 저장해야 합니다. 이러한 대시보드 파일을 위한 디렉터리를 따로 만들 수 있습니다.

Google Cloud 콘솔을 사용하여 대시보드 가져오기

Google Cloud 콘솔의 다음 위치에서 Grafana 대시보드를 Cloud Monitoring으로 가져올 수 있습니다.

  • Monitoring 대시보드 페이지의 대시보드 목록
  • 모니터링 개요 페이지의 온보딩 체크리스트의 대시보드 섹션

Grafana 대시보드 가져오기

Grafana 대시보드를 하나 이상 가져오려면 다음 단계를 따르세요.

  1. Monitoring에서 대시보드 또는 개요 페이지로 이동합니다.

    • Google Cloud 콘솔에서  대시보드 페이지로 이동합니다.

      대시보드로 이동

      검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.

    • Google Cloud 콘솔에서 Monitoring 개요 페이지로 이동합니다.

      개요로 이동

      검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.

  2.  Grafana 대시보드 가져오기를 클릭합니다.

  3. 찾아보기를 클릭하여 Grafana 대시보드를 JSON 형식으로 저장한 디렉터리로 이동하고 가져올 대시보드를 선택합니다.

    각 JSON 파일은 선택된 후 스테이징됩니다. 스테이징 파일 창에 변환에 문제가 있는지 표시됩니다.

    •  변환된 JSON 보기를 클릭하여 변환 결과를 확인합니다.
    •  파일 삭제를 클릭하여 가져오기 작업에서 대시보드를 삭제합니다.
  4.  가져오기를 클릭합니다. 결과 가져오기 창에는 각 대시보드를 성공적으로 가져왔는지 여부가 표시됩니다.

  5. 가져온 대시보드를 보려면  보기를 클릭합니다.

가져온 대시보드 보기

가져온 대시보드를 보려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서  대시보드 페이지로 이동합니다.

    대시보드로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.

  2. 목록에서 보려는 대시보드를 찾습니다. 대시보드 목록을 필터링하려면 다음을 수행합니다.

    • 사용자 정의 대시보드만 보려면 커스텀 카테고리를 선택합니다.
    • cloud-monitoring-dashboard-importer 라벨을 선택하면 Google Cloud 콘솔을 사용하여 가져온 Grafana 대시보드만 표시됩니다.
    • 필터 표시줄을 사용하여 이름으로 검색합니다.

가져오기 도구를 사용하여 대시보드 가져오기

가져오기 도구를 사용하면 한 번의 작업으로 Grafana 대시보드를 변환하여 Cloud Monitoring에 업로드할 수도 있고, 변환과 업로드 단계를 개별적으로 수행할 수도 있습니다. 변환된 대시보드를 수정한 후에 업로드하려는 경우 이 방식을 선택할 수 있습니다.

추가 기본 요건

대시보드 가져오기 도구를 설치하고 실행하려면 먼저 다음을 수행해야 합니다.

  1. Bash 셸 스크립트를 지원하는 환경을 사용합니다.
  2. Git이 있거나 Git을 설치합니다.
  3. Node.js 버전 20.4.1 이상이 있거나 Node.js를 설치합니다.
  4. Google Cloud CLI가 있거나 Google Cloud CLI를 설치합니다. gcloud CLI가 이미 설치되어 있는 경우 gcloud components update 명령어를 실행하여 최신 버전이 있는지 확인합니다.

대시보드 가져오기 도구 가져오기

대시보드 가져오기 도구는 monitoring-dashboard-samples GitHub 저장소에 저장되어 있습니다. 가져오기 도구를 가져오려면 다음을 수행합니다.

  1. 저장소를 복제합니다.

    git clone https://github.com/GoogleCloudPlatform/monitoring-dashboard-samples
    
  2. 대시보드 가져오기 도구의 디렉터리로 변경합니다.

    cd monitoring-dashboard-samples/scripts/dashboard-importer
    

대시보드 가져오기 도구에는 다음 스크립트가 포함됩니다.

  • import.sh: 대시보드를 변환하고 선택적으로 변환된 대시보드를 Cloud Monitoring에 업로드합니다.

  • upload.sh: 변환된 대시보드 또는 Monitoring 대시보드를 Cloud Monitoring에 업로드합니다. import.sh 스크립트는 이 스크립트를 호출하여 업로드를 수행합니다.

import.sh 스크립트를 사용할 경우 변환할 Grafana 대시보드의 위치를 지정해야 합니다. 가져오기 도구는 변환된 대시보드 및 기타 정보가 포함된 디렉터리를 만듭니다. 다음 섹션에서는 이러한 디렉터리를 설명합니다.

변환할 Grafana 대시보드

대시보드 가져오기 도구를 사용하면 대시보드 파일의 경로를 지정하여 한 번에 하나 이상의 대시보드를 변환할 수 있습니다.

  • 대시보드가 포함된 디렉터리의 경로를 지정할 수 있습니다. 디렉터리에서 확장자가 .json인 파일만 처리됩니다.

  • 단일 JSON 파일의 경로를 지정할 수 있습니다. 파일 이름에 .json 확장자가 있어야 합니다.

변환된 대시보드 및 기타 정보

가져오기 도구가 처음 실행되면 reports 하위 디렉터리가 생성됩니다. 가져오기 도구를 실행할 때마다 reports 디렉터리 아래에 날짜 및 시간으로 이름이 지정된 새 출력 디렉터리가 생깁니다. 출력 디렉터리 이름의 구조는 다음과 같습니다.
reports/YYYY-M-D/HH:MM:SS

가져오기 도구의 각 호출에서 출력 디렉터리에는 다음이 포함됩니다.

  • 원본 Grafana 대시보드와 이름이 같으며 Cloud Monitoring JSON 형식으로 변환된 하나 이상의 파일
  • 변환된 각 대시보드에 대해 다음 정보를 기록하는 report.json 파일
    • 변환된 Grafana 대시보드 파일의 이름과 위치
    • 변환된 Monitoring 대시보드 파일의 이름과 위치
    • Cloud Monitoring에 해당 기능이 없으므로 변환된 대시보드에 포함될 수 없는 Grafana 대시보드의 기능에 대한 알림
    • 변환 시 발생한 오류

대시보드를 업로드한 경우 보고서 디렉터리에는 대시보드가 업로드된 URL이 포함된 upload_HH:MM:SS.txt 파일도 포함되어 있습니다.

Grafana 대시보드 가져오기

Grafana 대시보드를 변환하여 Cloud Monitoring에 업로드하려면 import.sh 스크립트를 사용합니다.

./import.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID

이 스크립트는 다음을 수행합니다.

  1. PATH_TO_DIRECTORY_OR_FILE의 대시보드를 Grafana에서 사용하는 JSON 형식에서 Cloud Monitoring에서 사용하는 JSON 형식으로 변환합니다.
  2. Google Cloud CLI를 사용하여 변환된 대시보드를 Google Cloud 프로젝트 PROJECT_ID에 업로드합니다.

    gcloud CLI에 인증하지 않은 경우 import.sh 스크립트를 실행하기 전에 gcloud auth login 명령어를 실행합니다.

디렉터리의 모든 Grafana 대시보드를 가져올 수도 있고, 디렉터리에서 가져올 대시보드 하나를 지정할 수도 있습니다.

  • GRAFANA_DASHBOARDS_DIR 디렉터리의 모든 대시보드를 PROJECT_ID Google Cloud 프로젝트로 가져오려면 스크립트를 호출할 때 가져오기 도구 디렉터리를 기준으로 디렉터리를 지정하고 대상 프로젝트 ID를 지정합니다.

    ./import.sh GRAFANA_DASHBOARDS_DIR PROJECT_ID
    
  • GRAFANA_DASHBOARDS_DIR 디렉터리의 MY_GRAFANA_DASHBOARD.json 대시보드만 변환하려면 스크립트를 호출할 때 가져오기 도구 디렉터리를 기준으로 대시보드 파일 이름을 포함합니다.

    ./import.sh GRAFANA_DASHBOARDS_DIR/MY_GRAFANA_DASHBOARD.json PROJECT_ID
    

대시보드 가져오기 도구에는 샘플 Grafana 대시보드가 examples/k8s_cluster_example.json으로 포함되어 있습니다. 다음 명령어는 해당 대시보드를 지정된 프로젝트로 가져옵니다.

./import.sh examples/k8s_cluster_example.json PROJECT_ID

PROJECT_ID my-project-test-1로 호출한 경우 다음과 유사한 결과가 출력됩니다.

Converting: Kubernetes Cluster Overview
✓ Kubernetes Cluster Overview converted successfully

Conversion of examples/k8s_cluster_example.json complete. Conversion Report located at: reports/2023-9-28/22:14:57/report.json


To upload these dashboard(s) manually, you can run:
./upload.sh reports/2023-9-28/22:14:57/ <PROJECT_ID>

Conversion Complete. Proceeding to uploading...

Now running: ./upload.sh reports/2023-9-28/22:14:57/ my-project-test-1

Uploading 1 dashboard(s) from a directory with the following args:
Directory: reports/2023-9-28/22:14:57/
Project: my-project-test-1

The following are your dashboards:
- k8s_cluster_example.json

import.sh 스크립트가 출력 디렉터리를 만든 후에 대시보드를 변환했지만 변환된 대시보드를 프로젝트에 업로드하기 전에 확인 메시지를 표시합니다. y를 입력하면 스크립트가 대시보드를 업로드하고 새 대시보드의 URL을 출력합니다.

Would you like to continue? (y/n) y

✓ k8s_cluster_example.json successfully uploaded:
https://console.cloud.google.com/monitoring/dashboards/builder/9c341ef8-cfef-4bdd-98d5-821571c520ef?project=my-project-test-1

Upload log created in reports/2023-9-28/22:14:57/upload_22:14:57.txt

Need to troubleshoot? Please visit:
https://github.com/GoogleCloudPlatform/monitoring-dashboard-samples/tree/master/scripts/dashboard-importer/README.md#troubleshooting

업로드하지 않고 Grafana 대시보드 변환

변환된 대시보드를 업로드하기 전에 검사하거나 수정하려면 import.sh 스크립트를 호출할 때 PROJECT_ID 값을 생략합니다.

./import.sh PATH_TO_DIRECTORY_OR_FILE

가져오기 도구는 Grafana 대시보드 가져오기에 설명된 대로 대시보드를 변환하지만 변환된 대시보드를 Cloud Monitoring에 업로드하지 않습니다.

나중에 upload.sh 스크립트를 수동으로 사용하여 업로드 단계를 실행할 수 있습니다.

대시보드 수동 업로드

Cloud Monitoring JSON 형식의 대시보드를 수동으로 업로드하려면 upload.sh 스크립트를 사용합니다.

    ./upload.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID

upload.sh 스크립트는 Google Cloud CLI를 사용하여 JSON 파일을 업로드합니다. gcloud CLI에 인증하지 않은 경우 upload.sh 스크립트를 실행하기 전에 gcloud auth login 명령어를 실행합니다.

  • reports/YYYY-M-D/HH:MM:SS 디렉터리의 모든 대시보드를 업로드하려면 스크립트를 호출할 때 가져오기 도구 디렉터리를 기준으로 디렉터리를 지정하고 대상 프로젝트 ID를 지정합니다.

    ./upload.sh reports/YYYY-M-D/HH:MM:SS PROJECT_ID
    

    디렉터리에서 모든 대시보드를 업로드할 때 스크립트는 대시보드를 업로드하기 전에 계속할지 아아니면 종료할지 묻는 메시지를 표시합니다.

  • reports/YYYY-M-D/HH:MM:SS 디렉터리의 특정 대시보드를 업로드하려면 스크립트를 호출할 때 가져오기 도구 디렉터리를 기준으로 디렉터리와 파일 이름을 지정하고 대상 프로젝트 ID를 지정합니다.

    ./upload.sh reports/YYYY-M-D/HH:MM:SS/MY_MONITORING_DASHBOARD.json PROJECT_ID
    

    디렉터리에서 단일 대시보드를 업로드하면 스크립트 실행 시 대시보드를 업로드하기 전에 프롬프트가 표시되지 않습니다.

예를 들어 다음 명령어는 reports 하위 디렉터리에 저장된 대시보드를 Google Cloud 프로젝트 my-project-test-1에 업로드합니다.

./upload.sh reports/2023-9-26/22:48:31/k8s_cluster_example.json my-project-test-1
Uploading json file: k8s_cluster_example.json to project: my-project-test-1...

✓ k8s_cluster_example.json successfully uploaded:
https://console.cloud.google.com/monitoring/dashboards/builder/25956d9a-93e2-410c-ada1-ec6872cb6665?project=my-project-test-1

업로드된 대시보드 보기

업로드된 대시보드를 보려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서  대시보드 페이지로 이동합니다.

    대시보드로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.

  2. 목록에서 보려는 대시보드를 찾습니다. 대시보드 목록을 필터링하려면 다음을 수행합니다.

    • 사용자 정의 대시보드만 보려면 커스텀 카테고리를 선택합니다.
    • 가져오기 도구를 사용하여 가져온 Grafana 대시보드만 표시하려면 cloud-ops-grafana-importer 라벨을 선택합니다.
    • 필터 표시줄을 사용하여 이름으로 검색합니다.

문제 해결

때때로 도구에 대한 작은 업데이트 및 버그 수정이 게시됩니다. 추가 문제 해결을 시도하기 전에 먼저 git pull을 사용해서 저장소의 최신 버전을 가져와 문제를 해결한 후 가져오기를 다시 시도하세요.

변환된 대시보드에서 차트에 데이터가 표시되지 않는 등의 문제가 발생한 경우 가져오기 도구의 README 파일을 참조하세요.

다음 단계