열린 알림 쿼리 및 보기

이 페이지에서는 Cortex 엔드포인트의 GDC 콘솔과 curl 도구를 모두 사용하여 미해결 알림을 쿼리하고 시각화하여 문제 인지도를 높이고 문제를 해결하는 방법을 자세히 설명합니다.

Google Distributed Cloud (GDC) 오프라인 환경의 로그 및 측정항목을 기반으로 알림 규칙을 만든 후 프로젝트에서 열린 알림을 모니터링할 수 있습니다. 시스템 이벤트가 트리거하는 알림을 GDC 콘솔에서 시각화하고 필터링하거나, curl 도구를 사용하여 Cortex에서 직접 액세스하여 유연한 스크립팅 및 자동화를 수행할 수 있습니다.

다음 두 가지 방법 중 하나로 열린 알림에 액세스할 수 있습니다.

  • GDC 콘솔: 특정 데이터 소스의 알림 수, 심각도 수준, 기간, 상태, 메시지, 라벨과 같은 정보가 포함된 통합 패널에서 알림 데이터를 시각화합니다. GDC 콘솔은 시스템 구성요소의 알림을 필터링하고 분석할 수 있는 사용자 친화적인 인터페이스를 제공합니다.
  • Cortex Alertmanager 엔드포인트: 고급 사용 사례의 경우 명령줄에서 curl 도구를 사용하여 프로젝트의 Cortex 인스턴스를 직접 쿼리합니다. Cortex는 프로젝트의 Alertmanager 알림을 저장하고 프로그래매틱 액세스를 위한 HTTP 엔드포인트를 제공합니다. 이 액세스 권한을 사용하면 데이터를 내보내고, 작업을 자동화하고, 크론 작업을 구성하고, 맞춤 통합을 빌드할 수 있습니다.

시작하기 전에

알림을 쿼리하고 시각화하는 데 필요한 권한을 얻으려면 프로젝트 IAM 관리자에게 프로젝트 네임스페이스에서 연결된 Project Cortex Alertmanager 역할 중 하나를 부여해 달라고 요청하세요. 필요한 액세스 수준 및 권한에 따라 프로젝트에서 이 리소스에 대한 편집자 또는 뷰어 역할을 획득할 수 있습니다.

다음 표에는 PA personaRole 요구사항이 요약되어 있습니다.

페르소나 객체 클러스터 역할 네임스페이스 그룹/사용자 구성
PA grafana org-admin project-cortex-alertmanager-viewer platform-obs 그룹 1
PA grafana org-admin project-cortex-alertmanager-viewer platform-obs 사용자 2

다음 변수를 적절하게 바꿉니다.

변수 설명
KUBECONFIG 이 RoleBinding이 적용될 NAMESPACE가 포함된 특정 클러스터의 kubeconfig가 필요합니다.
RULE_NAME 네임스페이스 내에서 이 RoleBinding 리소스의 고유한 이름입니다. 예를 들면 io-root-cortex-prometheus-viewer입니다.
NAMESPACE RoleBinding가 생성되고 적용될 Kubernetes 네임스페이스입니다. 이전 표에서 Namespace 열을 찾습니다.
EMAIL_ADDRESS 역할이 부여되는 사용자의 식별자입니다. 이메일 주소인 경우가 많습니다. 예를 들면 infrastructure-operator@example.com입니다.
ROLE 사용자에게 부여할 권한이 포함된 Role의 이름입니다. 이전 표에 나와 있는 역할을 찾습니다.
GROUP_NAME 사용자에게 부여할 권한이 포함된 Role의 이름입니다. 예를 들면 io-group입니다.
ZONE 영역 이름

구성 1

이 구성은 org-admin 클러스터의 grafana 객체를 타겟팅하는 PA 페르소나를 위한 것입니다. platform-obs 네임스페이스 내의 project-cortex-alertmanager-viewer 역할을 Group에 부여합니다.

  • Kubectl 명령어

    일반적인 명령어 형식은 다음과 같습니다.

    kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --group=`GROUP_NAME` --role=project-cortex-alertmanager-viewer
    

    예:

    kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-cortex-alertmanager-viewer-binding --role=project-cortex-alertmanager-viewer --group=my-team --namespace=platform-obs
    
  • IAC 파일 경로

    /infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`GROUP_NAME`/<YAML_FILE>
    
  • YAML 파일

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: RULE_NAME
      namespace: platform-obs
    subjects:
    - kind: Group
      name: GROUP_NAME
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: Role
      name: project-cortex-alertmanager-viewer
      apiGroup: rbac.authorization.k8s.io
    

