View a markdown version of this page

Richten Sie verwaltete Collectors für Amazon EKS ein - Amazon Managed Service für Prometheus

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.

Richten Sie verwaltete Collectors für Amazon EKS ein

Um einen Amazon Managed Service for Prometheus Collector zu verwenden, erstellen Sie einen Scraper, der Metriken in Ihrem Amazon EKS-Cluster erkennt und abruft. Sie können auch einen Scraper erstellen, der in Amazon Managed Streaming für Apache Kafka oder in Amazon Service integriert ist. OpenSearch Weitere Informationen finden Sie unter Integrieren von Amazon MSK und Integrieren von Amazon Service. OpenSearch

  • Sie können einen Scraper als Teil Ihrer Amazon-EKS-Cluster-Erstellung erstellen. Weitere Informationen zur Erstellung eines Amazon-EKS-Clusters, einschließlich der Erstellung eines Scrapers, finden Sie unter Erstellen eines Amazon-EKS-Clusters im Amazon-EKS-Benutzerhandbuch.

  • Sie können Ihren eigenen Scraper programmgesteuert mit der AWS API oder mithilfe der erstellen. AWS CLI

Ein Amazon Managed Service für Prometheus-Sammler scrappt Metriken ab, die es sind. Prometheus-compatible Weitere Informationen zu Prometheus-kompatiblen Metriken finden Sie unter Was sind Prometheus-compatible Metriken?. Amazon EKS-Cluster stellen Metriken für den API-Server zur Verfügung. Amazon EKS-Cluster, die eine Kubernetes-Version 1.28 oder höher haben, stellen auch Metriken für und bereit. kube-scheduler kube-controller-manager Weitere Informationen finden Sie im Amazon EKS-Benutzerhandbuch unter Abrufen von Rohmetriken für die Steuerungsebene im Prometheus-Format.

Anmerkung

Beim Scraping von Metriken aus einem Cluster können Gebühren für die Netzwerknutzung anfallen. Eine Möglichkeit, diese Kosten zu optimieren, besteht darin, Ihren /metrics Endpunkt so zu konfigurieren, dass die bereitgestellten Metriken komprimiert werden (z. B. mit gzip), wodurch die Anzahl der Daten, die über das Netzwerk übertragen werden müssen, reduziert wird. Wie das geht, hängt von der Anwendung oder Bibliothek ab, die die Metriken bereitstellt. Einige Bibliotheken sind standardmäßig gzip.

In den folgenden Themen wird beschrieben, wie Sie Scraper erstellen, verwalten und konfigurieren.

Einen Scraper erstellen

Ein Kollektor von Amazon Managed Service für Prometheus besteht aus einem Scraper, der Metriken aus einem Amazon-EKS-Cluster erkennt und sammelt. Amazon Managed Service für Prometheus verwaltet den Scraper für Sie und bietet Ihnen so die Skalierbarkeit, Sicherheit und Zuverlässigkeit, die Sie benötigen, ohne Instances, Agenten oder Scraper selbst verwalten zu müssen.

Es gibt drei Möglichkeiten, einen Scraper zu erstellen:

  • Ein Scraper wird automatisch für Sie erstellt, wenn Sie über die Amazon EKS-Konsole einen Amazon EKS-Cluster erstellen und Prometheus-Metriken aktivieren.

  • Sie können von der Amazon EKS-Konsole aus einen Scraper für einen vorhandenen Cluster erstellen. Öffnen Sie den Cluster in der Amazon EKS-Konsole und wählen Sie dann auf der Registerkarte Observability die Option Scraper hinzufügen aus.

    Weitere Informationen zu den verfügbaren Einstellungen finden Sie unter Prometheus-Metriken einschalten im Amazon EKS-Benutzerhandbuch.

  • Sie können einen Scraper entweder mit der AWS API oder mit dem erstellen. AWS CLI

    Diese Optionen werden im folgenden Verfahren beschrieben.

Es gibt einige Voraussetzungen, um Ihren eigenen Scraper zu erstellen:

  • Sie haben einen Amazon-EKS-Cluster erstellt.

  • In Ihrem Amazon-EKS-Cluster muss die Cluster-Endpunkt-Zugriffskontrolle so eingestellt sein, dass sie privaten Zugriff beinhaltet. Er kann private und öffentliche Daten beinhalten, muss aber mindestens private Daten beinhalten.

  • Für die Amazon VPC, in der sich der Amazon EKS-Cluster befindet, muss DNS aktiviert sein.

