Introduzione
Prometheus è un software di monitoraggio degli eventi open source per applicazioni distribuite ad alto volume. È dotato di metriche e avvisi in tempo reale, query flessibili, un modello pull HTTP ed è una buona scelta per il monitoraggio dei cluster Kubernetes.
Sebbene Prometheus sia un'applicazione autonoma, il suo utilizzo con un dashboard di visualizzazione aiuta a mantenere una migliore panoramica di un cluster Kubernetes. Una scelta popolare per questo scenario è Grafana, un software di visualizzazione open source, che supporta Prometheus come fonte di dati pronta all'uso.
Questo tutorial ti mostrerà come installare Grafana nel tuo cluster Kubernetes, collegarlo a Prometheus e organizzare i dati nei dashboard.
Prerequisiti
- Gruppo Kubernetes
- strumento da riga di comando kubectl installato
- Prometheus installato e configurato
Installa Grafana
Per installare Grafana su un cluster Kubernetes, crea e applica una serie di yaml
file.
1. Inizia creando una ConfigMap in un file intitolato grafana-datasource-config.yaml
:
nano grafana-datasource-config.yaml
Il file è composto dalle seguenti dichiarazioni:
apiVersion: v1
kind: ConfigMap
metadata:
name: grafana-datasources
namespace: default
data:
prometheus.yaml: |-
{
"apiVersion": 1,
"datasources": [
{
"access":"proxy",
"editable": true,
"name": "prometheus",
"orgId": 1,
"type": "prometheus",
"url": "http://prometheus-service.monitoring.svc:9090",
"version": 1
}
]
}
2. Modifica il contenuto del file in base alle tue esigenze specificando lo spazio dei nomi in cui desideri installare Grafana.
3. Salva ed esci dal file.
4. Applica le modifiche al tuo cluster utilizzando kubectl:
kubectl create -f grafana-datasource-config.yaml
L'output conferma la creazione della ConfigMap:
5. Quindi, crea un yaml
file per la distribuzione Grafana:
nano deployment.yaml
Il file contiene la configurazione della distribuzione Grafana:
apiVersion: apps/v1
kind: Deployment
metadata:
name: grafana
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: grafana
template:
metadata:
name: grafana
labels:
app: grafana
spec:
containers:
- name: grafana
image: grafana/grafana:latest
ports:
- name: grafana
containerPort: 3000
resources:
limits:
memory: "1Gi"
cpu: "1000m"
requests:
memory: 500M
cpu: "500m"
volumeMounts:
- mountPath: /var/lib/grafana
name: grafana-storage
- mountPath: /etc/grafana/provisioning/datasources
name: grafana-datasources
readOnly: false
volumes:
- name: grafana-storage
emptyDir: {}
- name: grafana-datasources
configMap:
defaultMode: 420
name: grafana-datasources
6. Salva il file, quindi applicalo al cluster:
kubectl create -f deployment.yaml
L'output conferma la creazione della distribuzione:
7. Infine, crea il service.yaml
file per configurare il servizio Grafana:
nano service.yaml
Il file è composto dalle seguenti dichiarazioni:
apiVersion: v1
kind: Service
metadata:
name: grafana
namespace: default
annotations:
prometheus.io/scrape: 'true'
prometheus.io/port: '3000'
spec:
selector:
app: grafana
type: NodePort
ports:
- port: 3000
targetPort: 3000
nodePort: 32000
8. Adatta il file alle esigenze del tuo cluster, quindi salvalo e applicalo:
kubectl create -f service.yaml
L'output conferma che il servizio è stato creato correttamente:
9. Usa il comando kubectl port-forward per inoltrare il servizio Grafana alla porta 3000
:
kubectl port-forward svc/grafana 3000
10. Ora apri un browser e vai a http://localhost:3000/
.
11. Viene visualizzata la schermata di accesso di Grafana, che richiede nome utente e password. Digita admin
in entrambi i campi e fai clic su Accedi .
12. Grafana ti chiede di impostare una nuova password, dopodiché viene visualizzata la home page.
Aggiungi Prometeo come origine dati Grafana
Per iniziare a lavorare con Prometheus in Grafana, aggiungi Prometheus come origine dati.
1. Nella barra laterale a sinistra, passa con il mouse sopra l'icona della ruota dentata per visualizzare il sottomenu di configurazione.
2. Fare clic su Sorgenti dati .
2. Si apre una pagina di configurazione. Fai clic su Aggiungi origine dati pulsante.
3. Seleziona Prometeo come tipo di origine dati facendo clic su Seleziona pulsante a destra.
4. Si apre la pagina di configurazione per Prometheus. Qui specifichi il nome della sorgente, l'URL e la porta per il servizio Prometheus e il tipo di accesso (l'accesso al server è l'opzione predefinita).
5. Al termine, scorri verso il basso fino alla fine della pagina e fai clic su Salva e verifica pulsante.
Grafana verifica la connessione con Prometheus e finisce di aggiungere l'origine dati.
Importa le statistiche di Prometheus come dashboard in Grafana
Grafana supporta Prometheus pronto all'uso e puoi accedere facilmente alla dashboard Prometheus premade.
1. Torna alle Origini dati sezione e seleziona Prometheus .
2. Apri le Impostazioni menu a tendina.
3. Quindi fare clic su Dashboard .
4. Viene visualizzato un elenco di dashboard disponibili. Importa la dashboard che desideri facendo clic su Importa pulsante a destra del nome della dashboard.
5. Per accedere alla dashboard, passa con il mouse sopra l'icona dei quattro quadrati nella barra laterale sinistra per visualizzare le Dashboard menu.
6. Fai clic su Gestisci .
7. Seleziona Prometheus dashboard che desideri gestire dall'elenco.
Statistiche dal tuo server Prometheus
La dashboard di Prometheus è composta da diversi grafici a statistica singola descritti di seguito.
Grafici statistici singoli
Dopo aver selezionato le Statistiche Prometeo dashboard nella Gestione dashboard pagina, le statistiche appaiono organizzate in pannelli.
La prima riga è composta dai seguenti pannelli:
- Tempo di attività :Quanto tempo è trascorso dall'avvio del server Prometheus
- Serie di memoria di archiviazione locale :Il numero di serie attualmente in memoria di Prometheus
- Lunghezza della coda di archiviazione interna :Più basso è questo numero, meglio è. Il messaggio "Vuoto" significa che il numero di coda è zero.
I campioni acquisiti fornisce informazioni sul numero di messaggi di esempio che Prometheus ha ingerito alla velocità di 5 minuti.
Metriche di raschiamento di Prometeo
Metriche di scraping i pannelli sono appena sotto il pannello Campioni importati.
- I raschi bersaglio il pannello mostra la frequenza di raschiamento del bersaglio, ovvero Prometeo, misurata negli ultimi cinque minuti, per serie temporale nel vettore di intervallo.
- La durata dello scraping pannello mostra la durata degli scrap, misurata nello stesso periodo di cinque minuti.
Durata delle valutazioni
La Durata della valutazione delle regole il pannello che si trova sotto i pannelli delle metriche Scrape fornisce informazioni sulla durata di tutte le valutazioni da eseguire.
Crea una nuova dashboard
Per creare una nuova dashboard Grafana:
1. Vai alle Dashboard pagina e fai clic su Nuova dashboard pulsante.
2. Viene visualizzata una schermata in cui è possibile aggiungere nuovi pannelli e righe vuoti.
3. Viene visualizzata una nuova schermata con un unico pannello fittizio.
Personalizza il dashboard utilizzando l'editor di query Prometheus
Per modificare un pannello Grafana specifico:
1. Fai clic sul titolo del pannello per aprire un menu a discesa.
2. Nel menu, fai clic su Modifica .
3. Viene visualizzata la finestra di modifica. Personalizza i pannelli introducendo nuove query o modificando quelle correnti. L'interrogazione viene eseguita utilizzando il linguaggio di query Prometheus.
4. Le seguenti metriche non sono presenti nella dashboard Prometheus premade di Grafana, ma sono utili per monitorare Prometheus:
prometheus_local_storage_memory_chunks
– Monitora i blocchi di memoria che Prometheus memorizza in memoria.prometheus_local_storage_memory_series
– Monitora la serie di memorie che Prometheus memorizza in memoria.prometheus_local_storage_ingested_samples_total
– Misura la velocità di ingestione dei campioni.prometheus_target_interval_length_seconds
– Misura la quantità di tempo tra gli scrap del target.prometheus_local_storage_chunk_ops_total
– Monitora la frequenza al secondo di tutte le operazioni sui blocchi di archiviazione Prometheus.
Utilizza dashboard e plug-in predefiniti
Grafana offre un'ampia selezione di dashboard e plug-in predefiniti disponibili per il download sul proprio sito Web. Per installare una dashboard predefinita:
1. Scarica il json
del plug-in file.
2. Fare clic su Importa e segui le istruzioni per caricare il file su Grafana.
3. Per installare i plugin, accedi al pod Grafana nel cluster usando kubectl exec
.
kubectl exec -it [grafana-pod] -- [shell]
4. Ora usa il grafana-cli
strumento da riga di comando per installare il plug-in:
grafana-cli plugins install grafana-worldmap-panel
Il plugin si installa nella directory dei plugin di Grafana. La posizione predefinita è /var/lib/grafana/plugins
. Una volta che il plugin è stato installato correttamente, è automaticamente disponibile in Grafana.