Mobile Foundation in IBM Cloud Private (ICP) überwachen
improve this page | report issueÜbersicht
In diesem Lernprogramm geht es um die Integration von Prometheus zur Überwachung der Mobile Foundation in IBM Cloud Private.
In der IBM Mobile Foundation kann das Feature mpMetrics-1.0
aktiviert werden, um Mobile Foundation Server, Analytics und das Application Center (instrumentiert mit der API MicroProfile metrics) überwachen zu können. Sie werden bei der Überwachung von JVM-Metriken und Metriken auf Systemebene Ihrer in ICP implementierten Mobile-Foundation-Container unterstützt.
Das Standardantwortformat auf eine API-Anforderung /metrics
ist ein mit Prometheus kompatibles Textformat.
Vorgehensweise
Führen Sie die folgenden Schritte aus, um die Überwachung der Mobile Foundation in IBM Cloud Private einzurichten.
Schritt 1: Service IBM Monitoring implementieren
a. Implementieren Sie den Überwachungsservice (Monitoring) aus dem IBM Cloud-Private-Katalog.
b. Navigieren Sie zu Catalog, wählen Sie das Helm-Chart ibm-icpmonitoring aus und installieren Sie es. Das Helm-Chart wird in IBM Cloud Private installiert.
Schritt 2: Prometheus-Konfiguration configmap aktualisieren
Führen Sie den folgenden Befehl auf einem ordnungsgemäß abgeleiteten Terminal aus, bei dem es sich um eine CLI-Instanz mit den Kontextkonfigurationsdaten des ICP-Clusters handelt:
kubectl get svc | grep prometheus
Sie sehen eine Reihe von Services, die vom Chart ibm-icpmonitoring
implementiert werden. In diesem Lernprogramm geht es vorrangig um den Service <Name_des_Helm-Release>-promethues
(mfp-prometheus-prometheus). Sehen Sie sich dazu den folgenden Screenshot an:
Zu jedem dieser Services gibt es ein configmap-Objekt. Um die Metrikdaten der Mobile-Foundation-Pods zu erhalten, müssen Sie die zum Service mfp-prometheus-prometheus gehörende configmap modifzieren. Fügen Sie die Annotation mfpfserver
für Mobile Foundation Server, die Annotation mfpfanalytics
für Analytics und die Annotation mfpfappcenter
für das Application Center sowie einige weitere Attribute zu der Serviceimplmentierung hinzu.
Am einfachsten erreichen Sie dies, indem Sie das vorgesehehe configmap-Objekt mit dem folgenden Befehl auf einem abgeleiteten Terminal bearbeiten:
kubectl edit configmap mfp-prometheus-prometheus
Mit diesem Befehl wird die angeforderte YAML-Datei im vi-Editor angezeigt. Blättern Sie bis zum Ende der Datei und fügen Sie den nachstehenden Text direkt vor der Zeile kind: ConfigMap
ein.
Es folgt ein YAML-Snippet für Konfiguratin der Mobile-Foundation-Server-Metriken:
# Konfiguration für MFP-Server-Überwachung
- job_name: 'mfpf-server'
scheme: 'https'
basic_auth:
username: 'mfpRESTUser'
password: 'mfpadmin'
tls_config:
insecure_skip_verify: true
kubernetes_sd_configs:
- role: endpoints
relabel_configs:
- source_labels: [__meta_kubernetes_service_annotation_mfpfserver]
action: keep
regex: true
- source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
action: replace
target_label: __address__
regex: (.+)(?::\d+);(\d+)
replacement: $1:$2
- action: labelmap
regex: __meta_kubernetes_service_label_(.+)
Es folgt ein YAML-Snippet für die Konfiguration der Überwachung des Zustands von Mobile Foundation Server:
# Konfiguration für die Überwachung des MFP-Zustands<br/>
- job_name: 'mfp-healthcheck'
metrics_path: /mfpadmin/management-apis/2.0/diagnostic/healthCheck
scheme: 'https'
basic_auth:
username: 'admin'
password: 'admin'
tls_config:
insecure_skip_verify: true
kubernetes_sd_configs:
- role: endpoints
relabel_configs:
- source_labels: [__meta_kubernetes_service_annotation_mfpfserver]
action: keep
regex: true
- source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
action: replace
target_label: __address__
regex: (.+)(?::\d+);(\d+)
replacement: $1:$2
- action: labelmap
regex: __meta_kubernetes_service_label_(.+)
** Hinweis:** Für die Implementierung von Mobile Foundation Analytics und des Application Center gilt eine ähnliche Metrikkonfiguration.
Der Wert von job_name und source_labels ändert sich wie bereits erwähnt.
Schritt 3: Prometheus-Konfiguration nach Aktualisierung der Jobs neu laden
Führen Sie den folgenden curl-Befehl aus:
curl -s -XPOST http://<IP-Adresse des Proxyknotens>:31271/-/reload
Schritt 4: Mobile-Foundation-Statistik überwachen
a. Öffnen Sie in einem Browser mit folgender URL die Prometheus-Konsole:
http://<IP-Adresse des Proxyknotens>:31271
b. Klicken Sie in der Prometheus-Konsole zuerst auf Status. Wählen Sie dann in der Dropdown-Liste Targets aus. Sehen Sie sich dazu den folgenden Screenshot an:
c. Sie sollten alle Ziele (Targets) sehen, für die Prometheus Statistikdaten erhalten hat.
Im obigen Screenshot sind klar Mobile Foundation Server, Analytics und das Application Center als Ziele (Targets) angegeben. Sehen Sie sich den Wert des Attributs job_name in der YAML-Datei für die configmap in Schritt 2 an.
Wie haben unser Implementierungsbeispiel vertikal skaliert, sodass es jetzt zwei Replikate gibt. Aus dem Gunde zeigt Prometheus zwei Endpunkte für Server.
Wenn Sie in der Prometheus-Konsole auf Graph klicken, können Sie in der daraufhin erscheinenden Anzeige auf insert metric at cursor klicken. Sehen Sie sich dazu den folgenden Screenshot an:
Sie sehen eine Reihe von Metriken, die von der vorhandenen Prometheus-Konfiguration überwacht werden können. In der langen Liste der Metriken stammen Metriken, deren Namen mit base: beginnen, von den Mobile-Foundation-Containern, die das Feature mpMetrics-1.0
beigesteuert hat.
Wenn Sie eine Liberty-Metrik (z. B. base:thread_count) auswählen, können Sie im Prometheus-Diagramm die Werte aus beiden Mobile-Foundation-Server-Pods sehen. Vergleichen Sie dazu den folgenden Screenshot:
Sie können in Prometheus weitere relevante Metriken in grafischer oder numerischer Form untersuchen. Klicken Sie dazu auf Console.
Darüber hinaus können Sie Ihre Implementierungen skalieren. Binnen kurzem stimmt die Anzahl der Endpunkte in der Prometheus-Konsole mit der Anzahl der Replikate überein.
Hinweis: Wir haben hier für Kennwörter in der configmap-Datei von Prometheus Klartext verwendet. Wenn die Konfiguration in der Prometheus-Anzeige aufgerufen wird, wird das Kennwort jedoch nicht angezeigt.
Schritt 5: Metriken im Grafana-Dashboard anzeigen
Die Helm-Charts für die Mobile Foundation enthalten JSON-Beispieldateien für das Grafana-Dashboard. In dem in Schritt 1 implementierten Überwachungsservice (Monitoring) gibt es Grafana bereits.
Ein Grafana-Dashboard kann wie folgt aus einer JSON-Datei importiert werden:
-
Starten Sie Grafana vom implementierten Überwachungsservice aus.
Workloads -> Helm releases -><Name_des_Helm-Release>
(z. B. mfp-prometheus) ->Launch) -
Laden Sie die JSON-Dashboarddatei von GitHub auf Ihre lokale Workstation herunter.
-
Klicken Sie auf der Grafana-Schnittstelle auf die Schaltfläche Home und dann auf Import Dashboard.
-
Klicken Sie auf die Schaltfläche Upload .json file und wählen Sie die JSON-Datei für das Grafana-Dashboard in Ihrem lokalen Dateisystem aus.
-
Wählen Sie im Menü Select a data source die Option prometheus aus, sofern dieser Eintrag noch nicht ausgewählt ist.
-
Klicken Sie auf Import.
Im folgenden Screenshot sehen Sie ein Monitoring-Beispiel-Dashboard für Mobile Foundation Server:
Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.