Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de un recopilador gestionado AWS
Para utilizar un recopilador de Amazon Managed Service para Prometheus, se debe crear un raspador que detecte y extraiga las métricas del clúster de Amazon EKS.
-
Es posible crear un raspador como parte de la creación del clúster de Amazon EKS. Para obtener más información sobre la creación de un clúster de Amazon EKS, incluida la creación de un raspador, consulte Creación de un clúster de Amazon EKS en la Guía del usuario de Amazon EKS.
-
Puede crear su propio raspador, mediante programación con la AWS API o mediante el. AWS CLI
nota
Los espacios de trabajo de Amazon Managed Service for Prometheus creados con claves administradas por el cliente no pueden AWS usar recopiladores administrados para la ingestión.
Un recopilador de Amazon Managed Service para Prometheus recopila métricas que son compatibles con Prometheus. Para obtener más información acerca de las métricas compatibles con Prometheus, consulte ¿Cuáles son las métricas compatibles con Prometheus?.
En los temas siguientes se describe cómo crear, administrar y configurar raspadores.
Temas
Crear un raspador
Un recopilador de Amazon Managed Service para Prometheus consta de un raspador que descubre y recopila métricas de un clúster de Amazon EKS. Amazon Managed Service para Prometheus gestiona el raspador por usted y le brinda la escalabilidad, la seguridad y la fiabilidad que necesita, sin tener que gestionar usted mismo ninguna instancia, agente o raspador.
Al crear un clúster de Amazon EKS a través de la consola de Amazon EKS, se crea automáticamente un raspador. No obstante, en algunas situaciones, es posible que desee crear un raspador usted mismo. Por ejemplo, si quiere añadir un recopilador AWS gestionado a un clúster de Amazon EKS existente o si quiere cambiar la configuración de un recopilador existente.
Puede crear un raspador mediante la AWS API o el AWS CLI.
Existen algunos requisitos previos para crear su propio raspador:
-
Debe haber creado un clúster de Amazon EKS.
-
Su clúster de Amazon EKS debe tener configurado el control de acceso al punto de conexión del clúster para incluir el acceso privado. Puede incluir el privado y el público, pero debe incluir el privado.
nota
El clúster se asociará al raspador por su nombre de recurso de Amazon (ARN). Si elimina un clúster y, a continuación, crea uno nuevo con el mismo nombre, el ARN se reutilizará para el nuevo clúster. Por este motivo, el rastreador intentará recopilar métricas para el nuevo clúster. Los raspadores se eliminan por separado de la eliminación del clúster.
A continuación se muestra una lista completa de las operaciones del raspador que puede usar con la API de AWS :
-
Cree un raspador con la operación de la CreateScraperAPI.
-
Enumere sus raspadores existentes con la operación de la ListScrapersAPI.
-
Elimine un raspador con la operación de la DeleteScraperAPI.
-
Obtén más detalles sobre un raspador con la operación de la DescribeScraperAPI.
-
Obtenga una configuración de uso general para los raspadores con la operación de la GetDefaultScraperConfigurationAPI.
nota
El clúster de Amazon EKS que está recopilando debe estar configurado para permitir que Amazon Managed Service para Prometheus acceda a las métricas. En el siguiente tema se describe cómo configurar el clúster.
Errores comunes al crear raspadores
Los siguientes son los problemas más comunes al intentar crear un raspador nuevo.
-
AWS Los recursos necesarios no existen. El grupo de seguridad, la subred y el clúster de Amazon EKS especificados deben existir.
-
Espacio de direcciones IP insuficiente. Debe tener al menos una dirección IP disponible en cada subred que pase a la
CreateScraper
API.
Configuración del clúster de Amazon EKS
Su clúster de Amazon EKS debe estar configurado para permitir que el raspador acceda a las métricas. Hay dos opciones para esta configuración:
-
Utilice las entradas de acceso de Amazon EKS para proporcionar automáticamente a los coleccionistas de Amazon Managed Service for Prometheus acceso a su clúster.
-
Configure manualmente su clúster de Amazon EKS para gestionar la extracción de métricas.
En los temas siguientes se describe cada uno de ellos con más detalle.
Configure Amazon EKS para el acceso desde el raspador con entradas de acceso
El uso de entradas de acceso para Amazon EKS es la forma más sencilla de dar acceso a Amazon Managed Service for Prometheus para extraer métricas de su clúster.
El clúster de Amazon EKS que está extrayendo debe estar configurado para permitir la autenticación de la API. El modo de autenticación del clúster debe estar configurado en API
oAPI_AND_CONFIG_MAP
. Se puede ver en la consola de Amazon EKS, en la pestaña Configuración de acceso de los detalles del clúster. Para obtener más información, consulte Permitir el acceso de los usuarios o roles de IAM al objeto de Kubernetes en su clúster de Amazon EKS en la Guía del usuario de Amazon EKS.
Puede crear el raspador al crear el clúster o después de crearlo:
-
Al crear un clúster: puede configurar este acceso al crear un clúster de Amazon EKS a través de la consola de Amazon EKS (siga las instrucciones para crear un raspador como parte del clúster) y se creará automáticamente una política de entrada de acceso que permitirá a Amazon Managed Service for Prometheus acceder a las métricas del clúster.
-
Añadir después de crear un clúster: si su clúster de Amazon EKS ya existe, configure el modo de autenticación en uno
API
oAPI_AND_CONFIG_MAP
varios scrapers que cree a través de la API o CLI de Amazon Managed Service for Prometheus crearán automáticamente la política de entrada de acceso correcta para usted y los scrapers tendrán acceso a su clúster.
Se ha creado una política de acceso y entrada
Cuando creas un scraper y dejas que Amazon Managed Service for Prometheus genere una política de acceso y entrada para ti, generará la siguiente política. Para obtener más información sobre las entradas de acceso, consulte Permitir que los roles de IAM o los usuarios accedan a Kubernetes en la Guía del usuario de Amazon EKS.
{ "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", "nonResourceURLs": [ "/metrics" ], "verbs": [ "get" ] } ] }
Configuración manual de Amazon EKS para el acceso al raspador
Si prefieres usarlo para controlar el acceso aws-auth ConfigMap
a tu clúster de Kubernetes, puedes seguir dando acceso a tus métricas a los scrapers de Amazon Managed Service for Prometheus. Los siguientes pasos permitirán a Amazon Managed Service for Prometheus acceder a extraer las métricas de su clúster de Amazon EKS.
nota
Para obtener más información sobre las entradas ConfigMap
y acceder a ellas, consulte Permitir el acceso de usuarios o roles de IAM a Kubernetes en la Guía del usuario de Amazon EKS.
Este procedimiento utiliza kubectl
y la AWS CLI. Para obtener más información sobre la instalación de kubectl
, consulte Instalación de kubectl en la Guía del usuario de Amazon EKS.
Para configurar manualmente su clúster de Amazon EKS para la extracción gestionada de métricas
-
Cree un archivo denominado
clusterrole-binding.yml
con el siguiente contenido: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"] --- 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
-
Ejecute el siguiente comando para comprobar en el clúster:
kubectl apply -f clusterrole-binding.yml
Esto creará el enlace y la regla del rol del clúster. En este ejemplo se utiliza
aps-collector-role
como el nombre de rol yaps-collector-user
como el nombre de clave. -
El siguiente comando proporciona información sobre el raspador con el ID
scraper-id
. Este es el raspador que creó con el comando de la sección anterior.aws amp describe-scraper --scraper-id
scraper-id
-
En los resultados de
describe-scraper
, busqueroleArn
. Este tendrá el siguiente formato:arn:aws:iam::
account-id
:role/aws-service-role/scraper.aps.amazonaws.com/AWSServiceRoleForAmazonPrometheusScraper_unique-id
Amazon EKS requiere un formato diferente para este ARN. Debe ajustar el formato del ARN devuelto para usarlo en el siguiente paso. Edítelo para que coincida con este formato:
arn:aws:iam::
account-id
:role/AWSServiceRoleForAmazonPrometheusScraper_unique-id
Por ejemplo, este ARN:
arn:aws:iam::111122223333:role/aws-service-role/scraper.aps.amazonaws.com/AWSServiceRoleForAmazonPrometheusScraper_1234abcd-56ef-7
Debe reescribirse como:
arn:aws:iam::111122223333:role/AWSServiceRoleForAmazonPrometheusScraper_1234abcd-56ef-7
-
Ejecute el siguiente comando en el clúster, utilizando el
roleArn
modificado del paso anterior, así como el nombre y la región del clúster:eksctl create iamidentitymapping --cluster
cluster-name
--regionregion-id
--arnroleArn
--username aps-collector-userEsto permite que el raspador acceda al clúster mediante el rol y el usuario que creó en el archivo
clusterrole-binding.yml
.
Buscar y eliminar raspadores
Puede utilizar la AWS API o la AWS CLI para enumerar los scrapers de su cuenta o eliminarlos.
nota
Asegúrese de utilizar la versión más reciente del AWS CLI o del SDK. La última versión le proporciona las funciones y funciones más recientes, así como actualizaciones de seguridad. Como alternativa, puedes usar AWS Cloudshell, que proporciona una experiencia de línea de up-to-date comandos permanente y automática.
Para ver todos los scrapers de tu cuenta, usa la ListScrapersoperación API.
O bien, con el AWS CLI comando, llama a:
aws amp list-scrapers
ListScrapers
devuelve todos los raspadores de su cuenta, por ejemplo:
{ "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" } } } ] }
Para eliminar un raspador, scraperId
busque el raspador que desea eliminar mediante la ListScrapers
operación y, a continuación, utilice la DeleteScraperoperación para eliminarlo.
Como alternativa, con la AWS CLI, llama a:
aws amp delete-scraper --scraper-id
scraperId
Configuración del raspador
Puede controlar la forma en que su raspador descubre y recopila las métricas con una configuración de raspador compatible con Prometheus. Por ejemplo, puede cambiar el intervalo en el que se envían las métricas al espacio de trabajo. También puede usar el reetiquetado para reescribir dinámicamente las etiquetas de una métrica. La configuración del raspador es un archivo YAML que forma parte de la definición del raspador.
Cuando se crea un nuevo raspador, se especifica una configuración proporcionando un archivo YAML codificado en base64 en la llamada a la API. Puede descargar un archivo de configuración de uso general con la operación GetDefaultScraperConfiguration
en la API de Amazon Managed Service para Prometheus.
Para modificar la configuración de un raspador, elimínelo y vuelva a crearlo con la nueva configuración.
Configuración compatible
Para obtener información sobre el formato de configuración del raspador, incluido un desglose detallado de los valores posibles, consulte Configuración<scrape_config>
describen las opciones que se necesitan con más frecuencia.
Dado que Amazon EKS es el único servicio compatible, el único servicio discovery config (<*_sd_config>
) que se admite es el<kubernetes_sd_config>
.
La lista completa de secciones de configuración permitidas:
-
<global>
-
<scrape_config>
-
<static_config>
-
<relabel_config>
-
<metric_relabel_configs>
-
<kubernetes_sd_config>
Las limitaciones de estas secciones se enumeran después del archivo de configuración de ejemplo.
Archivo de configuración de muestra
A continuación se muestra un ejemplo de archivo de configuración de YAML con un intervalo de raspado de 30 segundos.
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
Las siguientes son limitaciones específicas de los recopiladores AWS gestionados:
-
Intervalo de raspado: la configuración del raspador no puede especificar un intervalo de raspado inferior a 30 segundos.
-
Objetivos: los objetivos de
static_config
deben especificarse como direcciones IP. -
Autorización: omítala si no se necesita ninguna autorización. Si es necesaria, la autorización debe ser
Bearer
y debe apuntar al archivo/var/run/secrets/kubernetes.io/serviceaccount/token
. En otras palabras, si se utiliza, la sección de autorización debe tener el siguiente aspecto:authorization: type: Bearer credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
nota
type: Bearer
es el valor predeterminado, por lo que se puede omitir.
Solución de problemas de configuración del raspador
Los recopiladores de Amazon Managed Service para Prometheus descubren y raspan métricas automáticamente. Pero, ¿cómo puede solucionar los problemas si no ve una métrica que esperaba ver en su espacio de trabajo de Amazon Managed Service para Prometheus?
La métrica up
es una herramienta útil. Esta métrica se proporciona automáticamente para cada punto de conexión que descubre un recopilador de Amazon Managed Service para Prometheus. Hay tres estados de esta métrica que pueden ayudarte a solucionar los problemas que se producen en el recopilador.
-
up
no está presente: si no hay ninguna métricaup
para un punto de conexión, significa que el recopilador no ha podido encontrar el punto de conexión.Si tiene claro que el punto de conexión existe, es probable que necesite ajustar la configuración de raspado. Es posible que sea necesario ajustar la detección de
relabel_config
o que haya un problema con elrole
utilizado para la detección. -
up
está presente, pero siempre es 0: siup
está presente, pero es 0, el recopilador podrá detectar el punto de conexión, pero no podrá encontrar ninguna métrica compatible con Prometheus.En este caso, puede intentar utilizar un comando
curl
directamente según el punto de conexión. Puede validar que tiene los detalles correctos, por ejemplo, el protocolo (http
ohttps
), el punto final o el puerto que está utilizando. También puede comprobar que el punto final responde con una200
respuesta válida y sigue el formato de Prometheus. Por último, el cuerpo de la respuesta no puede superar el tamaño máximo permitido. (Para conocer los límites de los recopiladores AWS gestionados, consulte la siguiente sección). -
up
está presente y es superior a 0: siup
está presente y es superior a 0, las métricas se envían a Amazon Managed Service para Prometheus.Valide que está buscando las métricas correctas en Amazon Managed Service para Prometheus (o en su panel alternativo, como Amazon Managed Grafana). Puede volver a usar curl para comprobar los datos esperados en su punto de conexión
/metrics
. Compruebe también que no ha superado otros límites, como el número de puntos de conexión por raspador. Puedes comprobar el número de puntos finales de las métricas que se están recopilando comprobando el recuento deup
métricas, utilizando.count(up)
Limitaciones del raspador
Los raspadores totalmente gestionados que ofrece Amazon Managed Service para Prometheus presentan pocas limitaciones.
-
Región: el clúster de EKS, el raspador administrado y el espacio de trabajo de Amazon Managed Service para Prometheus deben estar en la misma región de AWS .
-
Cuenta: el clúster de EKS, el raspador administrado y el espacio de trabajo de Amazon Managed Service para Prometheus deben estar en la misma ubicación de Cuenta de AWS.
-
Recopiladores: puede tener un máximo de 10 raspadores de Amazon Managed Service para Prometheus por región y cuenta.
nota
Puede solicitar un aumento de este límite solicitando un aumento de cuota
. -
Respuesta de métricas: el cuerpo de la respuesta de cualquier solicitud de punto de conexión
/metrics
no puede tener más de 50 megabytes (MB). -
Puntos de conexión por raspador: un raspador puede raspar un máximo de 30 000 puntos de conexión
/metrics
. -
Intervalo de raspado: la configuración del raspador no puede especificar un intervalo de raspado inferior a 30 segundos.