Configurar a ingestão de um servidor Prometheus existente no Kubernetes no EC2 - Amazon Managed Service para Prometheus

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar a ingestão de um servidor Prometheus existente no Kubernetes no EC2

O Amazon Managed Service for Prometheus oferece suporte à ingestão de métricas de servidores Prometheus em clusters em execução no Amazon EKS e em clusters Kubernetes autogerenciados em execução no Amazon EC2. As instruções detalhadas nesta seção são para um servidor Prometheus em um cluster Amazon EKS. As etapas para um cluster Kubernetes autogerenciado no Amazon EC2 são as mesmas, exceto que você mesmo precisará configurar o provedor OIDC e os perfis do IAM para contas de serviço no cluster Kubernetes.

As instruções nesta seção usam o Helm como gerenciador de pacotes do Kubernetes.

Etapa 1: Configurar perfis do IAM para as contas de serviço

Para o método de integração que estamos documentando, é necessário usar perfis do IAM para as contas de serviço no cluster do Amazon EKS em que o servidor do Prometheus está em execução. Esses perfis também são chamadas de perfis de serviço.

Com os perfis de serviço, é possível associar um perfil do IAM a uma conta de serviço do Kubernetes. Essa conta de serviço pode então fornecer AWS permissões para os contêineres em qualquer pod que use essa conta de serviço. Para obter mais informações, consulte Perfis do IAM para contas de serviço.

Se você ainda não configurou esses perfis, siga as instruções em Configurar perfis de serviço para a ingestão de métricas de clusters do Amazon EKS para configurar os perfis.

Etapa 2: Fazer upgrade do servidor Prometheus existente usando o Helm

As instruções nesta seção incluem a configuração de gravação remota e sigv4 para autenticar e autorizar o servidor Prometheus a gravar remotamente no espaço de trabalho do Amazon Managed Service for Prometheus.

Uso do Prometheus versão 2.26.0 ou posterior

Siga estas etapas se você estiver usando um chart do Helm com imagem do servidor Prometheus da versão 2.26.0 ou posterior.

Para configurar a gravação remota de um servidor Prometheus usando o chart do Helm
  1. Crie uma nova seção de gravação remota em seu arquivo de configuração do Helm:

    • ${IAM_PROXY_PROMETHEUS_ROLE_ARN}Substitua pelo ARN do amp-iamproxy-ingest-roleque você criou em. Etapa 1: Configurar perfis do IAM para as contas de serviço O ARN do perfil deve ter o formato de arn:aws:iam::your account ID:role/amp-iamproxy-ingest-role.

    • Substitua ${WORKSPACE_ID} pela ID do seu workspace do Amazon Managed Service for Prometheus.

    • Substitua ${REGION} pela região do espaço de trabalho do Amazon Managed Service for Prometheus (como us-west-2).

    ## The following is a set of default values for prometheus server helm chart which enable remoteWrite to AMP ## For the rest of prometheus helm chart values see: https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus/values.yaml ## serviceAccounts: server: name: amp-iamproxy-ingest-service-account annotations: eks.amazonaws.com/role-arn: ${IAM_PROXY_PROMETHEUS_ROLE_ARN} server: remoteWrite: - url: https://aps-workspaces.${REGION}.amazonaws.com/workspaces/${WORKSPACE_ID}/api/v1/remote_write sigv4: region: ${REGION} queue_config: max_samples_per_send: 1000 max_shards: 200 capacity: 2500
  2. Atualize sua configuração existente do servidor Prometheus usando o Helm:

    • Substitua prometheus-chart-name pelo nome da versão do Prometheus.

    • Substitua prometheus-namespace pelo namespace Kubernetes em que seu servidor Prometheus está instalado.

    • Substitua my_prometheus_values_yaml pelo caminho para o arquivo de configuração do Helm.

    • Substitua current_helm_chart_version pela versão atual do chart do Helm do servidor Prometheus. Você pode encontrar a versão atual do gráfico usando o comando helm list.

    helm upgrade prometheus-chart-name prometheus-community/prometheus \ -n prometheus-namespace \ -f my_prometheus_values_yaml \ --version current_helm_chart_version

Usar versões anteriores do Prometheus

Siga estas etapas se você estiver usando uma versão do Prometheus anterior à 2.26.0. Essas etapas usam uma abordagem secundária, porque as versões anteriores do Prometheus não oferecem suporte nativo ao processo de AWS assinatura Signature Version 4 (SigV4).AWS

Essas instruções pressupõem que você está usando o Helm para implantar o Prometheus.

Para configurar a gravação remota de um servidor Prometheus
  1. No seu servidor Prometheus, crie uma nova configuração de gravação remota. Primeiro, crie um novo arquivo de atualização. Chamaremos o arquivo de amp_ingest_override_values.yaml.

    Adicione os valores a seguir ao arquivo YAML.

    serviceAccounts: server: name: "amp-iamproxy-ingest-service-account" annotations: eks.amazonaws.com/role-arn: "${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN}" server: sidecarContainers: - name: aws-sigv4-proxy-sidecar image: public.ecr.aws/aws-observability/aws-sigv4-proxy:1.0 args: - --name - aps - --region - ${REGION} - --host - aps-workspaces.${REGION}.amazonaws.com - --port - :8005 ports: - name: aws-sigv4-proxy containerPort: 8005 statefulSet: enabled: "true" remoteWrite: - url: http://localhost:8005/workspaces/${WORKSPACE_ID}/api/v1/remote_write

    Substitua ${REGION} pela Região do workspace do Amazon Managed Service for Prometheus.

    ${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN}Substitua pelo ARN do amp-iamproxy-ingest-roleque você criou em. Etapa 1: Configurar perfis do IAM para as contas de serviço O ARN do perfil deve ter o formato de arn:aws:iam::your account ID:role/amp-iamproxy-ingest-role.

    Substitua ${WORKSPACE_ID} pelo ID do seu workspace.

  2. Faça o upgrade do seu chart do Helm do Prometheus. Primeiro, encontre o nome do chart do Helm digitando o comando a seguir. Na saída desse comando, procure um gráfico com um nome que inclua prometheus.

    helm ls --all-namespaces

    Depois, insira o comando a seguir.

    helm upgrade --install prometheus-helm-chart-name prometheus-community/prometheus -n prometheus-namespace -f ./amp_ingest_override_values.yaml

    prometheus-helm-chart-nameSubstitua pelo nome do gráfico do leme do Prometheus retornado no comando anterior. Substitua prometheus-namespace pelo nome do seu namespace.

Download de charts do Helm

Se você ainda não tiver baixado os charts do Helm localmente, você pode usar o comando a seguir para baixá-los.

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm pull prometheus-community/prometheus --untar