Risolvere i problemi relativi alle credenziali

Questo documento fornisce informazioni per aiutarti a risolvere i problemi di Ops Agent di autorizzazione e credenziali sulle tue istanze VM di Compute Engine.

Se Ops Agent segnala errori di accesso o di autorizzazione oppure se che l'agente sembra funzionare normalmente, ma non ci sono dati o è stato visualizzato che non funzionano come previsto, quindi verifica che la classe di archiviazione credenziali siano corrette e che specifichino il progetto corretto:

  • Se utilizzi un'istanza VM di Compute Engine con standard (non chiave privata), è improbabile che i dati vengano inviati progetto errato, ma le tue credenziali potrebbero essere comunque carenti. Per informazioni su credenziali, consulta Autorizzare Ops Agent. Per verificare le tue credenziali, vedi Verifica delle credenziali di Compute Engine.

  • Se utilizzi una chiave privata sull'istanza Compute Engine, quindi le credenziali potrebbero non essere validi oppure potrebbero provenire dal progetto sbagliato. Per informazioni sulle credenziali, consulta Autorizzare Ops Agent. Per verificare le tue credenziali, vedi Verifica delle credenziali della chiave privata.

Verifica delle credenziali di Compute Engine

Utilizza la pagina Istanze VM di Compute Engine della console Google Cloud per verifica che l'istanza VM di Compute Engine abbia credenziali adeguate per Ops Agent. In genere le credenziali vengono aggiunte l'account di servizio predefinito per tutte le nuove istanze VM di Compute Engine, di sovrascrivere i valori predefiniti durante la creazione di un'istanza.

Nella console Google Cloud, vai alla pagina Istanze VM:

Vai a Istanze VM

Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Compute Engine.

  1. Se necessario, modifica il progetto Google Cloud attuale in modo che sia quello associato con la tua istanza VM di Compute Engine. Ad esempio, se dopo aver visualizzato Abilita la fatturazione, significa che il progetto attuale delle istanze VM di Compute Engine.
  2. Nella pagina Istanze VM, fai clic sul nome dell'istanza VM. Il dettaglio per la tua istanza VM.
  3. Nella pagina Dettagli istanza VM, guarda sotto Accesso API Cloud intestazione ambiti:
      .
    • Se vedi il messaggio "Consenti l'accesso completo a tutte le API Cloud", allora avrai un'adeguata e credenziali.
    • Se accanto all'API Stackdriver Monitoring vedi, un nome precedente per l'API Cloud Monitoring, ed è necessario disporre del ruolo Write Solo o Completa, significa che disponi di credenziali adeguate.
    • In caso contrario, l'account di servizio predefinito della tua istanza non include e le credenziali richieste dall'agente. Per utilizzare l'agente sull'istanza, devi aggiungere le credenziali dell'account di servizio chiavi privata. Per istruzioni, vedi Aggiunta di credenziali.

Se disponi delle credenziali predefinite corrette, passa direttamente al Installazione su Linux e Windows.

Verifica delle credenziali della chiave privata in corso...

Per verificare che sulla tua istanza VM siano installate credenziali per chiave privata valide, verifica innanzitutto che il file delle credenziali esista nella posizione prevista e quindi verifica che le informazioni nel file delle credenziali siano valide. Valide in precedenza e le credenziali possono essere revocate utilizzando IAM e Amministratore > Sezione Account di servizio della console Google Cloud. Se non sono presenti credenziali valide, consulta Aggiunta delle credenziali per sostituire le credenziali esistenti o per aggiungerne di nuove.

Le credenziali sono presenti?

Per vedere se nell'istanza sono presenti credenziali dell'account di servizio chiavi privata, esegui il comando i seguenti comandi Linux sulla tua istanza:

sudo cat $GOOGLE_APPLICATION_CREDENTIALS
sudo cat /etc/google/auth/application_default_credentials.json

Se uno dei due comandi visualizza un file come quello mostrato di seguito, la tua istanza potrebbe avere credenziali chiave privata valide. Se entrambi i comandi mostrano un file, viene utilizzato il file indicato con GOOGLE_APPLICATION_CREDENTIALS.

{
  "type": "service_account",
  "project_id": "{your-project-id}",
  "private_key_id": "{your-private-key-id}",
  "private_key": "{your-private-key}",
  "client_email": "{your-project-number}-{your-key}@developer.gserviceaccount.com",
  "client_id": "{your-client-id}",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "{x509-cert-url}",
  "client_x509_cert_url": "{client-x509-cert-url}"
}

