Grafana consente di eseguire query, visualizzare, avvisare ed esplorare le metriche, indipendentemente dalla posizione in cui vengono archiviate. Grafana fornisce strumenti per creare grafici e visualizzazioni dai dati dell'applicazione. Distribuire l'estensione TKG per Grafana per generare e visualizzare le metriche per i cluster Tanzu Kubernetes.
Requisiti dell'estensione Grafana
In questo argomento viene descritto come distribuire e gestire l'estensione TKG v1.3.1 per Grafana.
- Eseguire il provisioning di un cluster. Vedere Workflow per il provisioning di cluster di Tanzu Kubernetes.
Nota: È necessario distribuire un cluster che utilizzi il serviceDomain predefinito (
cluster.local
). - Connettersi al cluster. Vedere Connessione a un cluster Tanzu Kubernetes come utente vCenter Single Sign-On.
- Download del bundle delle estensioni TKG v1.3.1 nell'host client in cui vengono eseguiti i comandi kubectl.
- Installare i prerequisiti delle estensioni TKG nel cluster di destinazione.
Distribuzione dell'estensione Grafana per la visualizzazione e l'analisi
Container | Tipo di risorsa | Repliche | Descrizione |
---|---|---|---|
Grafana | Distribuzione | 2 | Visualizzazione dei dati |
- Verificare che tutti i prerequisiti dell'estensione siano soddisfatti. Vedere Requisiti dell'estensione Grafana.
- Passare alla directory con l'estensione Grafana.
cd /tkg-extensions-v1.3.1+vmware.1/extensions/monitoring/grafana
- Creare lo spazio dei nomi
tanzu-system-monitoring
, l'account del servizio Grafana e gli oggetti ruolo.kubectl apply -f namespace-role.yaml
- Creare un file dei valori di dati Grafana.
Il file dei valori dei dati di esempio fornisce la configurazione minima richiesta.
cp grafana-data-values.yaml.example grafana-data-values.yaml
- Configurare l'estensione Grafana aggiornando
grafana-data-values.yaml
.Personalizzare la configurazione in base alle esigenze. Vedere Configurazione dell'estensione Grafana.
admin_password
deve essere codificato in base64, ma non bloccherà la distribuzione dell'estensione, se non lo è. Nell'esempio seguente, la password "admin" è codificata in base64. Codificare la propria password di Grafana qui: https://www.base64encode.org/.Se non viene eseguito il provisioning del cluster con una classe di storage predefinita, è possibile specificarlo nel file dei valori dei dati. Assicurarsi inoltre che lo spazio dei nomi disponga di spazio di storage sufficiente per le attestazioni di volume persistenti.monitoring: grafana: image: repository: "projects.registry.vmware.com/tkg/grafana" pvc: storage_class: vwt-storage-policy storage: "8Gi" secret: admin_password: "YWRtaW4=" grafana_init_container: image: repository: "projects.registry.vmware.com/tkg/grafana" grafana_sc_dashboard: image: repository: "projects.registry.vmware.com/tkg/grafana"
- Creare il segreto Grafana con file
grafana-data-values
.kubectl create secret generic grafana-data-values --from-file=values.yaml=grafana-data-values.yaml -n tanzu-system-monitoring
Il segreto
grafana-data-values
viene creato nello spazio dei nomitanzu-system-monitoring
. Verificare usandokubectl get secrets -n tanzu-system-monitoring
. - Distribuire l'estensione Grafana.
kubectl apply -f grafana-extension.yaml
Al completamento, viene creata l'app Grafana:
app.kappctrl.k14s.io/grafana created
. - Controllare lo stato dell'app Grafana.
kubectl get app grafana -n tanzu-system-monitoring
Lo stato deve passare daReconciling
aReconcile succeeded
. Se lo stato èReconcile failed
, vedere Risoluzione dei problemi. - Visualizzare lo stato dettagliato nell'app Grafana.
kubectl get app grafana -n tanzu-system-monitoring -o yaml
- Verificare la distribuzione di Grafana.
kubectl get deployments -n tanzu-system-monitoring
Risoluzione dei problemi relativi alla distribuzione di Grafana
Se la distribuzione o la riconciliazione non riesce, eseguire kubectl get pods -A
per visualizzare lo stato del pod. I pod di contour
e envoy
devono essere Running
. Se lo stato di un pod è ImagePullBackOff
o ImageCrashLoopBackOff
, non è possibile estrarre l'immagine del container. Controllare l'URL del registro nei valori dei dati e nei file YAML dell'estensione e assicurarsi che sia corretto.
name-XXXX
è il nome univoco del pod quando si esegue
kubectl get pods -A
:
kubectl logs pod/grafana-XXXX -c grafana -n tanzu-system-monitoring
Aggiornamento dell'estensione Grafana
Aggiornare l'estensione Grafana distribuita in un cluster Tanzu Kubernetes.
- Recuperare i valori dei dati di Grafana correnti dal segreto
grafana-data-values
.kubectl get secret grafana-data-values -n tanzu-system-monitoring -o 'go-template={{ index .data "values.yaml" }}' | base64 -d > grafana-data-values.yaml
- Aggiornare i valori dei dati di Grafana in
grafana-data-values.yaml
. Vedere Configurazione dell'estensione Grafana. - Aggiornare il segreto dei valori dei dati di Grafana.
kubectl create secret generic grafana-data-values --from-file=values.yaml=grafana-data-values.yaml -n tanzu-system-monitoring -o yaml --dry-run | kubectl replace -f-
L'estensione Grafana viene riconciliata con i valori dei dati aggiornati.Nota: Per impostazione predefinita, kapp-controller sincronizzerà le app ogni 5 minuti. L'aggiornamento dovrebbe essere applicato in 5 minuti al massimo. Se si desidera che l'aggiornamento venga applicato immediatamente, impostaresyncPeriod
ingrafana-extension.yaml
su un valore inferiore e applicare l'estensione Grafana mediantekubectl apply -f grafana-extension.yaml
. - Controllare lo stato dell'estensione.
kubectl get app grafana -n tanzu-system-monitoring
Lo stato deve passare a
Reconcile Succeeded
dopo l'aggiornamento di Grafana. - Visualizzare lo stato dettagliato e risolvere i problemi se necessario.
kubectl get app grafana -n tanzu-system-monitoring -o yaml
Eliminazione dell'estensione Grafana
tanzu-system-monitoring
. Se sono state distribuite entrambe le estensioni nello stesso cluster, eliminare ogni estensione prima di eliminare lo spazio dei nomi.
- Passare alla directory con l'estensione Grafana.
cd /tkg-extensions-v1.3.1+vmware.1/extensions/monitoring/grafana
- Eliminare l'app Grafana.
kubectl delete app grafana -n tanzu-system-monitoring
Risultato previsto:
app.kappctrl.k14s.io "grafana" deleted
. - Verificare che l'app Grafana sia stata eliminata.
kubectl get app grafana -n tanzu-system-monintoring
Risultato previsto:
apps.kappctrl.k14s.io "grafana" not found
. - Eliminare lo spazio dei nomi
tanzu-system-monitoring
, l'account del servizio Grafana e gli oggetti ruolo.Avviso: Non eseguire questo passaggio se viene distribuito Prometheus.kubectl delete -f namespace-role.yaml
- Se si desidera ridistribuire Grafana, rimuovere il segreto
grafana-data-values
.kubectl delete secret grafana-data-values -n tanzu-system-monitoring
Risultato previsto:
secret "grafana-data-values" deleted
.
Upgrade dell'estensione Grafana
- Esportare la mappa di configurazione di Grafana e salvarla come backup.
kubectl get configmap grafana -n tanzu-system-monitoring -o 'go-template={{ index .data "grafana.yaml" }}' > grafana-configmap.yaml
- Eliminare l'estensione Grafana esistente. Vedere Eliminazione dell'estensione Grafana.
- Distribuire l'estensione Grafana. Vedere Distribuzione dell'estensione Grafana per la visualizzazione e l'analisi.
Configurazione dell'estensione Grafana
/tkg-extensions-v1.3.1+vmware.1/extensions/monitoring/grafana/grafana-data-values.yaml
.
Parametro | Descrizione | Tipo | Predefinito |
---|---|---|---|
monitoring.namespace | Spazio dei nomi in cui Prometheus verrà distribuito | stringa | tanzu-system-monitoring |
monitoring.create_namespace | Il contrassegno indica se creare lo spazio dei nomi specificato da monitoring.namespace | booleano | false |
monitoring.grafana.cluster_role.apiGroups | Gruppo di API definito per clusterrole grafana | list | [""] |
monitoring.grafana.cluster_role.resources | risorse definite per clusterrole grafana | list | ["configmaps", "secrets"] |
monitoring.grafana.cluster_role.verbs | autorizzazione di accesso definita per clusterrole | list | ["get", "watch", "list"] |
monitoring.grafana.config.grafana_ini | Dettagli del file di configurazione Grafana | file di configurazione | grafana.ini In questo file, viene utilizzato l'URL |
monitoring.grafana.config.datasource.type | Tipo di origine dati Grafana | stringa | prometheus |
monitoring.grafana.config.datasource.access | Modalità di accesso. Proxy o diretto (server o browser nell'interfaccia utente) | stringa | proxy |
monitoring.grafana.config.datasource.isDefault | Contrassegnare come origine dati Grafana predefinita | booleano | true |
monitoring.grafana.config.provider_yaml | File di configurazione per definire il provider del dashboard Grafana | file yaml | provider.yaml |
monitoring.grafana.service.type | Tipo di servizio per esporre Grafana. Valori supportati: ClusterIP, NodePort, LoadBalancer | stringa | vSphere: NodePort, aws/azure: LoadBalancer |
monitoring.grafana.pvc.storage_class | Definire la modalità di accesso per l'attestazione di volume persistente. Valori supportati: ReadWriteOnce, ReadOnlyMany, ReadWriteMany | stringa | ReadWriteOnce |
monitoring.grafana.pvc.storage | Definire la dimensione dello storage per l'attestazione del volume persistente | stringa | 2Gi |
monitoring.grafana.deployment.replicas | Numero di repliche Grafana | numero intero | 1 |
monitoring.grafana.image.repository | Posizione del repository con l'immagine Grafana. L'impostazione predefinita è il registro di VMware pubblico. Modificare questo valore se si utilizza un repository privato (ad esempio, un ambiente air gap). | stringa | projects.registry.vmware.com/tkg/grafana |
monitoring.grafana.image.name | Nome dell'immagine Grafana | stringa | Grafana |
monitoring.grafana.image.tag | Tag immagine Grafana. Se si sta aggiornando la versione, potrebbe essere necessario aggiornare questo valore. | stringa | v7.3.5_vmware.1 |
monitoring.grafana.image.pullPolicy | Criterio di pull immagine Grafana | stringa | IfNotPresent |
monitoring.grafana.secret.type | Tipo di segreto definito per il dashboard di Grafana | stringa | Opaque |
monitoring.grafana.secret.admin_user | nome utente per accedere al dashboard di Grafana | stringa | YWRtaW4= Il valore è codificato in base64; per la decodifica: |
monitoring.grafana.secret.admin_password | password per accedere al dashboard di Grafana | stringa | null |
monitoring.grafana.secret.ldap_toml | Se si utilizza l'autenticazione LDAP, percorso del file di configurazione LDAP | stringa | "" |
monitoring.grafana_init_container.image.repository | Repository contenente l'immagine del contenitore init grafana. L'impostazione predefinita è il registro di VMware pubblico. Modificare questo valore se si utilizza un repository privato (ad esempio, un ambiente air gap). | stringa | projects.registry.vmware.com/tkg/grafana |
monitoring.grafana_init_container.image.name | Nome dell'immagine del contenitore init Grafana | stringa | k8s-sidecar |
monitoring.grafana_init_container.image.tag | Tag immagine contenitore init Grafana. Se si sta aggiornando la versione, potrebbe essere necessario aggiornare questo valore. | stringa | 0.1.99 |
monitoring.grafana_init_container.image.pullPolicy | Criterio di pull delle immagini del contenitore init Grafana | stringa | IfNotPresent |
monitoring.grafana_sc_dashboard.image.repository | Repository contenente l'immagine del dashboard di Grafana. L'impostazione predefinita è il registro di VMware pubblico. Modificare questo valore se si utilizza un repository privato (ad esempio, un ambiente air gap). | stringa | projects.registry.vmware.com/tkg/grafana |
monitoring.grafana_sc_dashboard.image.name | Nome dell'immagine del dashboard di Grafana | stringa | k8s-sidecar |
monitoring.grafana_sc_dashboard.image.tag | Tag immagine dashboard Grafana. Se si sta aggiornando la versione, potrebbe essere necessario aggiornare questo valore. | stringa | 0.1.99 |
monitoring.grafana_sc_dashboard.image.pullPolicy | Criterio di pull immagine dashboard Grafana | stringa | IfNotPresent |
monitoring.grafana.ingress.enabled | Abilita/disabilita in ingresso per Grafana | booleano | true |
monitoring.grafana.ingress.virtual_host_fqdn | Nome host per l'accesso a Grafana | stringa | grafana.system.tanzu |
monitoring.grafana.ingress.prefix | Prefisso del percorso per Grafana | stringa | / |
monitoring.grafana.ingress.tlsCertificate.tls.crt | Certificato facoltativo per l'ingresso se si desidera utilizzare il proprio certificato TLS. Per impostazione predefinita, viene generato un certificato autofirmato | stringa | Certificato generato |
monitoring.grafana.ingress.tlsCertificate.tls.key | Chiave privata del certificato facoltativa per l'ingresso se si desidera utilizzare il proprio certificato TLS. | stringa | Chiave certificato generata |