Wie man

Bereitstellen von Prometheus auf dem EKS Kubernetes-Cluster

Bereitstellen von Prometheus auf dem EKS Kubernetes-Cluster

Prometheus ist ein Open Source Überwachung System mit dimensionalem Datenmodell, flexibler Abfragesprache, effizienter Zeitreihendatenbank und modernem Alerting-Ansatz. Prometheus kann als eigenständiger Dienst auf einem Linux-Computer installiert oder in einem Kubernetes-Cluster bereitgestellt werden deployed. In diesem Handbuch führen wir Sie durch die Installation von Prometheus auf einem in AWS Cloud bereitgestellten EKS-Cluster deployed.

Die Hauptmerkmale von Prometheus sind:

Bereitstellen von Prometheus auf dem EKS Kubernetes-Cluster

Sie sollten einen laufenden EKS-Cluster haben, bevor Sie dieses Handbuch mit installiertem kubectl verwenden und mit dem API-Server interagieren können.

Verfügbare Cluster auflisten.

$ eksctl get Cluster NAME REGION prod-eks-cluster eu-west-1

Schritt 1: kubectl . konfigurieren

Um Cluster-Anmeldeinformationen zu einem beliebigen Zeitpunkt von einem EKS-Cluster abzurufen, der mit bereitgestellt wurde eksctl, Lauf:

$ eksctl utils write-kubeconfig --cluster= [--kubeconfig=][--set-kubeconfig-context=]
Siehe unten stehendes Beispiel:
# Standard-kubeconfig-Verzeichnis erstellen - Kann benutzerdefiniert sein --- Linux --- $ mkdir /home/$USER/.kube --- macOS --- $ mkdir /Users/$USER/.kube # Cluster-Anmeldeinformationen abrufen --- Linux --- $ s write-kubeconfig --cluster=prod-eks-cluster --kubeconfig=/home/$USER/.kube/config --- macOS --- $ eksctl utils write-kubeconfig --cluster=prod-eks-cluster --kubeconfig=/Users/$USER/.kube/config

Erwartete Ausgabe der Befehlsausführung:

[ℹ] eksctl-Version 0.25.0 [ℹ] unter Verwendung der Region eu-west-1 [✔] gespeicherte kubeconfig als "/Users/jkmutai/.kube/config"

Bestätigen Sie, ob der Befehl kubectl wie erwartet funktioniert working.

$ kubectl get node NAME STATUS ROLES ALTER VERSION ip-192-168-138-244.eu-west-1.berechnen.intern Bereit  7d21h v1.17.9-eks-4c6976 ip-192-168-176-247.eu-west-1.berechnen.intern Bereit  7d21h v1.17.9-eks-4c6976

Schritt 2: Kubernetes Metrics Server installieren

Der Kubernetes-API-Server stellt eine Reihe von Metriken bereit, die für die Überwachung und Analyse nützlich sind. Diese Metriken werden intern über einen Metrikendpunkt verfügbar gemacht, der sich auf die /metriken HTTP-API.

Installieren Sie Metrics Server mit der folgenden Anleitung:

Kubernetes Metrics Server auf Amazon EKS-Cluster installieren

Sie können Cluster-Rohmesswerte anzeigen, indem Sie den folgenden Befehl ausführen:

$ kubectl get --raw /metrics

Schritt 3: Helm installieren

Der Helm-Paketmanager für Kubernetes hilft Ihnen bei der Installation und Verwaltung von Anwendungen in Ihrem Kubernetes-Cluster. Wir werden Hilfe bei der Bereitstellung von Prometheus auf EKS verwenden.

Dies sind die Befehle, die Sie zur Installation verwenden werden Helm.

--- Linux --- curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh chmod 700 get_helm.Sch ./get_helm.sh --- macOS --- $ brew install helm --- Windows --- $ choco install kubernetes-helm

Sie können die installierte Version mit dem Befehl abfragen:

$ Helmversionsversion.BuildInfoVersion:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"dirty", GoVersion:"go1.14.3"

Schritt 4: Bereitstellen von Prometheus auf dem EKS Kubernetes-Cluster

Prometheus kann mit Operator oder mit helm auf einem Kubernetes-Cluster installiert werden. Wir verwenden Helm V3, das wir gerade installiert haben, um prometheus in einem EKS-Cluster bereitzustellen.

Erstellen Sie zuerst einen Monitoring-Namespace.

$ kubectl Create Namespace Monitoring Namespace/Monitoring erstellt

Prometheus benötigt eine Möglichkeit, Metrikdaten als historische Referenz beizubehalten. Wir verwenden EBS, das mit bereitgestellt wird gp2 Lagerklasse.

$ kubectl get sc kubectl get sc NAME BEREITSTELLER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE efs-sc efs.csi.aws.com Löschen Sofort false 2d23h gp2 (Standard) kubernetes.io/aws-ebs Löschen WaitForFirstConsumer false 7d21h

Diagramm-Repository hinzufügen:

$ helm repo füge stabile https://kubernetes-charts hinzu.Lager.googleapis.com "stable" wurde zu Ihren Repositories hinzugefügt

Bereitstellen von Prometheus mit Helm.

helm install prometheus stable/prometheus \ --namespace monitoring \ --set alertmanager.persistentVolume.storageClass="gp2",server.persistentVolume.storageClass="gp2"

Ausgabe der Befehlsausführung:

NAME: prometheus ZULETZT EINGESETZT: Mi 19. August 22:01:16 2020 NAMESPACE: Monitoring STATUS: bereitgestellt REVISION: 1 TESTSUITE: Keine HINWEISE: Auf den Prometheus-Server kann über Port 80 des folgenden DNS-Namens aus Ihrem Cluster zugegriffen werden: prometheus -Server.Überwachung.svc.Cluster.lokal

