MongoDB Flex Observability-Daten mit Prometheus sammeln
In den folgenden Schritten erfahren Sie, wie Sie Ihre STACKIT MongoDB Flex Observability-Daten mit Prometheus sammeln können.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Sie haben eine MongoDB Flex Instanz erstellt. Prüfen Sie Erstellen und Verwalten von MongoDB Flex-Instanzen.
- Sie verfügen über eine laufende Instanz von Prometheus. Diese Anleitung geht davon aus, dass Sie einen Container verwenden. Aus diesem Grund referenzieren wir diesen im Text. Sie können auch eine Virtual Machine verwenden oder Prometheus in einer anderen Umgebung ausführen.
Vorbereitung
Abschnitt betitelt „Vorbereitung“Bevor Sie Ihre Prometheus-Umgebung konfigurieren, müssen Sie den benötigten Service Account vorbereiten. Diese Anleitung verwendet das STACKIT Portal für diese Aufgabe. Sie können auch die STACKIT CLI verwenden.
Einen Service Account erstellen und Zugriff auf die API gewähren
Abschnitt betitelt „Einen Service Account erstellen und Zugriff auf die API gewähren“-
Navigieren Sie zu IAM und Verwaltung > Service-Accounts.
-
Klicken Sie auf + Service-Account erstellen.
-
Geben Sie dem neuen Service-Account einen Namen und klicken Sie auf Erstellen. Der Account wurde erstellt.
-
Wechseln Sie in den Account, indem Sie auf seinen Namen klicken.
-
Navigieren Sie zu Service-Account-Schlüssel.
-
Klicken Sie auf + Service-Account-Schlüssel erstellen.
-
Wählen Sie Neues Schlüsselpaar erstellen und klicken Sie auf Erstellen.
-
Laden Sie die neu erstellten Zugangsdaten herunter. Sie benötigen mindestens die JSON-Datei, die alle relevanten Informationen enthält.
-
Navigieren Sie zu IAM und Verwaltung > Zugriff.
-
Klicken Sie auf + Zugriff gewähren.
-
Fügen Sie die E-Mail-Adresse (ID) des neu erstellten Service-Accounts hinzu.
-
Wählen Sie die Rolle MongoDB Flex Reader aus und klicken Sie auf Speichern.
Prometheus konfigurieren
Abschnitt betitelt „Prometheus konfigurieren“-
Kopieren Sie die JSON-Datei, die Sie unter Vorbereitung heruntergeladen haben, auf Ihre virtuelle Maschine.
In dieser Anleitung kopieren wir sie nach
/usr/local/etc/stackit/sa/service-account.json. Wenn Sie einen anderen Ort wählen, müssen Sie die Befehle in den folgenden Schritten anpassen. -
Erstellen Sie einen Cronjob zur Aktualisierung des Bearer-Tokens.
Versuchen Sie manuell, ein Token mit der STACKIT CLI zu beziehen.
Terminal-Fenster stackit auth activate-service-account --service-account-key-path /usr/local/etc/stackit/sa/service-account.json --only-print-access-tokenDie maximale Token-Lebensdauer beträgt 60 Minuten, daher muss das Token vorher erneuert werden. Um diesen Schritt zu automatisieren, können Sie diesen Befehl in die Crontab einfügen und das Token in eine neue Datei schreiben. Diese Datei sollte ebenfalls geschützt werden.
*/5 * * * * /usr/bin/stackit auth activate-service-account --service-account-key-path /usr/local/etc/stackit/sa/service-account.json --only-print-access-token > /run/secrets/bearer_token 2>/dev/null -
Prometheus konfigurieren Konfigurieren Sie nun Prometheus nach Ihren Bedürfnissen. Verwenden Sie den folgenden Code-Ausschnitt, um die MongoDB Flex Metriken zu sammeln. Ersetzen Sie
projectID,regionundMongoDBFlexInstanceIDdurch die entsprechenden Werte.scrape_configs:- job_name: "<job name>"metrics_path: "/v2/projects/[projectID]/regions/[region]/instances/[MongoDBFlexInstanceID]/metrics"scheme: "https"bearer_token_file: /run/secrets/bearer_tokenstatic_configs:- targets: ['mongodb-prom-proxy.api.stackit.cloud:443'] -
Starten Sie den Container oder Dienst neu
-
Prometheus testen
Öffnen Sie Ihre Prometheus-Instanz mit einem Browser. Navigieren Sie zu Status > Monitoring status: “Target health”. Der Status des definierten Scrapers sollte
UPsein:
-
Prometheus konfigurieren
Konfigurieren Sie Prometheus nach Ihren Bedürfnissen. Verwenden Sie den folgenden Code-Ausschnitt, um die MongoDB Flex Metriken zu sammeln. Prometheus >= 3.8 bietet nativen Support für Service-Account-Schlüssel.
Ersetzen Sie
projectID,region,MongoDBFlexInstanceID,serviceAccountID,serviceAccountKeyID,serviceAccountKeyPrivateKeyundServiceAccountMailAddressdurch die entsprechenden Werte.scrape_configs:- job_name: "<job name>"metrics_path: "/v2/projects/[projectID]/regions/[region]/instances/[MongoDBFlexInstanceID]/metrics"scheme: "https"oauth2:client_id: [serviceAccountID]client_certificate_key_file: [serviceAccountKeyPrivateKey]grant_type: urn:ietf:params:oauth:grant-type:jwt-bearertoken_url: [https://service-account.api.stackit.cloud/token](https://service-account.api.stackit.cloud/token)client_certificate_key_id: [serviceAccountKeyID]iss: [ServiceAccountMailAddress]audience: [https://stackit-service-account-prod.apps.01.cf.eu01.stackit.cloud](https://stackit-service-account-prod.apps.01.cf.eu01.stackit.cloud)signature_algorithm: RS512static_configs:- targets: ['mongodb-prom-proxy.api.stackit.cloud:443'] -
Starten Sie den Container oder Dienst neu
-
Prometheus testen
Öffnen Sie Ihre Prometheus-Instanz mit einem Browser. Navigieren Sie zu Status > Monitoring status: “Target health”. Der Status des definierten Scrapers sollte
UPsein:
Hinweise
Abschnitt betitelt „Hinweise“- Wenn Sie STACKIT Grafana verwenden, um Ihre Metriken zu visualisieren, nutzen Sie unsere STACKIT MongoDB Flex Grafana-Vorlage. Besuchen Sie den Referenzartikel Observability-Metriken von MongoDB Flex, um die Datei herunterzuladen.