구성 2

이 구성은 org-admin 클러스터의 grafana 객체를 타겟팅하는 PA 페르소나를 위한 것입니다. platform-obs 네임스페이스 내의 project-cortex-alertmanager-viewer 역할을 User에 부여합니다.

  • Kubectl 명령어

    일반적인 명령어 형식은 다음과 같습니다.

    kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --user=`EMAIL_ADDRESS` --role=project-cortex-alertmanager-viewer
    

    예:

    kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-cortex-alertmanager-viewer-binding --role=project-cortex-alertmanager-viewer --user=my-email@example.com --namespace=platform-obs
    
  • IAC 파일 경로

    /infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`EMAIL_ADDRESS`/<YAML_FILE>
    
  • YAML 파일

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: RULE_NAME
      namespace: platform-obs
    subjects:
    - kind: User
      name: EMAIL_ADDRESS
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: Role
      name: project-cortex-alertmanager-viewer
      apiGroup: rbac.authorization.k8s.io
    

    이러한 역할에 대한 자세한 내용은 IAM 권한 준비를 참고하세요.

열린 알림 보기 및 필터링

다음 방법 중 하나를 선택하여 프로젝트 네임스페이스에서 열린 알림을 쿼리하고 필터링합니다.

콘솔

GDC 콘솔에서 프로젝트의 미해결 알림을 확인합니다.

  1. GDC 콘솔에 로그인합니다.
  2. GDC 콘솔에서 프로젝트를 선택합니다.
  3. 탐색 메뉴에서 작업 > 알림을 선택합니다.
  4. 알림 탭을 선택합니다.
  5. 알림 목록을 확인합니다.
  6. 열린 알림 섹션에서 필터를 클릭하여 열린 알림만 표시합니다. 다른 속성 이름이나 값으로 알림을 필터링할 수도 있습니다.
  7. 알림 이름을 클릭하여 알림 세부정보를 확인합니다.

Cortex 엔드포인트

이 섹션에서는 Cortex Alertmanager 엔드포인트를 사용하여 알림에 액세스하는 방법을 설명합니다.

Cortex 엔드포인트 확인

다음 URL은 프로젝트의 Cortex 인스턴스 엔드포인트입니다.

  https://GDC_URL/PROJECT_NAMESPACE/cortex/alertmanager/

다음을 바꿉니다.

  • GDC_URL: GDC의 조직 URL입니다.
  • PROJECT_NAMESPACE: 프로젝트 네임스페이스

    예를 들어 org-1 조직의 platform-obs 프로젝트에 대한 Cortex 엔드포인트는 https://org-1/platform-obs/cortex/alertmanager/입니다.

curl 요청 인증

  1. gdcloud CLI를 다운로드하고 설치합니다.
  2. gdcloud core/organization_console_url 속성을 설정합니다.

    gdcloud config set core/organization_console_url
    https://GDC_URL
    
  3. 구성된 ID 공급업체로 로그인:

    gdcloud auth login
    
  4. 사용자 이름과 비밀번호를 사용하여 인증하고 로그인합니다.

    로그인이 성공하면 gdcloud auth print-identity-token 명령어를 통해 curl 요청에서 승인 헤더를 사용할 수 있습니다. 자세한 내용은 gdcloud auth를 참고하세요.

Cortex 엔드포인트 호출

curl 도구를 사용하여 Cortex 엔드포인트에 도달하려면 다음 단계를 완료하세요.

  1. curl 요청 인증
  2. curl를 사용하여 Cortex 엔드포인트를 호출하고 표준 Alertmanager API 사양(https://prometheus.io/docs/prometheus/latest/querying/api/#alertmanagers)을 사용하여 URL을 확장하여 알림을 쿼리합니다.

    다음은 curl 요청의 예시입니다.

      curl https://GDC_URL/PROJECT_NAME/cortex/alertmanager/api/v1/alertmanagers \
      -H "Authorization: Bearer $(gdcloud auth print-identity-token \
      --audiences=https://GDC_URL)"
    

    명령어에 따라 출력을 가져옵니다. API 응답은 JSON 형식입니다.