열린 알림 쿼리 및 보기

Google Distributed Cloud (GDC) 공기 간격의 알림 모니터링을 사용하면 알림 규칙을 만든 후 프로젝트 전반에서 활성 알림을 추적하고 문제를 해결할 수 있습니다. GDC 콘솔에서 알림 심각도, 기간, 상태, 라벨을 검사할 수 있습니다. 스크립팅, 크론 작업, 커스텀 통합의 경우 curl를 사용하여 프로젝트의 Cortex Alertmanager HTTP 엔드포인트를 쿼리합니다.

시작하기 전에

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

다음 표에는 PA and AO persona의 Role 요구사항이 요약되어 있습니다.

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

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

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

구성 1

이 구성은 사용자 그룹에 org 클러스터의 PA/AO 알림에 액세스할 수 있는 권한을 부여합니다. 이 구성을 설정한 후 이 문서의 콘솔 섹션을 참고하여 GDC 콘솔에서 알림을 확인합니다.

  • kubectl 명령어

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

    kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n `NAMESPACE` --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: NAMESPACE
    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 형식입니다.