Anmerkung

Der Cluster wird dem Scraper anhand seines Amazon-Ressourcennamens (ARN) zugeordnet. Wenn Sie einen Cluster löschen und dann einen neuen mit demselben Namen erstellen, wird der ARN für den neuen Cluster wiederverwendet. Aus diesem Grund versucht der Scraper, Metriken für den neuen Cluster zu sammeln. Sie löschen Scraper getrennt vom Löschen des Clusters.

AWS API

So erstellen Sie einen Scraper unter Verwendung der AWS -API

Verwenden Sie die CreateScraper API-Operation, um einen Scraper mit der AWS API zu erstellen. Im folgenden Beispiel wird ein Scraper in der us-west-2 Region erstellt. Sie müssen die Informationen zu AWS-Konto, Workspace, Sicherheit und Amazon-EKS-Cluster durch Ihre eigenen IDs ersetzen und die Konfiguration angeben, die für Ihren Scraper verwendet werden soll.

Anmerkung

Die Sicherheitsgruppe und die Subnetze sollten auf die Sicherheitsgruppe und die Subnetze für den Cluster festgelegt werden, mit dem Sie eine Verbindung herstellen.

Sie müssen mindestens zwei Subnetze in mindestens zwei Availability Zones einfügen.

Das scrapeConfiguration ist eine Prometheus-Konfigurations-YAML-Datei, die Base64-codiert ist. Sie können eine allgemeine Zweckkonfiguration mit der GetDefaultScraperConfigurationAPI-Operation herunterladen. Weitere Informationen zum Format von finden Sie unterscrapeConfiguration. Scraper-Konfiguration

POST /scrapers HTTP/1.1 Content-Length: 415 Authorization: AUTHPARAMS X-Amz-Date: 20201201T193725Z User-Agent: aws-cli/1.18.147 Python/2.7.18 Linux/5.4.58-37.125.amzn2int.x86_64 botocore/1.18.6 { "alias": "myScraper", "destination": { "ampConfiguration": { "workspaceArn": "arn:aws:aps:us-west-2:account-id:workspace/ws-workspace-id" } }, "source": { "eksConfiguration": { "clusterArn": "arn:aws:eks:us-west-2:account-id:cluster/cluster-name", "securityGroupIds": ["sg-security-group-id"], "subnetIds": ["subnet-subnet-id-1", "subnet-subnet-id-2"] } }, "scrapeConfiguration": { "configurationBlob": <base64-encoded-blob> } }
AWS CLI

So erstellen Sie einen Scraper unter Verwendung der AWS CLI

Verwenden Sie den create-scraper Befehl, um einen Scraper mit dem AWS CLI zu erstellen. Im folgenden Beispiel wird ein Scraper in der us-west-2 Region erstellt. Sie müssen die Informationen zu AWS-Konto, Workspace, Sicherheit und Amazon-EKS-Cluster durch Ihre eigenen IDs ersetzen und die Konfiguration angeben, die für Ihren Scraper verwendet werden soll.

Anmerkung

Die Sicherheitsgruppe und die Subnetze sollten auf die Sicherheitsgruppe und die Subnetze für den Cluster festgelegt werden, mit dem Sie eine Verbindung herstellen.

Sie müssen mindestens zwei Subnetze in mindestens zwei Availability Zones einfügen.

Das scrape-configuration ist eine Prometheus-Konfigurations-YAML-Datei, die Base64-codiert ist. Mit dem Befehl können Sie eine Allzweckkonfiguration herunterladen. get-default-scraper-configuration Weitere Hinweise zum Format von finden Sie scrape-configuration unterScraper-Konfiguration.

aws amp create-scraper \ --source eksConfiguration="{clusterArn='arn:aws:eks:us-west-2:account-id:cluster/cluster-name', securityGroupIds=['sg-security-group-id'],subnetIds=['subnet-subnet-id-1', 'subnet-subnet-id-2']}" \ --scrape-configuration configurationBlob=<base64-encoded-blob> \ --destination ampConfiguration="{workspaceArn='arn:aws:aps:us-west-2:account-id:workspace/ws-workspace-id'}"

