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.
Tópicos
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 fornecer permissões da AWS 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
-
Crie uma nova seção de gravação remota em seu arquivo de configuração do Helm:
-
Substitua
${IAM_PROXY_PROMETHEUS_ROLE_ARN}pelo ARN do amp-iamproxy-ingest-role que você criou no Etapa 1: Configurar perfis do IAM para as contas de serviço. O ARN do perfil deve ter o formato dearn:aws:iam::.your account ID:role/amp-iamproxy-ingest-role -
Substitua
${WORKSPACE_ID}pela ID do seu espaço de trabalho do Amazon Managed Service for Prometheus. -
Substitua
${REGION}pela região do espaço de trabalho do Amazon Managed Service for Prometheus (comous-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 -
-
Atualize sua configuração existente do servidor Prometheus usando o Helm:
-
Substitua
prometheus-chart-namepelo nome da versão do Prometheus. -
Substitua
prometheus-namespacepelo namespace Kubernetes em que seu servidor Prometheus está instalado. -
Substitua
my_prometheus_values_yamlpelo caminho para o arquivo de configuração do Helm. -
Substitua
current_helm_chart_versionpela 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 upgradeprometheus-chart-nameprometheus-community/prometheus \ -nprometheus-namespace\ -fmy_prometheus_values_yaml\ --versioncurrent_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 de arquivo associado, porque as versões anteriores do Prometheus não oferecem suporte nativo ao processo de assinatura Signature Version 4 da AWS (AWS SigV4).
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
-
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_writeSubstitua
${REGION}pela Região do espaço de trabalho do Amazon Managed Service for Prometheus.Substitua
${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN}pelo ARN do amp-iamproxy-ingest-role que você criou no Etapa 1: Configurar perfis do IAM para as contas de serviço. O ARN do perfil deve ter o formato dearn:aws:iam::.your account ID:role/amp-iamproxy-ingest-roleSubstitua
${WORKSPACE_ID}pelo ID do seu espaço de trabalho. -
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-namespacesDepois, insira o comando a seguir.
helm upgrade --installprometheus-helm-chart-nameprometheus-community/prometheus -nprometheus-namespace-f ./amp_ingest_override_values.yamlSubstitua
prometheus-helm-chart-namepelo nome do chart do Helm do Prometheus retornado no comando anterior. Substituaprometheus-namespacepelo 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