Bestätigen Sie, dass PV und PVC erstellt wurden.

$ kubectl get pv -n Überwachung NAME KAPAZITÄT ZUGRIFFSMODI RECLAIM POLICY STATUS ANSPRUCH SPEICHERKLASSE GRUND ALTER pvc-7a1d891c-5b3f-4d28-91b5-5f1d1590daf9 8Gi RWO Löschen Gebundene Überwachung/prometheus-server gp2 114595-149 747dccaceecc 2Gi RWO Löschen Gebundene Überwachung/prometheus-alertmanager gp2 11m $ kubectl get pvc -n Überwachung NAME STATUS VOLUME KAPAZITÄT ZUGRIFFSMODI SPEICHERKLASSE ALTER prometheus-alertmanager Gebundene pvc-7d45951f-a8c5-447dserverWOepcc2 pvc-7a1d891c-5b3f-4d28-91b5-5f1d1590daf9 8Gi RWO gp2 11m

Schritt 4: Greifen Sie auf Prometheus im EKS Kubernetes-Cluster zu

Fragen Sie nach der Installation alle Ressourcen im Monitoring-Namespace ab:

$ kubectl get all -n monitor NAME BEREIT STATUS RESTARTS AGE pod/prometheus-alertmanager-d47577c4b-kz9td 2/2 Wird ausgeführt 0 98s pod/prometheus-kube-state-metrics-6df5d44568-fzfwn 1/1 Wird ausgeführt 0 98s pod/prometheus- node-exporter-p6qk7 1/1 läuft 0 99s pod/prometheus-node-exporter-stsjk 1/1 läuft 0 99s pod/prometheus-pushgateway-57c97d878d-hmnwr 1/1 läuft 0 98s pod/prometheus-server-559c49b4ff-42k46 2/2 Wird ausgeführt 0 98s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/prometheus-alertmanager ClusterIP 10.100.136.125  80/TCP 99s-Dienst/prometheus-kube-state-metrics ClusterIP 10.100.169.64  8080/TCP 99s service/prometheus-node-exporter ClusterIP Keine  9100/TCP 99s-Dienst/prometheus-Pushgateway ClusterIP 10.100.71.173  9091/TCP 99s Dienst/prometheus-Server ClusterIP 10.100.138.66  80/TCP 99s NAME GEWÜNSCHT AKTUELL BEREIT AKTUELL VERFÜGBAR NODE SELECTOR AGE Daemonset.Apps/prometheus-Knoten-Exporter 2 2 2 2 2  99s NAME BEREIT AKTUELL VERFÜGBAR AGE-Bereitstellung.apps/prometheus-alertmanager 1/1 1 1 99s Bereitstellung.apps/prometheus-kube-state-metrics 1/1 1 1 99s Bereitstellung.apps/prometheus-pushgateway 1/1 1 1 99s Bereitstellung.apps/prometheus-server 1/1 1 1 99s NAME GEWÜNSCHT AKTUELLES READY AGE replikset.apps/prometheus-alertmanager-d47577c4b 1 1 1 99s Replikatsatz.apps/prometheus-kube-state-metrics-6df5d44568 1 1 1 99s Replikatsatz.apps/prometheus-pushgateway-57c97d878d 1 1 1 99s Replikatsatz.apps/prometheus-server-559c49b4ff 1 1 1 99s

Rufen Sie die Prometheus-Server-URL ab, indem Sie diese Befehle in derselben Shell ausführen:

export POD_NAME=$(kubectl get pods --namespace monitoring -l "app=prometheus,component=server" -o jsonpath=".artikel[0].Metadaten.Name")

Verwenden Sie die Kubernetes-Portweiterleitungsfunktion, um auf den Prometheus-Server zuzugreifen.

$ kubectl --namespace Überwachung port-forward $POD_NAME 9090 Weiterleitung von 127.0.0.1:9090 -> 9090 Weiterleitung von [::1]:9090 -> 9090

Zugriff 127.0.0.1:9090 über den Browser Ihres lokalen Computers.

Ähnliche Befehle werden verwendet, um auf die Alertmanager-Benutzeroberfläche zuzugreifen

export POD_NAME=$(kubectl get pods --namespace monitoring -l "app=prometheus,component=alertmanager" -o jsonpath=".artikel[0].Metadaten.name") kubectl --namespace Überwachung port-forward $POD_NAME 9093

Wenn Sie mit Node-Ports auf Prometheus Server und Alertmanager zugreifen möchten, bearbeiten Sie die Dienste und legen Sie fest KnotenPort.

Der nächste Ort ist die Prometheus-Dokumentation, insbesondere QUERYING PROMETHEUS

Weitere Anleitungen:

Verwenden von Horizontal Pod Autoscaler in Kubernetes EKS-Clustern

Aktivieren Sie die CloudWatch-Protokollierung im EKS Kubernetes-Cluster

EKS Kubernetes Persistent Storage mit EFS Storage Service

Beste Software zum Erstellen eines Videos in Windows 10
Viele Tools eignen sich für die Videobearbeitung. Aber wie findet man das perfekte? ? Hier ist die Liste der 10 meistgenutzten Tools für Windows 10. S...
Cybersicherheitstrends, Bedrohungen und Schutzmöglichkeiten 2021
2020 war ein herausforderndes Jahr mit vielen Lektionen. Gesundheitsschutz und Datenschutz sind nur einige davon, aber die meisten Unternehmen sind si...
3 Ansätze, was einen großartigen Immobilienmakler ausmacht
Fast jeder geht ins Internet, um nach allem zu suchen. Von der Suche nach Sachinformationen bis hin zu kreativen DIY-Ideen.  Das Immobiliengeschäft is...