Grafana: Automatizzare con la CLI

Avvia Grafana, recupera le sue credenziali e modifica la sua configurazione in modo programmato con la Stackhero CLI

👋 Benvenuto nella documentazione di Stackhero!

Stackhero ti offre un ambiente Grafana cloud pronto all'uso, progettato per un'installazione rapida e prestazioni affidabili:

  • Utenti, dashboard e alert illimitati: scala il tuo monitoraggio secondo le necessità, senza limiti artificiali.
  • Server email SMTP dedicato incluso, così puoi inviare tutte le notifiche che desideri, senza limiti da monitorare.
  • Installazione plugin con un clic per aggiungere facilmente nuove funzionalità a Grafana.
  • Supporto SSO integrato per GitLab, GitHub, Google e qualsiasi provider OAuth2 generico. La gestione degli utenti rimane semplice e sicura.
  • Aggiornamenti con un clic per mantenere la tua istanza Grafana sempre aggiornata, senza downtime o complicazioni di manutenzione.
  • Usa il tuo dominio personalizzato con provisioning HTTPS automatico per un accesso sicuro e brandizzato (ad esempio, https://grafana.tua-azienda.com).
  • Performance elevate e sicurezza avanzata sono standard, su un'infrastruttura privata e dedicata.

Inizia più velocemente e risparmia tempo nella configurazione: una istanza sicura di Grafana cloud hosting è pronta in circa 5 minuti.

Questa guida mostra come creare un servizio Grafana, leggere le sue credenziali e aggiornare la sua configurazione interamente dalla riga di comando, senza alcun clic sul dashboard. È l'ideale per script, pipeline CI e agenti AI.

Per tutte le operazioni utilizzeremo la Stackhero CLI. Se non l'ha già fatto, può installarla con:

curl -fsSL https://www.stackhero.io/install.sh | sh

Il modo più semplice per iniziare è effettuare il login tramite browser. Quando esegue il comando di login, la CLI apre una pagina web dove può approvare l'accesso. Nessuna password o codice 2FA viene inserito direttamente nella CLI.

stackhero login

Dopo l'accesso, le sue credenziali vengono memorizzate localmente e saranno utilizzate automaticamente dai successivi comandi CLI.

Per ambienti completamente automatizzati come script o pipeline CI, può preferire un token di accesso non interattivo. Può crearne uno dal suo dashboard (Account > Access tokens), quindi esportarlo come variabile d'ambiente. La CLI, così come qualsiasi script eseguito, lo rileverà automaticamente.

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

Successivamente, vorrà elencare i service store Grafana disponibili per il suo account. La CLI accetta direttamente il nome dello store (grafana), quindi non è necessario cercare o copiare alcun ID.

# Elenca i service store Grafana (aggiunga --organization se ne gestisce più di uno)
stackhero services-store-list --name="grafana"

Può fare riferimento al nome dello store grafana nei comandi successivi, oppure scegliere un ID specifico svs-xxxxxx dall'elenco se preferisce.

# Elenca le dimensioni delle istanze per il suo service store (utilizzi la colonna NAME per --instance)
stackhero instances-store-list --service-store=grafana

# Elenca le regioni disponibili (nomi come "europe")
stackhero regions-list

Ecco uno script di esempio che crea uno stack, aggiunge il suo servizio Grafana, attende che venga avviato, recupera la configurazione (incluse le credenziali generate) e applica una nuova configurazione.

#!/bin/bash
set -e

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

serviceStore="grafana"   # Il nome del service store Grafana (vedi step 2)
instance="..."                # Una dimensione dell'istanza dallo step 3
region="europe"               # Un nome di regione dallo step 3

# Crea uno stack per il suo servizio (usa l'organizzazione predefinita; aggiunga --organization se necessario)
stackId=$(stackhero --format=script stack-create \
  --name="My Grafana stack")
echo "Stack creato: ${stackId}"

# Aggiunge Grafana allo stack (i nomi vengono risolti automaticamente)
serviceId=$(stackhero --format=script service-add \
  --stack="My Grafana stack" \
  --service-store="${serviceStore}" \
  --instance="${instance}" \
  --region="${region}")
echo "Servizio aggiunto: grafana"

# Attende che il servizio sia completamente operativo (può richiedere alcuni minuti)
stackhero service-wait-for --service="grafana"

# Recupera la configurazione del servizio, incluse le credenziali generate
stackhero service-configuration-get --service="grafana" --format=json

Il comando service-configuration-get restituisce la configurazione completa del servizio, incluse password generate automaticamente e dettagli di connessione. L'output è in formato JSON, facilitando l'utilizzo in script e automazioni.

stackhero service-configuration-get --service=svc-xxxxxx --format=json

Può consultare uno schema di configurazione di esempio e poi applicare le sue impostazioni personalizzate. Quando aggiorna la configurazione, il servizio potrebbe riavviarsi per applicare le modifiche.

# Visualizza lo schema di configurazione e un esempio per il suo servizio
stackhero service-configuration-example --service=svc-xxxxxx

# Applica una configurazione personalizzata (il servizio si riavvia se necessario)
stackhero service-configuration-set \
  --service=svc-xxxxxx \
  --configuration='{ "...": "..." }'

# Attende che la nuova configurazione venga applicata
stackhero service-wait-for --service=svc-xxxxxx

Ecco fatto. Ha ora visto l'intero ciclo di vita: avviare un servizio, recuperare le sue credenziali e riconfigurarlo, tutto in modo scriptabile e automatizzato. Per approfondire, consulti la documentazione completa della CLI, che copre anche l'autenticazione non interattiva tramite STACKHERO_TOKEN illustrata qui.