Prometheus kann auf verschiedene Arten installiert werden, abhängig von den spezifischen Anforderungen und der Umgebung, in der es betrieben werden soll. Hier sind die gängigsten Installationsmethoden:
Entpacken Sie das heruntergeladene Archiv in das gewünschte Verzeichnis:
tar xvfz prometheus-*.tar.gz
cd prometheus-*Die entpackten Dateien enthalten die Prometheus-Binärdatei und die zugehörigen Konfigurationsdateien.
Führen Sie die Prometheus-Binärdatei aus, um den Server zu starten:
./prometheus --config.file=prometheus.ymlStandardmäßig läuft Prometheus auf Port 9090 und ist über
http://localhost:9090 zugänglich.
Prometheus stellt offizielle Docker-Images zur Verfügung, die über Docker Hub bezogen werden können.
Um das neueste Prometheus-Image herunterzuladen, verwenden Sie:
docker pull prom/prometheusUm Prometheus in einem Docker-Container zu starten, führen Sie folgenden Befehl aus:
docker run -d -p 9090:9090 --name prometheus -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheusDabei wird das lokale Verzeichnis
/path/to/prometheus.yml in den Container gemountet, sodass
Prometheus auf die Konfigurationsdatei zugreifen kann.
docker logs prometheus, docker stop prometheus
und docker start prometheus, um den Container zu
verwalten.Die einfachste Methode, Prometheus auf Kubernetes zu installieren, ist die Verwendung von Helm, einem Kubernetes-Paketmanager.
Installieren Sie das Prometheus-Helm-Chart mit:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/prometheusAlternativ können Sie Prometheus auch mit Kustomize oder direkt mit YAML-Dateien installieren.
Laden Sie die erforderlichen YAML-Dateien von den offiziellen Prometheus-Repositories und wenden Sie sie auf Ihr Kubernetes-Cluster an:
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/master/bundle.yamlVerwenden Sie Kubernetes-Dashboards und CLI-Tools wie
kubectl zur Überwachung und Verwaltung der
Prometheus-Installation.
Überprüfen Sie die Prometheus-Deployment, Pods und Services, um sicherzustellen, dass alles korrekt funktioniert:
kubectl get pods -n monitoring
kubectl get svc -n monitoringErstellen Sie eine Systemd-Unit-Datei für Prometheus, um es als Systemdienst zu betreiben.
Beispiel für eine Prometheus-Unit-Datei
(/etc/systemd/system/prometheus.service):
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus/data
Restart=always
[Install]
WantedBy=multi-user.targetLaden Sie die neue Unit-Datei und starten Sie den Prometheus-Dienst:
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheusVerwenden Sie systemctl-Befehle zur Verwaltung des
Prometheus-Dienstes:
sudo systemctl status prometheus
sudo systemctl restart prometheus
sudo systemctl stop prometheusDiese Installationsmethoden bieten Flexibilität und Anpassungsmöglichkeiten, um Prometheus in verschiedenen Umgebungen und Szenarien zu betreiben. Wählen Sie die Methode, die am besten zu Ihren Anforderungen passt, und folgen Sie den Best Practices für die Installation und Konfiguration.
Die Installation von Prometheus über vorkompilierte Binärdateien ist eine einfache und weit verbreitete Methode. Hier sind die Schritte, um Prometheus mittels Binary Downloads zu installieren und zu konfigurieren:
Nachdem der Download abgeschlossen ist, entpacken Sie das Archiv in ein gewünschtes Verzeichnis.
tar xvfz prometheus-*.tar.gz
cd prometheus-*Das Archiv enthält die Prometheus-Binärdatei, Konfigurationsdateien und Beispielskripte.
Die wichtigste Konfigurationsdatei ist
prometheus.yml. Diese Datei definiert, welche Metriken
gesammelt werden und wie die Zielendpunkte konfiguriert sind.
Ein einfaches Beispiel für eine prometheus.yml-Datei
könnte so aussehen:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']In diesem Beispiel wird Prometheus so konfiguriert, dass es sich selbst überwacht.
Wechseln Sie in das Verzeichnis, in dem sich die entpackte Prometheus-Binärdatei befindet, und starten Sie den Prometheus-Server:
./prometheus --config.file=prometheus.ymlStandardmäßig läuft Prometheus auf Port 9090 und kann über
http://localhost:9090 im Browser aufgerufen
werden.
http://localhost:9090 und verwenden
Sie die eingebauten Werkzeuge, um Abfragen zu erstellen und Metriken zu
visualisieren.Um Prometheus als Systemdienst zu betreiben, erstellen Sie eine
Systemd-Unit-Datei
(/etc/systemd/system/prometheus.service):
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/path/to/prometheus \
--config.file=/path/to/prometheus.yml \
--storage.tsdb.path=/path/to/data
Restart=always
[Install]
WantedBy=multi-user.targetErsetzen Sie /path/to/ durch die tatsächlichen Pfade
zu Ihren Prometheus-Binärdateien und -Konfigurationsdateien.
Laden Sie die neue Unit-Datei und starten Sie den Prometheus-Dienst:
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheusÜberprüfen Sie den Status des Prometheus-Dienstes und stellen Sie sicher, dass er korrekt läuft:
sudo systemctl status prometheus
sudo systemctl restart prometheus
sudo systemctl stop prometheusDurch die Verwendung der Binary Downloads Methode erhalten Sie eine einfache und schnelle Möglichkeit, Prometheus zu installieren und zu betreiben. Diese Methode ist besonders nützlich für Einzelinstanzen oder Testumgebungen und bietet eine solide Grundlage für die weitere Konfiguration und Skalierung.
Die Installation von Prometheus mittels Docker bietet eine flexible und portable Möglichkeit, Prometheus schnell zu deployen. Diese Methode ist besonders nützlich für Entwickler, die eine einfache Möglichkeit suchen, Prometheus in verschiedenen Umgebungen zu testen oder zu betreiben.
Das offizielle Prometheus-Docker-Image ist auf Docker Hub verfügbar. Um das neueste Image herunterzuladen, führen Sie folgenden Befehl aus:
docker pull prom/prometheusErstellen Sie eine
prometheus.yml-Konfigurationsdatei auf Ihrem lokalen
System. Ein einfaches Beispiel:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']Diese Datei definiert, welche Metriken gesammelt werden und wie die Zielendpunkte konfiguriert sind.
Starten Sie einen Prometheus-Container und mounten Sie das
Verzeichnis, in dem sich Ihre prometheus.yml-Datei
befindet:
docker run -d \
-p 9090:9090 \
--name prometheus \
-v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheusErsetzen Sie /path/to/prometheus.yml durch den
tatsächlichen Pfad zu Ihrer Konfigurationsdatei.
http://localhost:9090 im
Browser.Überprüfen Sie die Logs des Containers, um sicherzustellen, dass alles ordnungsgemäß funktioniert:
docker logs prometheusUm den Prometheus-Container zu stoppen, zu starten oder neu zu starten, verwenden Sie die folgenden Befehle:
docker stop prometheus
docker start prometheus
docker restart prometheusUm sicherzustellen, dass die Daten von Prometheus auch nach einem Neustart des Containers erhalten bleiben, können Sie ein Volume für die Daten speichern:
docker run -d \
-p 9090:9090 \
--name prometheus \
-v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /path/to/data:/prometheus \
prom/prometheusErsetzen Sie /path/to/data durch den Pfad, in dem
die Daten gespeichert werden sollen.
Wenn Sie Prometheus in einem Docker-Netzwerk betreiben und andere Container als Targets hinzufügen möchten, erstellen Sie ein benutzerdefiniertes Netzwerk:
docker network create prometheus-net
docker network connect prometheus-net prometheusFügen Sie dann andere Container zu diesem Netzwerk hinzu und
konfigurieren Sie die Targets entsprechend in der
prometheus.yml.
Durch die Verwendung von Docker zur Installation von Prometheus können Sie den Overhead der direkten Installation auf dem Host-System vermeiden und von der Portabilität und Isolierung profitieren, die Docker bietet. Diese Methode ist ideal für Entwicklungs- und Testumgebungen sowie für produktive Systeme, die eine einfache Verwaltung und Skalierbarkeit erfordern.
Die Installation von Prometheus auf Kubernetes bietet eine robuste und skalierbare Möglichkeit, Prometheus in einer containerisierten Umgebung zu betreiben. Dies ist besonders vorteilhaft für große und dynamische Umgebungen, in denen hohe Verfügbarkeit und automatische Skalierung erforderlich sind.
Voraussetzungen:
kubectl, das Kommandozeilenwerkzeug
für Kubernetes.Helm-Installation (empfohlene Methode):
Helm-Repository hinzufügen:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo updatePrometheus-Chart installieren:
helm install prometheus prometheus-community/prometheusDieser Befehl installiert das Prometheus-Chart in Ihrem Kubernetes-Cluster mit den Standardeinstellungen.
Sie können die Installation anpassen, indem Sie eine eigene
values.yaml-Datei erstellen und diese mit dem
-f-Flag angeben:
helm install prometheus -f values.yaml prometheus-community/prometheusManuelle Installation mittels YAML-Dateien:
Es wird empfohlen, einen eigenen Namespace für Prometheus zu erstellen:
kubectl create namespace monitoringErstellen Sie eine Konfigurationsdatei für das
Prometheus-Deployment (prometheus-deployment.yaml):
apiVersion: apps/v1
kind: Deployment
metadata:
name: prometheus
namespace: monitoring
spec:
replicas: 1
selector:
matchLabels:
app: prometheus
template:
metadata:
labels:
app: prometheus
spec:
containers:
- name: prometheus
image: prom/prometheus
ports:
- containerPort: 9090
volumeMounts:
- name: config-volume
mountPath: /etc/prometheus/
- name: storage-volume
mountPath: /prometheus
volumes:
- name: config-volume
configMap:
name: prometheus-config
- name: storage-volume
emptyDir: {}Erstellen Sie eine Service-Konfigurationsdatei
(prometheus-service.yaml):
apiVersion: v1
kind: Service
metadata:
name: prometheus
namespace: monitoring
spec:
type: NodePort
ports:
- port: 9090
targetPort: 9090
nodePort: 30000
selector:
app: prometheusErstellen Sie eine ConfigMap für die Prometheus-Konfiguration
(prometheus-config.yaml):
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-config
namespace: monitoring
data:
prometheus.yml: |
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']Wenden Sie die Konfigurationsdateien auf Ihr Kubernetes-Cluster an:
kubectl apply -f prometheus-config.yaml
kubectl apply -f prometheus-deployment.yaml
kubectl apply -f prometheus-service.yamlVerwaltung und Zugriff:
Überprüfung der Ressourcen:
kubectl get pods -n monitoring
kubectl get svc -n monitoringZugriff auf die Prometheus-Weboberfläche:
http://<NodeIP>:30000 in Ihrem
Browser, um auf die Prometheus-Oberfläche zuzugreifen.Prometheus Operator (optional):
Der Prometheus Operator erleichtert die Verwaltung von Prometheus-Instanzen und deren Konfiguration in Kubernetes.
Installieren Sie den Prometheus Operator mit Helm:
helm install prometheus-operator prometheus-community/kube-prometheus-stackDies installiert den Operator und eine vollständige Überwachungsstack, einschließlich Alertmanager und Grafana.
Durch die Installation von Prometheus auf Kubernetes können Sie die Vorteile einer containerisierten Umgebung nutzen, einschließlich Skalierbarkeit, Flexibilität und einfache Verwaltung. Dies macht Kubernetes zu einer idealen Plattform für die Bereitstellung von Prometheus in produktiven Umgebungen.