Im Folgenden finden Sie eine vollständige Liste der Scraper-Operationen, die Sie mit der AWS API verwenden können:

  • Erstellen Sie einen Scraper mit der CreateScraper API-Operation.

  • Listen Sie Ihre vorhandenen Scraper mit der ListScrapers API-Operation auf.

  • Aktualisieren Sie den Alias, die Konfiguration oder das Ziel eines Scrapers mit der UpdateScraper API-Operation.

  • Löschen Sie einen Scraper mit der DeleteScraper API-Operation.

  • Erfahren Sie mehr über einen Scraper mit der DescribeScraper API-Operation.

  • Holen Sie sich eine allgemeine Zweckkonfiguration mit der GetDefaultScraperConfigurationAPI-Operation.

Anmerkung

Der Amazon-EKS-Cluster, den Sie scrapen, muss so konfiguriert sein, dass Amazon Managed Service für Prometheus auf die Metriken zugreifen kann. Im nächsten Thema wird beschrieben, wie Sie Ihren Cluster konfigurieren.

Cross-account einrichten

Gehen Sie wie folgt vor, um einen kontoübergreifenden Scraper zu erstellen, wenn sich Ihr Amazon EKS-Cluster und Amazon Managed Service for Prometheus Workspace in unterschiedlichen Konten befinden. Sie haben beispielsweise ein Quellkonto, das den Amazon EKS-Cluster account_id_source enthält, und ein Zielkonto, das den Amazon Managed Service für Prometheus Workspace account_id_target enthält.

