Befolgen Sie diese Anweisungen, um Prometheus mit Alertmanager auf einem TKG-Dienst-Cluster zu installieren, auf dem TKr für vSphere 8.x ausgeführt wird.
Voraussetzungen
Beachten Sie die folgenden Voraussetzungen.
- Allgemeine Anforderungen
- Erstellen des Paket-Repositorys.
- Installieren des Zertifikatmanagers.
- Installieren von Contour mit Envoy (erforderlich für den Zugriff auf das Prometheus-Dashboard).
- Prometheus-Paketreferenz
Erstellen von Prometheus-Datenwerten
Bereiten Sie die Installation von Prometheus vor, indem Sie die Datenwertdatei erstellen.
- Rufen Sie die neueste Prometheus-Paketversion für Ihr Repository ab.
tanzu package available get prometheus.tanzu.vmware.com -n tkg-system
Oder verwenden Sie dazu „kubectl“.
kubectl -n tkg-system get packages | grep prometheus
Hinweis: In der Regel sollten Sie die neueste Version verwenden, es sei denn, Ihre Anforderungen weichen ab. - Generieren Sie die Datei
prometheus-data-values.yaml
.tanzu package available get prometheus.tanzu.vmware.com/2.45.0+vmware.1-tkg.2 --default-values-file-output prometheus-data-values.yaml
Dabei gilt:- 2.45.0+vmware.1-tkg.2 ist die Zielpaketversion
- prometheus-data-values.yaml ist der Name und Pfad der zu generierenden Datenwertdatei
- Bearbeiten Sie die Datei
prometheus-data-values.yaml
, und konfigurieren Sie die folgenden Werte, die für den Zugriff auf das Prometheus-Dashboard erforderlich sind. Unter Prometheus-Paketreferenz finden Sie eine Beispieldatei mit Datenwerten und eine vollständige Liste der Konfigurationsparameter.Parameter Beschreibung ingress.tlsCertificate.tls.crt
Für den eingehenden Datenverkehr wird ein selbstsigniertes TLS-Zertifikat generiert. Dieses können Sie optional außer Kraft setzen und Ihr eigenes Zertifikat angeben. ingress.tlsCertificate.tls.key
Für den eingehenden Datenverkehr wird ein selbstsignierter privater TLS-Schlüssel generiert. Dieses können Sie optional außer Kraft setzen und Ihr eigenes Zertifikat angeben. ingress.enabled
Legen Sie den Wert auf true
fest (Standard ist „false“).ingress.virtual_host_fqdn
Legen Sie den Wert auf prometheus.<your.domain>
fest (Standard istprometheus.system.tanzu
).alertmanager.pvc.storageClassName
Geben Sie den Namen der vSphere-Speicherrichtlinie ein. prometheus.pvc.storageClassName
Geben Sie den Namen der vSphere-Speicherrichtlinie ein.
Installieren von Prometheus
Führen Sie diese Schritte aus, um das Prometheus-Paket zu installieren.
- Erstellen Sie den Namespace.
kubectl create ns tanzu-system-monitoring
- Installieren Sie Prometheus.
tanzu package install prometheus -p prometheus.tanzu.vmware.com -v 2.45.0+vmware.1-tkg.2 --values-file prometheus-data-values.yaml -n tanzu-system-monitoring
- Überprüfen Sie die Prometheus-Installation.
tanzu package installed list -n tanzu-system-monitoring
tanzu package installed get prometheus -n tanzu-system-monitoring
- Überprüfen Sie die Prometheus- und Alertmanager-Objekte.
kubectl -n tanzu-system-monitoring get all
kubectl -n tanzu-system-monitoring get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE alertmanager Bound pvc-a53f7091-9823-4b70-a9b4-c3d7a1e27a4b 2Gi RWO k8s-policy 2m30s prometheus-server Bound pvc-41745d1d-9401-41d7-b44d-ba430ecc5cda 20Gi RWO k8s-policy 2m30s
Fehlerbehebung bei der Prometheus-Installation
Wenn beim
tanzu package install prometheus
-Vorgang der Fehler „Failed to get final advertise address: No private IP address found, and explicit IP not provided“ (Fehler beim Abrufen der endgültigen Ankündigungsadresse: Keine private IP-Adresse gefunden und explizite IP nicht angegeben) zurückgegeben wird, wenden Sie ein Paket-Overlay an, um die Alertmanager-Komponente neu zu konfigurieren.
- Erstellen Sie die Datei „
overlay-alertmanager.yaml
“.--- #@ load("@ytt:overlay", "overlay") #@overlay/match by=overlay.and_op(overlay.subset({"kind": "Deployment"}), overlay.subset({"metadata": {"name": "alertmanager"}})) --- spec: template: spec: containers: #@overlay/match by="name",expects="0+" - name: alertmanager args: - --cluster.listen-address=
- Erstellen Sie mithilfe von Kubectl einen geheimen Schlüssel aus der
overlay-alertmanager.yaml
-Datei.kubectl create secret generic alertmanager-overlay -n tkg-system -o yaml --dry-run=client --from-file=overlay-alertmanager.yaml | kubectl apply -f -
- Verwenden Sie Kubectl, um das Prometheus-Paket mit dem geheimen Overlay-Schlüssel zu versehen.
kubectl annotate PackageInstall prometheus -n tkg-system ext.packaging.carvel.dev/ytt-paths-from-secret-name.1=alertmanager-overlay
- Führen Sie den Installationsbefehl erneut aus.
tanzu package install prometheus -p prometheus.tanzu.vmware.com -v 2.37.0+vmware.3-tkg.1 --values-file prometheus-data-values.yaml -n tanzu-system-monitoring
Zugreifen auf das Prometheus-Dashboard
Führen Sie nach der Installation von Prometheus die folgenden Schritte aus, um auf das Prometheus-Dashboard zuzugreifen.
- Stellen Sie sicher, dass der
ingress
-Abschnitt derprometheus-data-values.yaml
-Datei mit allen erforderlichen Feldern gefüllt ist.ingress: enabled: true virtual_host_fqdn: "prometheus.system.tanzu" prometheus_prefix: "/" alertmanager_prefix: "/alertmanager/" prometheusServicePort: 80 alertmanagerServicePort: 80 #! [Optional] The certificate for the ingress if you want to use your own TLS certificate. #! We will issue the certificate by cert-manager when it's empty. tlsCertificate: #! [Required] the certificate tls.crt: #! [Required] the private key tls.key: #! [Optional] the CA certificate ca.crt:
- Rufen Sie die öffentliche (externe) IP-Adresse des Contour mit Envoy-Lastausgleichsdiensts ab.
Weitere Informationen hierzu finden Sie unter Installieren von Contour mit Envoy.
- Erstellen Sie einen DNS-Datensatz, der den von Ihnen verwendeten Prometheus-FQDN (standardmäßig
prometheus.system.tanzu
) der IP-Adresse des Envoy-Lastausgleichsdiensts zuordnet. - Greifen Sie auf das Prometheus-Dashboard zu, indem Sie mit einem Browser zum Prometheus-FQDN navigieren.