Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Überwachen
Prometheus, ein abgeschlossenes CNCF-Projekt,
Die allgemeine Architektur der Erfassung von Prometheus-Metriken ist unten dargestellt:
Prometheus verwendet einen Pull-Mechanismus und entfernt mithilfe von Exportern Metriken von Zielen und mithilfe der Kube-State-Metriken aus der Kubernetes-API. https://github.com/kubernetes/kube-state-metrics
Mit einem Exporter können Sie Metriken von Drittanbietern als Metriken im Prometheus-Format verwenden. Ein Prometheus-Exporter wird in der Regel auf jedem Knoten bereitgestellt. Eine vollständige Liste der Exporteure finden Sie unter den Prometheus-Exporteuren. https://prometheus.io/docs/instrumenting/exporters/
Wenn Sie in einem EKS-Cluster mit gemischten Knoten und Windows-Knoten das stabile Prometheus-Helmdiagramm verwenden
Um die Prometheus-Überwachung für Windows-Knoten einzurichten, müssen Sie den WMI-Exporter auf den Windows-Server selbst herunterladen und installieren und dann die Ziele in der Scrape-Konfiguration der Prometheus-Konfigurationsdatei einrichten. Auf der Versionsseite finden Sie alle
Sie können sich den Abschnitt mit den bewährten Methoden RuntimeClass zur Planung dieses Handbuchs ansehen, in dem empfohlen wird, den Node Exporter nur auf Linux-Knoten zu verwenden taints/tolerations oder selektiv bereitzustellen, während der Windows-Exporter auf Windows-Knoten installiert wird, während Sie den Knoten booten oder ein Konfigurationsverwaltungstool Ihrer Wahl verwenden (z. B. Chef, Ansible, SSM usw.).
Beachten Sie, dass im Gegensatz zu den Linux-Knoten, auf denen der Node Exporter als Daemonset installiert ist, auf Windows-Knoten der WMI-Exporter auf dem Host selbst installiert ist. Der Exporter exportiert Messwerte wie die CPU-Auslastung, den Arbeitsspeicher und die I/O Festplattennutzung und kann auch zur Überwachung von IIS-Websites und -Anwendungen, Netzwerkschnittstellen und -diensten verwendet werden.
Der windows_exporter macht standardmäßig alle Metriken von aktivierten Collectors verfügbar. Dies ist die empfohlene Methode zum Sammeln von Metriken, um Fehler zu vermeiden. Für den fortgeschrittenen Gebrauch kann dem windows_exporter jedoch eine optionale Liste von Kollektoren zum Filtern von Metriken übergeben werden. Mit dem Parameter collect [] in der Prometheus-Konfiguration können Sie das tun.
Zu den Standardinstallationsschritten für Windows gehört das Herunterladen und Starten des Exportprogramms als Dienst während des Bootstrapping-Vorgangs mit Argumenten wie den Collectors, die Sie filtern möchten.
> Powershell Invoke-WebRequest https://github.com/prometheus-community/windows_exporter/releases/download/v0.13.0/windows_exporter-0.13.0-amd64.msi -OutFile <DOWNLOADPATH> > msiexec /i <DOWNLOADPATH> ENABLED_COLLECTORS="cpu,cs,logical_disk,net,os,system,container,memory"
Standardmäßig können die Metriken am /metrics-Endpunkt auf Port 9182 gescrapt werden. An diesem Punkt kann Prometheus die Metriken verarbeiten, indem es der Prometheus-Konfiguration die folgende scrape_config hinzufügt
scrape_configs: - job_name: "prometheus" static_configs: - targets: ['localhost:9090'] ... - job_name: "wmi_exporter" scrape_interval: 10s static_configs: - targets: ['<windows-node1-ip>:9182', '<windows-node2-ip>:9182', ...]
Die Prometheus-Konfiguration wird neu geladen mit
> ps aux | grep prometheus > kill HUP <PID>
Eine bessere und empfohlene Methode zum Hinzufügen von Zielen ist die Verwendung einer benutzerdefinierten Ressourcendefinition namens ServiceMonitor, die Teil des Prometheus-Operators
Die ServiceMonitor, die deklarativ festlegt, wie Gruppen von Kubernetes-Diensten überwacht werden sollen, wird verwendet, um eine Anwendung zu definieren, mit der Sie Metriken aus Kubernetes entfernen möchten. Darin spezifizieren ServiceMonitor wir die Kubernetes-Labels, anhand derer der Betreiber den Kubernetes-Dienst identifizieren kann, der wiederum die Pods identifiziert, die wir überwachen möchten.
Um dies zu nutzen ServiceMonitor, erstellen Sie ein Endpoint-Objekt, das auf bestimmte Windows-Ziele verweist, einen Headless-Service und einen ServiceMontor für die Windows-Knoten.
apiVersion: v1 kind: Endpoints metadata: labels: k8s-app: wmiexporter name: wmiexporter namespace: kube-system subsets: - addresses: - ip: NODE-ONE-IP targetRef: kind: Node name: NODE-ONE-NAME - ip: NODE-TWO-IP targetRef: kind: Node name: NODE-TWO-NAME - ip: NODE-THREE-IP targetRef: kind: Node name: NODE-THREE-NAME ports: - name: http-metrics port: 9182 protocol: TCP --- apiVersion: v1 kind: Service ##Headless Service metadata: labels: k8s-app: wmiexporter name: wmiexporter namespace: kube-system spec: clusterIP: None ports: - name: http-metrics port: 9182 protocol: TCP targetPort: 9182 sessionAffinity: None type: ClusterIP --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor ##Custom ServiceMonitor Object metadata: labels: k8s-app: wmiexporter name: wmiexporter namespace: monitoring spec: endpoints: - interval: 30s port: http-metrics jobLabel: k8s-app namespaceSelector: matchNames: - kube-system selector: matchLabels: k8s-app: wmiexporter
Weitere Informationen zum Betreiber und zur Verwendung von finden Sie in der ServiceMonitor offiziellen https://github.com/prometheus-operator/kube-prometheus