Um einen Scraper in einem kontoübergreifenden Setup zu erstellen
  1. Erstellen Sie im Quellkonto eine Rolle arn:aws:iam::account_id_source:role/Source und fügen Sie die folgende Vertrauensrichtlinie hinzu.

    { "Effect": "Allow", "Principal": { "Service": [ "scraper.aps.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnEquals": { "aws:SourceArn": "scraper_ARN" }, "StringEquals": { "AWS:SourceAccount": "account_id" } } }
  2. Für jede Kombination aus Quelle (Amazon EKS-Cluster) und Ziel (Amazon Managed Service für Prometheus Workspace) müssen Sie eine Rolle erstellen arn:aws:iam::account_id_target:role/Target und die folgende Vertrauensrichtlinie mit Berechtigungen für hinzufügen. AmazonPrometheusRemoteWriteAccess

    { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account_id_source:role/Source" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "scraper_ARN" } } }
  3. Erstellen Sie einen Scraper mit der Option. --role-configuration

    aws amp create-scraper \ --source eksConfiguration="{clusterArn='arn:aws:eks:us-west-2:account-id_source:cluster/xarw,subnetIds=[subnet-subnet-id]}" \ --scrape-configuration configurationBlob=<base64-encoded-blob> \ --destination ampConfiguration="{workspaceArn='arn:aws:aps:us-west-2:account-id_target:workspace/ws-workspace-id'}"\ --role-configuration '{"sourceRoleArn":"arn:aws:iam::account-id_source:role/Source", "targetRoleArn":"arn:aws:iam::account-id_target:role/Target"}'
  4. Bestätigen Sie die Erstellung des Scrapers.

    aws amp list-scrapers { "scrapers": [ { "scraperId": "scraper-id", "arn": "arn:aws:aps:us-west-2:account_id_source:scraper/scraper-id", "roleArn": "arn:aws:iam::account_id_source:role/aws-service-role/scraper.aps.amazonaws.com/AWSServiceRoleForAmazonPrometheusScraperInternal_cc319052-41a3-4", "status": { "statusCode": "ACTIVE" }, "createdAt": "2024-10-29T16:37:58.789000+00:00", "lastModifiedAt": "2024-10-29T16:55:17.085000+00:00", "tags": {}, "source": { "eksConfiguration": { "clusterArn": "arn:aws:eks:us-west-2:account_id_source:cluster/xarw", "securityGroupIds": [ "sg-security-group-id", "sg-security-group-id" ], "subnetIds": [ "subnet-subnet_id" ] } }, "destination": { "ampConfiguration": { "workspaceArn": "arn:aws:aps:us-west-2:account_id_target:workspace/ws-workspace-id" } } } ] }

Zwischen einer Rolle RoleConfiguration und einer dienstbezogenen Rolle wechseln

Wenn Sie zu einer serviceverknüpften Rolle zurückkehren möchten, anstatt in einen Amazon Managed Service for Prometheus-Workspace RoleConfiguration zu schreiben, müssen Sie den aktualisieren UpdateScraper und einen Workspace in demselben Konto wie der Scraper ohne den bereitstellen. RoleConfiguration Die RoleConfiguration wird aus dem Scraper entfernt und die serviceverknüpfte Rolle wird verwendet.

Wenn Sie die Arbeitsbereiche im selben Konto wie der Scraper wechseln und den weiterhin verwenden möchtenRoleConfiguration, müssen Sie das Kontrollkästchen erneut angeben. RoleConfiguration UpdateScraper

Erstellen Sie einen Scraper für Arbeitsbereiche, die mit vom Kunden verwalteten Schlüsseln aktiviert sind

Um einen Scraper für die Aufnahme von Kennzahlen in einen Amazon Managed Service for Prometheus-Workspace mit vom Kunden verwalteten Schlüsseln zu erstellen, verwenden Sie den, --role-configuration wobei sowohl Quell- als auch Zielkonto auf dasselbe Konto festgelegt sind.

aws amp create-scraper \ --source eksConfiguration="{clusterArn='arn:aws:eks:us-west-2:account-id:cluster/xarw,subnetIds=[subnet-subnet_id]}" \ --scrape-configuration configurationBlob=<base64-encoded-blob> \ --destination ampConfiguration="{workspaceArn='arn:aws:aps:us-west-2:account-id:workspace/ws-workspace-id'}"\ --role-configuration '{"sourceRoleArn":"arn:aws:iam::account_id:role/Source", "targetRoleArn":"arn:aws:iam::account_id:role/Target"}'

Häufige Fehler beim Erstellen von Scrapern

Im Folgenden sind die häufigsten Probleme aufgeführt, wenn versucht wird, einen neuen Scraper zu erstellen.

  • Erforderliche AWS Ressourcen sind nicht vorhanden. Die angegebene Sicherheitsgruppe, die Subnetze und der Amazon EKS-Cluster müssen vorhanden sein.

  • Ungenügender IP-Adressraum. In jedem Subnetz, das Sie an die CreateScraper API übergeben, muss mindestens eine IP-Adresse verfügbar sein.

Ihren Amazon-EKS-Cluster konfigurieren

Ihr Amazon-EKS-Cluster muss so konfiguriert sein, dass der Scraper auf Metriken zugreifen kann. Für diese Konfiguration gibt es zwei Optionen:

  • Verwenden Sie Amazon EKS-Zugriffseinträge, um Amazon Managed Service für Prometheus-Collectors automatisch Zugriff auf Ihren Cluster zu gewähren.

  • Konfigurieren Sie Ihren Amazon EKS-Cluster manuell für verwaltetes Metrik-Scraping.

In den folgenden Themen wird jedes dieser Themen ausführlicher beschrieben.

Konfigurieren Sie Amazon EKS für den Scraper-Zugriff mit Zugriffseinträgen

Die Verwendung von Zugriffseinträgen für Amazon EKS ist der einfachste Weg, Amazon Managed Service for Prometheus Zugriff auf Scrape-Metriken aus Ihrem Cluster zu gewähren.

Der Amazon EKS-Cluster, den Sie scrapen, muss so konfiguriert sein, dass er die API-Authentifizierung zulässt. Der Cluster-Authentifizierungsmodus muss auf entweder oder API eingestellt sein. API_AND_CONFIG_MAP Dies ist in der Amazon EKS-Konsole auf der Registerkarte Zugriffskonfiguration der Cluster-Details sichtbar. Weitere Informationen finden Sie im Amazon EKS-Benutzerhandbuch unter Zulassen des Zugriffs von IAM-Rollen oder Benutzern auf das Kubernetes-Objekt in Ihrem Amazon EKS-Cluster.

Sie können den Scraper beim Erstellen des Clusters oder nach dem Erstellen des Clusters erstellen:

  • Beim Erstellen eines Clusters — Sie können diesen Zugriff konfigurieren, wenn Sie einen Amazon EKS-Cluster über die Amazon EKS-Konsole erstellen (folgen Sie den Anweisungen, um einen Scraper als Teil des Clusters zu erstellen). Daraufhin wird automatisch eine Zugriffsrichtlinie erstellt, die Amazon Managed Service for Prometheus Zugriff auf die Cluster-Metriken gewährt.

  • Hinzufügen, nachdem ein Cluster erstellt wurde — wenn Ihr Amazon EKS-Cluster bereits existiert, stellen Sie den Authentifizierungsmodus auf entweder API oder einAPI_AND_CONFIG_MAP, und für alle Scraper, die Sie über die Amazon Managed Service for Prometheus API oder CLI oder über die Amazon EKS-Konsole erstellen, wird automatisch die richtige Zugriffsrichtlinie für Sie erstellt, und die Scraper haben Zugriff auf Ihren Cluster.

Eine Zugriffsrichtlinie wurde erstellt

Wenn Sie einen Scraper erstellen und Amazon Managed Service for Prometheus eine Zugriffsrichtlinie für Sie erstellen lassen, wird die folgende Richtlinie generiert. Weitere Informationen zu Zugriffseinträgen finden Sie unter Erlauben des Zugriffs von IAM-Rollen oder Benutzern auf Kubernetes im Amazon EKS-Benutzerhandbuch.

{ "rules": [ { "effect": "allow", "apiGroups": [ "" ], "resources": [ "nodes", "nodes/proxy", "nodes/metrics", "services", "endpoints", "pods", "ingresses", "configmaps" ], "verbs": [ "get", "list", "watch" ] }, { "effect": "allow", "apiGroups": [ "extensions", "networking.k8s.io" ], "resources": [ "ingresses/status", "ingresses" ], "verbs": [ "get", "list", "watch" ] }, { "effect": "allow", "apiGroups": [ "metrics.eks.amazonaws.com" ], "resources": [ "kcm/metrics", "ksh/metrics" ], "verbs": [ "get" ] }, { "effect": "allow", "nonResourceURLs": [ "/metrics" ], "verbs": [ "get" ] } ] }

Manuelles Konfigurieren von Amazon EKS für den Scraper-Zugriff

Wenn Sie es vorziehen, den aws-auth ConfigMap zur Zugriffskontrolle auf Ihren Kubernetes-Cluster zu verwenden, können Sie Amazon Managed Service for Prometheus Scraper trotzdem Zugriff auf Ihre Metriken gewähren. Mit den folgenden Schritten erhält Amazon Managed Service for Prometheus Zugriff, um Metriken aus Ihrem Amazon EKS-Cluster zu entfernen.

Anmerkung

Weitere Informationen zu Einträgen ConfigMap und zum Zugriff auf Einträge finden Sie unter Erlauben des Zugriffs von IAM-Rollen oder Benutzern auf Kubernetes im Amazon EKS-Benutzerhandbuch.

Dieses Verfahren verwendet kubectl und die CLI. AWS Informationen zum Installieren von kubectl finden Sie unter Installieren von kubectl im Amazon-EKS-Benutzerhandbuch.

Um Ihren Amazon EKS-Cluster manuell für verwaltetes Metrik-Scraping zu konfigurieren
  1. Erstellen Sie eine Datei mit dem Namen clusterrole-binding.yml und dem folgenden Text:

    apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: aps-collector-role rules: - apiGroups: [""] resources: ["nodes", "nodes/proxy", "nodes/metrics", "services", "endpoints", "pods", "ingresses", "configmaps"] verbs: ["describe", "get", "list", "watch"] - apiGroups: ["extensions", "networking.k8s.io"] resources: ["ingresses/status", "ingresses"] verbs: ["describe", "get", "list", "watch"] - nonResourceURLs: ["/metrics"] verbs: ["get"] - apiGroups: ["metrics.eks.amazonaws.com"] resources: ["kcm/metrics", "ksh/metrics"] verbs: ["get"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: aps-collector-user-role-binding subjects: - kind: User name: aps-collector-user apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: aps-collector-role apiGroup: rbac.authorization.k8s.io
  2. Führen Sie den folgenden Befehl in Ihrem Cluster aus:

    kubectl apply -f clusterrole-binding.yml

    Dadurch werden die Cluster-Rollenbindung und die Regel erstellt. In diesem Beispiel wird aps-collector-role als Rollenname und aps-collector-user als Benutzername verwendet.

  3. Der folgende Befehl gibt Ihnen Informationen über den Scraper mit der ID. scraper-id Dies ist der Scraper, den Sie mit dem Befehl im vorherigen Abschnitt erstellt haben.

    aws amp describe-scraper --scraper-id scraper-id
  4. Suchen Sie in den Ergebnissen von describe-scraper den roleArn. Dieser hat das folgende Format:

    arn:aws:iam::account-id:role/aws-service-role/scraper.aps.amazonaws.com/AWSServiceRoleForAmazonPrometheusScraper_unique-id

    Amazon EKS benötigt ein anderes Format für diesen ARN. Sie müssen das Format des zurückgegebenen ARN anpassen, damit es im nächsten Schritt verwendet werden kann. Bearbeiten Sie es so, dass es diesem Format entspricht:

    arn:aws:iam::account-id:role/AWSServiceRoleForAmazonPrometheusScraper_unique-id

    Zum Beispiel diese ARN:

    arn:aws:iam::111122223333:role/aws-service-role/scraper.aps.amazonaws.com/AWSServiceRoleForAmazonPrometheusScraper_1234abcd-56ef-7

    Muss wie folgt umgeschrieben werden:

    arn:aws:iam::111122223333:role/AWSServiceRoleForAmazonPrometheusScraper_1234abcd-56ef-7
  5. Führen Sie den folgenden Befehl in Ihrem Cluster aus, indem Sie den überarbeiteten roleArn aus dem vorherigen Schritt sowie Ihren Clusternamen und Ihre Region verwenden:

    eksctl create iamidentitymapping --cluster cluster-name --region region-id --arn roleArn --username aps-collector-user

    Dadurch kann der Scraper mit der Rolle und dem Benutzer, die Sie in der clusterrole-binding.yml Datei erstellt haben, auf den Cluster zugreifen.

Suchen und Löschen von Scrapern

Sie können die AWS API oder die verwenden AWS CLI , um die Scraper in Ihrem Konto aufzulisten oder zu löschen.

Anmerkung

Stellen Sie sicher, dass Sie die neueste Version des AWS CLI oder SDK verwenden. Die neueste Version bietet Ihnen die neuesten Features und Funktionen sowie Sicherheitsupdates. Verwenden Sie alternativ automatisch AWS CloudShell, sodass die Befehlszeile immer auf dem neuesten Stand ist.

Die ListScrapers-API-Operation listet alle Scraper in Ihrem Konto auf.

Rufen Sie alternativ mit dem AWS CLI:

aws amp list-scrapers --region aws-region

ListScrapers gibt alle Scraper in Ihrem Konto zurück, zum Beispiel:

{ "scrapers": [ { "scraperId": "s-1234abcd-56ef-7890-abcd-1234ef567890", "arn": "arn:aws:aps:us-west-2:123456789012:scraper/s-1234abcd-56ef-7890-abcd-1234ef567890", "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/AWSServiceRoleForAmazonPrometheusScraper_1234abcd-2931", "status": { "statusCode": "DELETING" }, "createdAt": "2023-10-12T15:22:19.014000-07:00", "lastModifiedAt": "2023-10-12T15:55:43.487000-07:00", "tags": {}, "source": { "eksConfiguration": { "clusterArn": "arn:aws:eks:us-west-2:123456789012:cluster/my-cluster", "securityGroupIds": [ "sg-1234abcd5678ef90" ], "subnetIds": [ "subnet-abcd1234ef567890", "subnet-1234abcd5678ab90" ] } }, "destination": { "ampConfiguration": { "workspaceArn": "arn:aws:aps:us-west-2:123456789012:workspace/ws-1234abcd-5678-ef90-ab12-cdef3456a78" } } } ] }

Suchen Sie zum Löschen eines Scrapers mithilfe der ListScrapers-Operation die scraperId für den Scraper, den Sie löschen möchten, und verwenden Sie dann die DeleteScraper-Operation, um ihn zu löschen.

Rufen Sie alternativ mit AWS CLI dem an:

aws amp delete-scraper --scraper-id scraperId

Scraper-Konfiguration

Mit einer Scraper-Konfiguration können Sie steuern, wie Ihr Scraper Metriken erkennt und sammelt. Prometheus-compatible Sie können beispielsweise das Intervall ändern, in dem Metriken an den Workspace gesendet werden. Sie können Umetikettierung auch verwenden, um die Etiketten einer Metrik dynamisch neu zu schreiben. Die Scraper-Konfiguration ist eine YAML-Datei, die Teil der Definition des Scrapers ist.

Wenn ein neuer Scraper erstellt wird, geben Sie eine Konfiguration an, indem Sie im API-Aufruf eine Base64-codierte YAML-Datei angeben. Sie können eine allgemeine Zweckkonfigurationsdatei mit dem GetDefaultScraperConfiguration Vorgang in der API für Amazon Managed Service für Prometheus herunterladen.

Um die Konfiguration eines Scrapers zu ändern, können Sie die Operation verwenden. UpdateScraper Wenn Sie die Quelle der Metriken aktualisieren müssen (z. B. auf einen anderen Amazon EKS-Cluster), müssen Sie den Scraper löschen und ihn mit der neuen Quelle neu erstellen.

Unterstützte Konfiguration

Informationen zum Scraper-Konfigurationsformat, einschließlich einer detaillierten Aufschlüsselung der möglichen Werte, finden Sie unter Konfiguration in der Prometheus-Dokumentation. Die globalen Konfigurationsoptionen und <scrape_config> Optionen beschreiben die am häufigsten benötigten Optionen.

Da Amazon EKS der einzige unterstützte Dienst ist, wird nur die Service Discovery Config (<*_sd_config>) unterstützt. <kubernetes_sd_config>

Die vollständige Liste der zulässigen Konfigurationsabschnitte:

  • <global>

  • <scrape_config>

  • <static_config>

  • <relabel_config>

  • <metric_relabel_configs>

  • <kubernetes_sd_config>

Die Einschränkungen in diesen Abschnitten sind nach der Beispielkonfigurationsdatei aufgeführt.

Beispielkonfigurationsdatei

Im Folgenden finden Sie ein Beispiel für eine YAML-Konfigurationsdatei mit einem Scrape-Intervall von 30 Sekunden. Dieses Beispiel beinhaltet Unterstützung für die Kube-API-Server-Metriken sowie die Kube-Controller-Manager- und Kube-Scheduler-Metriken. Weitere Informationen finden Sie im Amazon EKS-Benutzerhandbuch unter Abrufen von Rohmetriken für die Steuerungsebene im Prometheus-Format.

global: scrape_interval: 30s external_labels: clusterArn: apiserver-test-2 scrape_configs: - job_name: pod_exporter kubernetes_sd_configs: - role: pod - job_name: cadvisor scheme: https authorization: type: Bearer credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - replacement: kubernetes.default.svc:443 target_label: __address__ - source_labels: [__meta_kubernetes_node_name] regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor # apiserver metrics - scheme: https authorization: type: Bearer credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token job_name: kubernetes-apiservers kubernetes_sd_configs: - role: endpoints relabel_configs: - action: keep regex: default;kubernetes;https source_labels: - __meta_kubernetes_namespace - __meta_kubernetes_service_name - __meta_kubernetes_endpoint_port_name # kube proxy metrics - job_name: kube-proxy honor_labels: true kubernetes_sd_configs: - role: pod relabel_configs: - action: keep source_labels: - __meta_kubernetes_namespace - __meta_kubernetes_pod_name separator: '/' regex: 'kube-system/kube-proxy.+' - source_labels: - __address__ action: replace target_label: __address__ regex: (.+?)(\\:\\d+)? replacement: $1:10249 # Scheduler metrics - job_name: 'ksh-metrics' kubernetes_sd_configs: - role: endpoints metrics_path: /apis/metrics.eks.amazonaws.com/v1/ksh/container/metrics scheme: https bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token relabel_configs: - source_labels: - __meta_kubernetes_namespace - __meta_kubernetes_service_name - __meta_kubernetes_endpoint_port_name action: keep regex: default;kubernetes;https # Controller Manager metrics - job_name: 'kcm-metrics' kubernetes_sd_configs: - role: endpoints metrics_path: /apis/metrics.eks.amazonaws.com/v1/kcm/container/metrics scheme: https bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token relabel_configs: - source_labels: - __meta_kubernetes_namespace - __meta_kubernetes_service_name - __meta_kubernetes_endpoint_port_name action: keep regex: default;kubernetes;https

Die folgenden Einschränkungen gelten speziell für verwaltete Collectors: AWS

  • Scrape-Intervall – In der Scraper-Konfiguration kann kein Scrape-Intervall von weniger als 30 Sekunden angegeben werden.

  • Ziele – Ziele in der static_config müssen als IP-Adressen angegeben werden.

  • DNS-Auflösung — Bezogen auf den Zielnamen ist der einzige Servername, der in dieser Konfiguration erkannt wird, der Kubernetes-API-Server. kubernetes.default.svc Alle anderen Maschinennamen müssen anhand der IP-Adresse angegeben werden.

  • Autorisierung — Lassen Sie das Feld aus, wenn keine Autorisierung erforderlich ist. Falls erforderlich, muss die Autorisierung erfolgen Bearer und auf die Datei /var/run/secrets/kubernetes.io/serviceaccount/token verweisen. Mit anderen Worten, wenn er verwendet wird, muss der Autorisierungsabschnitt wie folgt aussehen:

    authorization: type: Bearer credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    Anmerkung

    type: Bearerist die Standardeinstellung und kann daher weggelassen werden.

Fehlerbehebung der Scraper-Konfiguration

Kollektoren von Amazon Managed Service für Prometheus entdecken und scrapen automatisch Metriken. Aber wie können Sie Fehler beheben, wenn Sie in Ihrem Workspace in Amazon Managed Service für Prometheus eine Metrik nicht sehen, die Sie erwarten würden?

Wichtig

Stellen Sie sicher, dass der private Zugriff für Ihren Amazon EKS-Cluster aktiviert ist. Weitere Informationen finden Sie unter Privater Cluster-Endpunkt im Amazon EKS-Benutzerhandbuch.

Die up Metrik ist ein hilfreiches Tool. Für jeden Endpunkt, den ein Kollektor von Amazon Managed Service für Prometheus erkennt, verkauft er diese Metrik automatisch. Es gibt drei Status dieser Metrik, die Ihnen helfen können, Fehler im Kollektor zu beheben.

  • up ist nicht vorhanden – Wenn für einen Endpunkt keine up-Metrik vorhanden ist, bedeutet das, dass der Kollektor den Endpunkt nicht finden konnte.

    Wenn Sie sicher sind, dass der Endpunkt existiert, gibt es mehrere Gründe, warum der Collector ihn möglicherweise nicht finden kann.

    • Möglicherweise müssen Sie die Scrape-Konfiguration anpassen. Die Entdeckung muss relabel_config möglicherweise angepasst werden.

    • Möglicherweise liegt ein Problem mit dem für die Erkennung role verwendeten vor.

    • In der vom Amazon EKS-Cluster verwendeten Amazon VPC ist DNS möglicherweise nicht aktiviert, sodass der Collector den Endpunkt nicht finden würde.

  • upist vorhanden, aber immer 0 — Wenn up vorhanden, aber 0, dann kann der Collector den Endpunkt ermitteln, aber keine Prometheus-compatible Metriken finden.

    In diesem Fall könnten Sie versuchen, einen curl Befehl direkt für den Endpunkt zu verwenden. Sie können überprüfen, ob die Angaben korrekt sind, z. B. das Protokoll (httpoderhttps), den Endpunkt oder den Port, den Sie verwenden. Sie können auch überprüfen, ob der Endpunkt mit einer gültigen 200 Antwort antwortet und dem Prometheus-Format entspricht. Schließlich darf der Hauptteil der Antwort nicht größer als die maximal zulässige Größe sein. (Die Grenzwerte für AWS verwaltete Collectors finden Sie im folgenden Abschnitt.)

  • up ist vorhanden und größer als 0 – Wenn up vorhanden und größer als 0 ist, werden Metriken an Amazon Managed Service für Prometheus gesendet.

    Stellen Sie sicher, dass Sie in Amazon Managed Service für Prometheus (oder Ihrem alternativen Dashboard, z. B. Amazon Managed Grafana) nach den richtigen Metriken suchen. Sie können curl erneut verwenden, um nach erwarteten Daten in Ihrem /metrics Endpunkt zu suchen. Vergewissern Sie sich auch, dass Sie andere Grenzwerte nicht überschritten haben, z. B. die Anzahl der Endpunkte pro Scraper. Sie können die Anzahl der Metrik-Endpunkte überprüfen, die gescrapt werden, indem Sie die Anzahl der up Metriken überprüfen, indem Sie Folgendes verwenden. count(up)

Scraper-Einschränkungen

Die vollständig verwalteten Scraper, die von Amazon Managed Service für Prometheus bereitgestellt werden, unterliegen nur wenigen Einschränkungen.

  • Region – Ihr EKS-Cluster, Ihr Managed Scraper und Ihr Workspace in Amazon Managed Service für Prometheus müssen sich alle in derselben AWS -Region befinden.

  • Kollektoren – Sie können pro Region und Konto maximal 10 Scraper von Amazon Managed Service für Prometheus haben.

    Anmerkung

    Sie können eine Erhöhung dieses Limits anfordern, indem Sie eine Erhöhung der Quote anfordern.

  • Antwort auf Metriken – Der Hauptteil einer Antwort auf eine einzelne /metrics-Endpunktanfrage darf nicht mehr als 50 Megabyte (MB) umfassen.

  • Endpunkte pro Scraper – Ein Scraper kann maximal 30.000 Endpunkte scrapen.

  • Scrape-Intervall – In der Scraper-Konfiguration kann kein Scrape-Intervall von weniger als 30 Sekunden angegeben werden.