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-obsIAC 파일 경로
/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-obsIAC 파일 경로
/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 콘솔에서 프로젝트의 미해결 알림을 확인합니다.
- GDC 콘솔에 로그인합니다.
- GDC 콘솔에서 프로젝트를 선택합니다.
- 탐색 메뉴에서 운영 > 알림을 선택합니다.
- 알림 탭을 선택합니다.
- 알림 목록을 봅니다.
- 열린 알림 섹션에서 필터를 클릭하여 열린 알림만 표시합니다. 다른 속성 이름이나 값으로 알림을 필터링할 수도 있습니다.
- 알림 이름을 클릭하여 알림 세부정보를 확인합니다.
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 요청 인증
- gdcloud CLI를 다운로드하고 설치합니다.
gdcloud
core/organization_console_url속성을 설정합니다.gdcloud config set core/organization_console_url https://GDC_URL-
gdcloud auth login 사용자 이름과 비밀번호를 사용하여 인증하고 로그인합니다.
로그인에 성공하면
gdcloud auth print-identity-token명령어를 통해 curl 요청에서 승인 헤더를 사용할 수 있습니다. 자세한 내용은 gdcloud auth를 참조하세요.
Cortex 엔드포인트 호출
curl 도구를 사용하여 Cortex 엔드포인트에 도달하려면 다음 단계를 완료하세요.
curl요청을 인증합니다.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 형식입니다.