모니터링 알림(Notification) 설정

모니터링 대시보드에는 여러 개의 사전 정의된 알림이 있습니다. 알림(alert)이 상태를 변경하면 알림(notification)을 발송합니다. Grafana에서 알림(alert)을 받으려면 알림(notification) 채널을 구성해야 합니다.

Grafana는 다양한 알림(notification) 유형을 지원합니다(이메일, Slack, Webhooks 등). 자세한 알림(notification) 유형에 대한 지원 사항은 Grafana 문서를 참조하세요.

이 문서에서는 일반적인 알림(notification) 채널(예: 이메일, Slack, PagerDuty, Webhooks)을 설정하는 방법을 다룹니다.

알림(notification)을 설정하기 전에 모니터링 컨테이너가 실행 중인지 확인하세요.

이메일

  1. monitoring-compose.yml 파일에서 SMTP 설정을 구성합니다.
    services:
      ...
      grafana:
      ...
        environment:
          GF_SECURITY_ADMIN_PASSWORD: ${GF_SECURITY_ADMIN_PASSWORD:?Missing env GF_SECURITY_ADMIN_PASSWORD for Grafana admin password}
          WA_PROMETHEUS_ENDPOINT: ${WA_PROMETHEUS_ENDPOINT:-http://prometheus:9090}
          GF_SERVER_ROOT_URL: your-grafana-public-endpoint #(ex. https://foo.bar.com:3000)
          GF_SMTP_ENABLED: 1
          GF_SMTP_HOST: your-smtp-host #(ex. smtp.gmail.com:465)
          GF_SMTP_USER: your-smtp-auth-user #(ex. you@email.com)
          GF_SMTP_PASSWORD: your-smtp-auth-password
          GF_SMTP_SKIP_VERIFY: 1
        depends_on:
          - 'prometheus'
    
  2. Grafana를 다시 시작합니다.
    docker-compose -f monitoring-compose.yml up -d
  3. 알림(Alerting) 패널에서 알림(Notification) 채널에 액세스합니다.
    알림(Notification) 채널
  4. 이메일 주소를 입력하고 테스트 보내기 버튼을 클릭하여 설정을 테스트합니다.
    테스트 보내기
    올바르게 구성된 경우 다음과 같은 이메일을 받게 됩니다.
    Grafana 이메일
    그렇지 않을 경우 Grafana 컨테이너 로그를 확인하여 디버깅하세요.
  5. 저장을 클릭하여 설정을 저장합니다. 그러면 Grafana로부터 알림(alert)을 받게 됩니다. 자세한 내용은 Grafana의 이메일 알림(notification) 문서를 참조하세요.

Slack

  1. 이름(예: 알림(alert))을 입력하고 앱을 설치할 작업 공간을 선택하여 Slack 앱을 만듭니다.
  2. 수신 Webhooks 버튼을 클릭하여 이 기능을 앱에 추가합니다.
    수신 Webhooks
  3. 수신 Webhooks 활성화 토글을 클릭하여 활성화하고 새로운 Webhooks를 작업 공간에 추가하기를 클릭합니다.
    새로운 Webhooks를 작업 공간에 추가하기
  4. 앱을 게시할 채널을 선택하고 승인 버튼을 클릭하여 앱을 승인합니다.
  5. Webhooks URL(예: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX)을 복사하여 Grafana에서 Slack 알림(notification)을 설정합니다. 테스트 보내기 버튼을 클릭하여 설정을 테스트합니다. 올바르게 구성된 경우 다음과 같이 구성된 채널에서 메시지를 받게 됩니다.
    Slack 알림(Notification)
    그렇지 않을 경우 Grafana 컨테이너 로그를 확인하여 디버깅하세요.
  6. 저장을 클릭하여 설정을 저장합니다. 그러면 Grafana로부터 알림(alert)을 받게 됩니다. 자세한 내용은 Grafana의 Slack 알림(notification) 문서를 참조하세요.

PagerDuty

  1. 새 서비스(예: https://XXXX.pagerduty.com/services/new)를 추가하고 API를 직접 사용통합 유형으로 선택합니다.
    서비스 추가하기
  2. 통합 키(예: de7439f367354513b9e1ba4042f0e3b8)를 복사하여 Grafana에서 PagerDuty 알림(notification)을 설정합니다. 테스트 보내기 버튼을 클릭하여 설정을 테스트합니다. 올바르게 구성된 경우 다음과 같이 PagerDuty 알림(Alert) 페이지에서 알림(alert)을 받게 됩니다.
    PagerDuty 알림(Notification)
    그렇지 않을 경우 Grafana 컨테이너 로그를 확인하여 디버깅하세요.
  3. 저장을 클릭하여 설정을 저장합니다. 그러면 Grafana로부터 알림(alert)을 받게 됩니다. 자세한 내용은 Grafana의 PagerDuty 알림(notification) 문서를 참조하세요.

Webhooks

알림(alert)을 받도록 Webhooks 서버를 설정할 수도 있습니다.

  1. Grafana에서 Webhooks 알림(notification)을 설정합니다. 테스트 보내기 버튼을 클릭하여 설정을 테스트합니다. 올바르게 구성된 경우 다음과 같이 JSON 페이로드를 받게 됩니다.
    {
        "evalMatches": [
            {
                "metric": "High value",
                "tags": null,
                "value": 100
            },
            {
                "metric": "Higher Value",
                "tags": null,
                "value": 200
            }
        ],
        "message": "Someone is testing the alert notification within grafana.",
        "ruleId": 0,
        "ruleName": "Test notification",
        "ruleUrl": "http://localhost:3000/",
        "state": "alerting",
        "title": "[Alerting] Test notification"
    }
    
    그렇지 않을 경우 Grafana 컨테이너 로그를 확인하여 디버깅하세요.
  2. 저장을 클릭하여 설정을 저장합니다. 그러면 Grafana로부터 알림(alert)을 받게 됩니다. 자세한 내용은 Grafana의 Webhooks 알림(notification) 문서를 참조하세요.