Einführung
Prometheus ist eine Open-Source-Ereignisüberwachungssoftware für verteilte Anwendungen mit hohem Volumen. Es bietet Echtzeitmetriken und -warnungen, flexible Abfragen, ein HTTP-Pull-Modell und ist eine gute Wahl für die Überwachung von Kubernetes-Clustern.
Während Prometheus eine eigenständige Anwendung ist, hilft die Verwendung mit einem Visualisierungs-Dashboard, einen besseren Überblick über einen Kubernetes-Cluster zu behalten. Eine beliebte Wahl für dieses Szenario ist Grafana, eine Open-Source-Visualisierungssoftware, die Prometheus standardmäßig als Datenquelle unterstützt.
Dieses Tutorial zeigt Ihnen, wie Sie Grafana in Ihrem Kubernetes-Cluster installieren, mit Prometheus verbinden und Daten in Dashboards organisieren.
Voraussetzungen
- Kubernetes-Cluster
- kubectl-Befehlszeilentool installiert
- Prometheus installiert und eingerichtet
Grafana installieren
Um Grafana auf einem Kubernetes-Cluster zu installieren, erstellen und wenden Sie eine Reihe von yaml
an Dateien.
1. Erstellen Sie zunächst eine ConfigMap in einer Datei mit dem Titel grafana-datasource-config.yaml
:
nano grafana-datasource-config.yaml
Die Datei besteht aus den folgenden Deklarationen:
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. Passen Sie den Inhalt der Datei an Ihre Bedürfnisse an, indem Sie den Namensraum angeben, in dem Sie Grafana installieren möchten.
3. Speichern und beenden Sie die Datei.
4. Wenden Sie die Änderungen mit kubectl auf Ihren Cluster an:
kubectl create -f grafana-datasource-config.yaml
Die Ausgabe bestätigt die Erstellung der ConfigMap:
5. Erstellen Sie als Nächstes eine yaml
Datei für die Grafana-Bereitstellung:
nano deployment.yaml
Die Datei enthält die Grafana-Bereitstellungskonfiguration:
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. Speichern Sie die Datei und wenden Sie sie dann auf den Cluster an:
kubectl create -f deployment.yaml
Die Ausgabe bestätigt die Bereitstellungserstellung:
7. Zuletzt erstellen Sie die service.yaml
Datei zum Konfigurieren des Grafana-Dienstes:
nano service.yaml
Die Datei besteht aus den folgenden Deklarationen:
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. Passen Sie die Datei an die Bedürfnisse Ihres Clusters an, speichern Sie sie und wenden Sie sie an:
kubectl create -f service.yaml
Die Ausgabe bestätigt, dass der Dienst erfolgreich erstellt wurde:
9. Verwenden Sie den Befehl kubectl port-forward, um den Grafana-Dienst an Port 3000
weiterzuleiten :
kubectl port-forward svc/grafana 3000
10. Öffnen Sie nun einen Browser und navigieren Sie zu http://localhost:3000/
.
11. Der Anmeldebildschirm von Grafana erscheint und fragt nach Ihrem Benutzernamen und Passwort. Geben Sie admin
ein in beide Felder ein und klicken Sie auf Anmelden .
12. Grafana fordert Sie auf, ein neues Passwort festzulegen, woraufhin die Startseite angezeigt wird.
Prometheus als Grafana-Datenquelle hinzufügen
Um mit Prometheus in Grafana zu arbeiten, fügen Sie Prometheus als Datenquelle hinzu.
1. Bewegen Sie den Mauszeiger in der linken Seitenleiste über das Zahnradsymbol, um das Konfigurationsuntermenü anzuzeigen.
2. Klicken Sie auf Datenquellen .
2. Eine Konfigurationsseite wird geöffnet. Klicken Sie auf Datenquelle hinzufügen Schaltfläche.
3. Wählen Sie Prometheus als Datenquellentyp aus, indem Sie auf Auswählen klicken Schaltfläche auf der rechten Seite.
4. Die Konfigurationsseite für Prometheus wird geöffnet. Hier geben Sie den Namen der Quelle, die URL und den Port für den Prometheus-Dienst und die Art des Zugriffs (Serverzugriff ist die Standardoption) an.
5. Wenn Sie fertig sind, scrollen Sie zum Ende der Seite und klicken Sie auf Speichern und testen Schaltfläche.
Grafana testet die Verbindung mit Prometheus und schließt das Hinzufügen der Datenquelle ab.
Prometheus-Statistiken als Dashboard in Grafana importieren
Grafana unterstützt Prometheus sofort und Sie können einfach auf das vorgefertigte Prometheus-Dashboard zugreifen.
1. Navigieren Sie zurück zu den Datenquellen Abschnitt und wählen Sie Prometheus aus .
2. Öffnen Sie die Einstellungen Dropdown-Menü.
3. Klicken Sie dann auf Dashboards .
4. Eine Liste der verfügbaren Dashboards wird angezeigt. Importieren Sie das gewünschte Dashboard, indem Sie auf Importieren klicken Schaltfläche rechts neben dem Dashboard-Namen.
5. Um auf das Dashboard zuzugreifen, bewegen Sie den Mauszeiger über das Symbol mit den vier Quadraten in der linken Seitenleiste, um die Dashboards anzuzeigen Menü.
6. Klicken Sie auf Verwalten .
7. Wählen Sie den Prometheus aus Dashboard, das Sie verwalten möchten, aus der Liste.
Statistiken von Ihrem Prometheus-Server
Das Prometheus-Dashboard besteht aus mehreren Diagrammen mit einzelnen Statistiken, die unten beschrieben werden.
Einzelstatistikdiagramme
Nachdem Sie die Prometheus-Statistiken ausgewählt haben Dashboard in der Dashboard-Verwaltung Seite erscheinen die Statistiken in Panels organisiert.
Die erste Reihe besteht aus den folgenden Feldern:
- Verfügbarkeit :Wie viel Zeit ist seit dem Start des Prometheus-Servers vergangen
- Local Storage Memory-Serie :Die Anzahl der Serien, die Prometheus derzeit im Speicher hält
- Interne Speicherwarteschlangenlänge :Je niedriger diese Zahl, desto besser. Die Meldung „Leer“ bedeutet, dass die Warteschlangennummer Null ist.
Die aufgenommenen Proben Panel liefert Informationen über die Anzahl der Beispielnachrichten, die Prometheus mit einer Rate von 5 Minuten aufgenommen hat.
Prometheus Scrape-Metriken
Scrape-Metriken Panels befinden sich direkt unter dem Panel „Ingested Samples“.
- Die Zielkratzer Das Feld zeigt die Häufigkeit des Schabens des Ziels, d. h. Prometheus, gemessen in den letzten fünf Minuten, pro Zeitreihe im Entfernungsvektor.
- Die Scrap-Dauer Panel zeigt die Dauer der Kratzer, gemessen über den gleichen Zeitraum von fünf Minuten.
Evaluierungsdauer
Die Dauer der Regelauswertung Das Panel unterhalb der Scrape-Metrikpanels bietet Informationen über die Länge aller auszuführenden Auswertungen.
Neues Dashboard erstellen
So erstellen Sie ein neues Grafana-Dashboard:
1. Navigieren Sie zu den Dashboards Seite und klicken Sie auf Neues Dashboard Schaltfläche.
2. Es erscheint ein Bildschirm, auf dem Sie neue leere Felder und Zeilen hinzufügen können.
3. Ein neuer Bildschirm erscheint mit einem einzelnen Dummy-Panel.
Passen Sie das Dashboard mit dem Prometheus-Abfrage-Editor an
So bearbeiten Sie ein bestimmtes Grafana-Bedienfeld:
1. Klicken Sie auf den Titel des Bereichs, um ein Dropdown-Menü zu öffnen.
2. Klicken Sie im Menü auf Bearbeiten .
3. Das Bearbeitungsfenster erscheint. Passen Sie Panels an, indem Sie neue Abfragen einführen oder die aktuellen ändern. Die Abfrage erfolgt mit der Prometheus-Abfragesprache.
4. Die folgenden Metriken sind nicht im vorgefertigten Prometheus-Dashboard von Grafana enthalten, sind aber für die Überwachung von Prometheus nützlich:
prometheus_local_storage_memory_chunks
– Überwacht Speicherblöcke, die Prometheus im Speicher speichert.prometheus_local_storage_memory_series
– Überwacht Speicherserien, die Prometheus im Speicher speichert.prometheus_local_storage_ingested_samples_total
– Misst die Aufnahmerate für die Proben.prometheus_target_interval_length_seconds
– Misst die Zeitspanne zwischen Zielabtastungen.prometheus_local_storage_chunk_ops_total
– Überwacht die Rate pro Sekunde aller Prometheus-Storage-Chunk-Operationen.
Verwenden Sie vorgefertigte Dashboards und Plugins
Grafana bietet eine große Auswahl an vorgefertigten Dashboards und Plugins, die auf seiner Website heruntergeladen werden können. So installieren Sie ein vorgefertigtes Dashboard:
1. Laden Sie den json
des Plugins herunter Datei.
2. Klicken Sie auf Importieren und befolgen Sie die Anweisungen zum Hochladen der Datei in Grafana.
3. Um Plugins zu installieren, melden Sie sich mit kubectl exec
beim Grafana-Pod im Cluster an .
kubectl exec -it [grafana-pod] -- [shell]
4. Verwenden Sie nun das grafana-cli
Befehlszeilentool zum Installieren des Plugins:
grafana-cli plugins install grafana-worldmap-panel
Das Plug-in wird im Plug-in-Verzeichnis von Grafana installiert. Der Standardspeicherort ist /var/lib/grafana/plugins
. Sobald das Plugin erfolgreich installiert wurde, ist es automatisch in Grafana verfügbar.