Eseguire query e visualizzare gli avvisi aperti

Questa pagina fornisce istruzioni dettagliate su come eseguire query e visualizzare gli avvisi aperti utilizzando sia la console GDC sia lo strumento curl per l'endpoint Cortex per acquisire consapevolezza dei problemi e risolverli.

Dopo aver creato regole di avviso in base a log e metriche degli ambienti isolati di Google Distributed Cloud (GDC), puoi iniziare a monitorare gli avvisi aperti dal tuo progetto. Puoi visualizzare e filtrare gli avvisi attivati dagli eventi di sistema nella console GDC o accedervi direttamente da Cortex utilizzando lo strumento curl per script e automazione flessibili.

Puoi accedere agli avvisi aperti in uno dei due modi seguenti:

  • Console GDC: visualizza i dati di avviso in pannelli integrati contenenti informazioni come il numero di avvisi per una specifica origine dati, il livello di gravità, la durata, lo stato, il messaggio e le etichette. La console GDC fornisce un'interfaccia intuitiva per filtrare e analizzare gli avvisi dei componenti del sistema.
  • Endpoint Cortex Alertmanager: per casi d'uso più avanzati, esegui query direttamente sull'istanza Cortex del tuo progetto utilizzando lo strumento curl su una riga di comando. Cortex archivia gli avvisi di Alertmanager del tuo progetto e fornisce un endpoint HTTP per l'accesso programmatico. Questo accesso ti consente di esportare dati, automatizzare attività, configurare cron job e creare integrazioni personalizzate.

Prima di iniziare

Per ottenere le autorizzazioni necessarie per eseguire query e visualizzare gli avvisi, chiedi all'amministratore IAM del progetto di concederti uno dei ruoli Alertmanager di Project Cortex associati nello spazio dei nomi del progetto. A seconda del livello di accesso e delle autorizzazioni di cui hai bisogno, potresti ottenere i ruoli Editor o Visualizzatore per questa risorsa in un progetto.

La seguente tabella riepiloga i requisiti di Role per PA persona.

Utente tipo Oggetto Cluster Ruolo Spazio dei nomi Gruppo/utente Configurazione
PA grafana org-admin project-cortex-alertmanager-viewer platform-obs Gruppo 1
PA grafana org-admin project-cortex-alertmanager-viewer platform-obs Utente 2

Sostituisci le seguenti variabili in modo appropriato:

Variabile Descrizione
KUBECONFIG Avrai bisogno del kubeconfig per il cluster specifico che contiene NAMESPACE in cui verrà applicato questo RoleBinding.
RULE_NAME Il nome univoco di questa risorsa RoleBinding all'interno dello spazio dei nomi. Ad esempio, io-root-cortex-prometheus-viewer.
NAMESPACE Lo spazio dei nomi Kubernetes in cui verrà creato e applicato questo RoleBinding. Cerca la colonna Namespace nella tabella precedente.
EMAIL_ADDRESS L'identificatore dell'utente a cui viene concesso il ruolo. Spesso si tratta di un indirizzo email. Ad esempio, infrastructure-operator@example.com.
ROLE Il nome del Role che contiene le autorizzazioni che vuoi concedere all'utente. Cerca i ruoli disponibili nella tabella precedente
GROUP_NAME Il nome del Role che contiene le autorizzazioni che vuoi concedere all'utente. Ad esempio, io-group.
ZONE Nome della zona

Configurazione 1

Questa configurazione è per la persona PA, che ha come target l'oggetto grafana nel cluster org-admin. Concede il ruolo project-cortex-alertmanager-viewer all'interno dello spazio dei nomi platform-obs a un Group.

  • Comando kubectl

    Questo è il formato generico del comando:

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

    Esempio:

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

    /infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`GROUP_NAME`/<YAML_FILE>
    
  • 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
    

Configurazione 2

Questa configurazione è per la persona PA, che ha come target l'oggetto grafana nel cluster org-admin. Concede il ruolo project-cortex-alertmanager-viewer all'interno dello spazio dei nomi platform-obs a un User.

  • Comando kubectl

    Questo è il formato generico del comando:

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

    Esempio:

    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
    
  • Percorso file IAC

    /infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`EMAIL_ADDRESS`/<YAML_FILE>
    
  • 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
    

    Per saperne di più su questi ruoli, consulta Preparare le autorizzazioni IAM.

Visualizzare e filtrare gli avvisi aperti

Seleziona uno dei seguenti metodi per eseguire query e filtrare gli avvisi aperti dallo spazio dei nomi del progetto:

Console

Visualizza gli avvisi aperti in un progetto dalla console GDC:

  1. Accedi alla console GDC.
  2. Nella console GDC, seleziona il progetto.
  3. Nel menu di navigazione, seleziona Operazioni > Avvisi.
  4. Seleziona la scheda Avvisi.
  5. Visualizza l'elenco degli avvisi.
  6. Nella sezione Avvisi aperti, fai clic su Filtra per visualizzare solo gli avvisi aperti. Puoi anche filtrare gli avvisi in base ad altri nomi o valori delle proprietà.
  7. Fai clic sul nome di un avviso per visualizzarne i dettagli.

Endpoint Cortex

Questa sezione descrive come accedere agli avvisi utilizzando l'endpoint Cortex Alertmanager.

Identificare l'endpoint Cortex

Il seguente URL è l'endpoint dell'istanza Cortex del tuo progetto:

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

Sostituisci quanto segue:

  • GDC_URL: l'URL della tua organizzazione in GDC.
  • PROJECT_NAMESPACE: lo spazio dei nomi del progetto.

    Ad esempio, l'endpoint Cortex per il progetto platform-obs nell'organizzazione org-1 è https://org-1/platform-obs/cortex/alertmanager/.

Autenticare la richiesta curl

  1. Scarica e installa gcloud CLI.
  2. Imposta la proprietà gdcloud core/organization_console_url:

    gdcloud config set core/organization_console_url
    https://GDC_URL
    
  3. Accedi con il provider di identità configurato:

    gdcloud auth login
    
  4. Utilizza il tuo nome utente e la tua password per autenticarti e accedere.

    Una volta eseguito l'accesso, puoi utilizzare l'intestazione di autorizzazione nella richiesta curl tramite il comando gdcloud auth print-identity-token. Per maggiori informazioni, vedi gdcloud auth.

Chiama l'endpoint Cortex

Per raggiungere l'endpoint Cortex utilizzando lo strumento curl:

  1. Autenticare la richiesta curl.
  2. Utilizza curl per chiamare l'endpoint Cortex ed estendi l'URL utilizzando la specifica API Alertmanager standard (https://prometheus.io/docs/prometheus/latest/querying/api/#alertmanagers) per eseguire query sugli avvisi.

    Di seguito è riportato un esempio di richiesta curl:

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

    Ottieni l'output seguente al comando. La risposta API è in formato JSON.