Se non sono presenti file di credenziali, vedi Aggiunta di credenziali.

Le credenziali sono valide?

Nel file delle credenziali, il campo project_id corrisponde al tuo progetto Google Cloud, client_email identifica l'account di servizio nel progetto, e private_key_id identifica la chiave privata nell'account di servizio. Associa queste informazioni ai mostrato in IAM e Amministratore > nella sezione Account di servizio nella console Google Cloud.

Il file delle credenziali non è valido se una delle seguenti condizioni è vera:

  • Stai controllando un'istanza VM di Compute Engine, progetto Google Cloud in delle credenziali non è il progetto che contiene la tua istanza.
  • L'account di servizio elencato non esiste. Potrebbe essere stato eliminato.
  • Per l'account di servizio in elenco non sono abilitati i ruoli corretti. Dovrebbe avere almeno roles/monitoring.metricWriter (Autore delle metriche di Monitoring) per raccolta metriche e roles/logging.logWriter (Writer log) per e scrivere i log.
  • La chiave privata non esiste. Potrebbe essere stato revocato.

Se l'account di servizio è corretto, ma la chiave privata è stata revocata, puoi creare una nuova chiave privata e copiarla nella tua istanza. In caso contrario, devi creare un nuovo account di servizio, come descritto nella sezione seguente, Aggiunta di credenziali.

Generazione delle nuove credenziali in corso...

Se le credenziali non sono valide:

  1. Per ogni progetto connesso contenente istanze che devono essere autorizzate. con una chiave privata, le istanze Compute Engine creati senza includere l'ambito di accesso https://www.googleapis.com/auth/monitoring.write - creare un account di servizio e generare una chiave privata, se non ne esiste già. Procedi come riportato di seguito:
    1. Nella console Google Cloud, vai alla Pagina Impostazioni di Monitoring:

      Vai alle impostazioni di Monitoring

      Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoraggio.

    2. Seleziona la scheda Riepilogo. Identificazione il progetto contenente alle risorse Compute Engine in questione e nella console Google Cloud.
    3. Vai alla pagina Account di servizio IAM della console Google Cloud, seleziona il tuo progetto Google Cloud, crea un nuovo account di servizio e generi una nuova chiave privata l'account di servizio.

      Per farlo, procedi in uno dei seguenti modi:

      • Vai alla pagina Account di servizio IAM, selezionare il tuo progetto Google Cloud e seguire i passaggi . Crea un account di servizio:

        Vai agli account di servizio IAM

      • Fai clic sul pulsante seguente e seleziona il tuo Progetto Google Cloud:

        Crea l'account di servizio e scarica la chiave

        Il pulsante precedente automatizza il processo di creazione e scaricare una chiave nel sistema locale per e un account di servizio specifico dell'agente. Se necessario, crea anche l'account di servizio richiesto e assicura che l'account di servizio abbia autorizzazioni aggiuntive. Gli account di servizio specifici dell'agente nome simile a stackdriver-1234@PROJECT_ID.iam.gserviceaccount.com. Riceverai una notifica al completamento di questi azioni con una finestra di dialogo simile alla seguente:

        Un banner che comunica all'utente che sono stati creati un account di servizio e una chiave.

  2. Sostituisci la chiave privata nelle istanze che corrispondono dell'account di servizio in questione.

    • Su Linux, sostituisci la chiave privata che si trova in /etc/google/auth/application_default_credentials.json.
    • Su Windows, sostituisci la chiave privata che si trova in C:\ProgramData\Google\Auth\application_default_credentials.json. Per ulteriori informazioni, vedi Copia della chiave privata nell'istanza in corso.
  3. Riavvia l'agente

    • Su Linux, esegui sudo service stackdriver-agent restart
    • Su Windows, vai alla console di gestione dei servizi e riavvia Servizio Cloud Monitoring.

Se hai più progetti che richiedono nuove chiavi private, ripeti questa procedura per ciascuna di esse.

Per verificare che la chiave privata sia corretta, consulta Le credenziali sono presenti?. In particolare:

  • Leggi il file JSON della chiave privata nell'istanza, ad esempio (su Linux): sudo cat /etc/google/auth/application_default_credentials.json
  • Assicurati che il valore del campo project_id corrisponda a quello del per il quale hai appena generato le credenziali.