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.
Themen
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.
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
-
Erstellen Sie im Quellkonto eine Rolle
arn:aws:iam::und fügen Sie die folgende Vertrauensrichtlinie hinzu.account_id_source:role/Source{ "Effect": "Allow", "Principal": { "Service": [ "scraper.aps.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnEquals": { "aws:SourceArn": "scraper_ARN" }, "StringEquals": { "AWS:SourceAccount": "account_id" } } } -
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::und die folgende Vertrauensrichtlinie mit Berechtigungen für hinzufügen. AmazonPrometheusRemoteWriteAccessaccount_id_target:role/Target{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account_id_source:role/Source" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "scraper_ARN" } } } -
Erstellen Sie einen Scraper mit der Option.
--role-configurationaws 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"}' -
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
CreateScraperAPI ü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
APIoder 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
-
Erstellen Sie eine Datei mit dem Namen
clusterrole-binding.ymlund 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 -
Führen Sie den folgenden Befehl in Ihrem Cluster aus:
kubectl apply -f clusterrole-binding.ymlDadurch werden die Cluster-Rollenbindung und die Regel erstellt. In diesem Beispiel wird
aps-collector-roleals Rollenname undaps-collector-userals Benutzername verwendet. -
Der folgende Befehl gibt Ihnen Informationen über den Scraper mit der ID.
scraper-idDies ist der Scraper, den Sie mit dem Befehl im vorherigen Abschnitt erstellt haben.aws amp describe-scraper --scraper-idscraper-id -
Suchen Sie in den Ergebnissen von
describe-scraperdenroleArn. Dieser hat das folgende Format:arn:aws:iam::account-id:role/aws-service-role/scraper.aps.amazonaws.com/AWSServiceRoleForAmazonPrometheusScraper_unique-idAmazon 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-idZum Beispiel diese ARN:
arn:aws:iam::111122223333:role/aws-service-role/scraper.aps.amazonaws.com/AWSServiceRoleForAmazonPrometheusScraper_1234abcd-56ef-7Muss wie folgt umgeschrieben werden:
arn:aws:iam::111122223333:role/AWSServiceRoleForAmazonPrometheusScraper_1234abcd-56ef-7 -
Führen Sie den folgenden Befehl in Ihrem Cluster aus, indem Sie den überarbeiteten
roleArnaus dem vorherigen Schritt sowie Ihren Clusternamen und Ihre Region verwenden:eksctl create iamidentitymapping --clustercluster-name--regionregion-id--arnroleArn--username aps-collector-userDadurch kann der Scraper mit der Rolle und dem Benutzer, die Sie in der
clusterrole-binding.ymlDatei 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 --regionaws-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-idscraperId
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 <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_configmü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.svcAlle 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
Bearerund auf die Datei/var/run/secrets/kubernetes.io/serviceaccount/tokenverweisen. Mit anderen Worten, wenn er verwendet wird, muss der Autorisierungsabschnitt wie folgt aussehen:authorization: type: Bearer credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/tokenAnmerkung
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.
-
upist nicht vorhanden – Wenn für einen Endpunkt keineup-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_configmöglicherweise angepasst werden. -
Möglicherweise liegt ein Problem mit dem für die Erkennung
roleverwendeten 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 — Wennupvorhanden, aber 0, dann kann der Collector den Endpunkt ermitteln, aber keine Prometheus-compatible Metriken finden.In diesem Fall könnten Sie versuchen, einen
curlBefehl 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ültigen200Antwort 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.) -
upist vorhanden und größer als 0 – Wennupvorhanden 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
/metricsEndpunkt 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 derupMetriken ü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.