Google Distributed Cloud(GDC)エアギャップのアラート モニタリングを使用すると、アラートルールを作成した後に、プロジェクト全体のアクティブな通知を追跡してトラブルシューティングできます。アラートの重大度、期間、ステータス、ラベルは、GDC コンソールで確認できます。スクリプト、cron ジョブ、カスタム統合の場合は、curl を使用してプロジェクトの Cortex Alertmanager HTTP エンドポイントにクエリを実行します。
始める前に
アラートのクエリと可視化に必要な権限を取得するには、プロジェクトの Namespace で関連する Project Cortex Alertmanager ロールのいずれかを付与するよう IAM プロジェクト管理者に依頼します。必要なアクセスレベルと権限に応じて、プロジェクト内のこのリソースの編集者ロールまたは閲覧者ロールを取得できます。
次の表に、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 |
Namespace 内のこの RoleBinding リソースの一意の名前。例: pa-cortex-alertmanager-viewer |
NAMESPACE |
この RoleBinding が作成され、適用される Kubernetes Namespace。前の表の Namespace 列を探します。 |
EMAIL_ADDRESS |
ロールが付与されるユーザーの ID。通常はメールアドレスです。例: 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
この構成は PA ペルソナ用で、org-admin クラスタの grafana オブジェクトをターゲットにしています。platform-obs Namespace 内の 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 コンソールで、プロジェクトを選択します。
- ナビゲーション メニューで、[オペレーション] > [アラート] を選択します。
- [アラート] タブを選択します。
- アラートのリストを表示します。
- [Alerts opened] セクションで、[Filter] をクリックして、オープン状態のアラートのみを表示します。他のプロパティ名または値でアラートをフィルタすることもできます。
- アラート名をクリックすると、アラートの詳細が表示されます。
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 形式です。