

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á.

# Usar uma instância do Prometheus como coletor
<a name="AMP-ingest-with-prometheus"></a>

Você pode usar uma instância do Prometheus em execução no modo *atendente* (conhecido como *agente do Prometheus*) para extrair métricas e enviá-las ao seu espaço de trabalho do Amazon Managed Service for Prometheus.

Os tópicos a seguir descrevem maneiras diferentes de configurar uma instância do Prometheus em execução no modo Agente como um coletor para as métricas.

**Atenção**  
Ao criar um atendente do Prometheus, você é responsável pela respectiva configuração e manutenção. [Habilite os recursos de segurança](https://prometheus.io/docs/prometheus/latest/configuration/https/) para evitar expor os endpoints de extração do Prometheus à Internet pública.

Se você configurou várias instâncias do Prometheus que monitoram o mesmo conjunto de métricas e as enviou para um único espaço de trabalho do Amazon Managed Service for Prometheus para obter alta disponibilidade, você precisará configurar a desduplicação. Se não seguir as etapas para configurar a desduplicação, você será cobrado por todas as amostras de dados enviadas ao Amazon Managed Service for Prometheus, incluindo amostras duplicadas. Para ver instruções sobre como configurar a desduplicação, consulte [Eliminar a duplicação de métricas de alta disponibilidade enviadas para o Amazon Managed Service for Prometheus](AMP-ingest-dedupe.md).

**Topics**
+ [Configurar a ingestão de um novo servidor Prometheus usando o Helm](AMP-onboard-ingest-metrics-new-Prometheus.md)
+ [Configurar a ingestão de um servidor Prometheus existente no Kubernetes no EC2](AMP-onboard-ingest-metrics-existing-Prometheus.md)
+ [Configurar a ingestão de um servidor Prometheus existente no Kubernetes no Fargate](AMP-onboard-ingest-metrics-existing-Prometheus-fargate.md)

# Configurar a ingestão de um novo servidor Prometheus usando o Helm
<a name="AMP-onboard-ingest-metrics-new-Prometheus"></a>

As instruções nesta seção permitem que você comece a usar o Amazon Managed Service for Prometheus rapidamente. Você configura um novo servidor Prometheus em um cluster do Amazon EKS, e o novo servidor usa uma configuração padrão para enviar métricas para o Amazon Managed Service for Prometheus. Este método tem os seguintes pré-requisitos:
+ Você deve ter um cluster do Amazon EKS do qual o novo servidor do Prometheus coletará métricas.
+ Seu cluster do Amazon EKS deve ter um [driver do Amazon EBS CSI](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) instalado (necessário ao Helm).
+ Você deve usar a CLI do Helm 3.0 ou posterior.
+ Você deve usar um computador Linux ou macOS para executar as etapas nas seções a seguir.

## Etapa 1: Adicionar novos repositórios de charts do Helm
<a name="AMP-onboard-new-Prometheus-HelmRepo"></a>

Insira os comandos a seguir para adicionar novos repositórios de charts do Helm. Para obter mais informações sobre esses comandos, consulte o [Repositório do Helm](https://helm.sh/docs/helm/helm_repo/).

```
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo add kube-state-metrics https://kubernetes.github.io/kube-state-metrics
helm repo update
```

## Etapa 2: Criar um namespace do Prometheus
<a name="AMP-onboard-new-Prometheus-namespace"></a>

Digite o comando a seguir para criar um namespace do Prometheus para o servidor Prometheus e outros componentes de monitoramento. *prometheus-namespace*Substitua pelo nome que você deseja para esse namespace.

```
kubectl create namespace prometheus-namespace
```

## Etapa 3: Configurar perfis do IAM para as contas de serviço
<a name="AMP-onboard-new-Prometheus-IRSA"></a>

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. 

Com os perfis do IAM para contas 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](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html).

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](set-up-irsa.md#set-up-irsa-ingest) para configurar os perfis. As instruções nessa seção exigem o uso do `eksctl`. Para obter mais informações, consulte [Conceitos básicos do Amazon Elastic Kubernetes Service – `eksctl`](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html). 

**nota**  
Quando você não está usando o EKS ou AWS está usando apenas a chave de acesso e a chave secreta para acessar o Amazon Managed Service para Prometheus, você não pode usar `EKS-IAM-ROLE` o SigV4 baseado.

## Etapa 4: Configurar o novo servidor e começar a ingerir métricas
<a name="AMP-onboard-ingest-metrics-new-Prometheus-Helm"></a>

Para instalar o novo servidor Prometheus que envia métricas para seu espaço de trabalho do Amazon Managed Service for Prometheus, siga estas etapas.

**Instalar o novo servidor Prometheus que envia métricas para seu espaço de trabalho do Amazon Managed Service for Prometheus**

1. Use um editor de textos para criar um arquivo chamado `my_prometheus_values_yaml` com o conteúdo a seguir.
   + *IAM\$1PROXY\$1PROMETHEUS\$1ROLE\$1ARN*Substitua pelo ARN do **amp-iamproxy-ingest-role**que você criou em. [Configurar perfis de serviço para a ingestão de métricas de clusters do Amazon EKS](set-up-irsa.md#set-up-irsa-ingest)
   + *WORKSPACE\$1ID*Substitua pelo ID do seu espaço de trabalho do Amazon Managed Service for Prometheus.
   + *REGION*Substitua pela região do seu espaço de trabalho do Amazon Managed Service for Prometheus.

   ```
   ## 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
   ```

1. Insira o comando a seguir para criar o servidor Prometheus.
   + Substitua *prometheus-chart-name* pelo nome da versão do Prometheus.
   + *prometheus-namespace*Substitua pelo nome do seu namespace Prometheus.

   ```
   helm install prometheus-chart-name prometheus-community/prometheus -n prometheus-namespace \
   -f my_prometheus_values_yaml
   ```
**nota**  
É possível personalizar o comando `helm install` de várias maneiras. Para obter mais informações, consulte [Helm install](https://helm.sh/docs/helm/helm_install/) na *documentação do Helm*.

# Configurar a ingestão de um servidor Prometheus existente no Kubernetes no EC2
<a name="AMP-onboard-ingest-metrics-existing-Prometheus"></a>

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.

**Topics**
+ [Etapa 1: Configurar perfis do IAM para as contas de serviço](#AMP-onboard-existing-Prometheus-IRSA)
+ [Etapa 2: Fazer upgrade do servidor Prometheus existente usando o Helm](#AMP-onboard-ingest-metrics-existing-remotewrite)

## Etapa 1: Configurar perfis do IAM para as contas de serviço
<a name="AMP-onboard-existing-Prometheus-IRSA"></a>

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](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html).

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](set-up-irsa.md#set-up-irsa-ingest) para configurar os perfis.

## Etapa 2: Fazer upgrade do servidor Prometheus existente usando o Helm
<a name="AMP-onboard-ingest-metrics-existing-remotewrite"></a>

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
<a name="AMP-onboard-ingest-metrics-Helm13"></a>

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-role**que você criou em. [Etapa 1: Configurar perfis do IAM para as contas de serviço](#AMP-onboard-existing-Prometheus-IRSA) 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 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 (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
   ```

1. 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](https://helm.sh/docs/helm/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
<a name="AMP-onboard-ingest-metrics-Helm8"></a>

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 espaço de trabalho do Amazon Managed Service for Prometheus.

   `${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN}`Substitua pelo ARN do **amp-iamproxy-ingest-role**que você criou em. [Etapa 1: Configurar perfis do IAM para as contas de serviço](#AMP-onboard-existing-Prometheus-IRSA) 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 espaço de trabalho.

1. 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-name*Substitua 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
<a name="AMP-onboard-ingest-downloadHelm"></a>

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
```

# Configurar a ingestão de um servidor Prometheus existente no Kubernetes no Fargate
<a name="AMP-onboard-ingest-metrics-existing-Prometheus-fargate"></a>

O Amazon Managed Service for Prometheus oferece suporte à ingestão de métricas de servidores Prometheus em clusters Kubernetes autogerenciados em execução no Fargate. Para ingerir métricas dos servidores Prometheus em clusters Amazon EKS executados no Fargate, substitua as configurações padrão em um arquivo de configuração chamado amp\$1ingest\$1override\$1values.yaml da seguinte forma:

```
prometheus-node-exporter:
        enabled: false
    
    alertmanager:
        enabled: false
    
    serviceAccounts:
      server:
        name: amp-iamproxy-ingest-service-account
        annotations: 
          eks.amazonaws.com/role-arn: ${IAM_PROXY_PROMETHEUS_ROLE_ARN}
    
    server:
      persistentVolume:
        enabled: false
      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
```

Instalar o Prometheus usando as sobreposições com o seguinte comando:

```
helm install prometheus-for-amp prometheus-community/prometheus \
                   -n prometheus \
                   -f amp_ingest_override_values.yaml
```

Observe que, na configuração do chart do Helm, desativamos o exportador de nós e o gerenciador de alertas, além de executar a implantação do servidor Prometheus.

Você pode verificar a instalação com o exemplo de consulta de teste a seguir.

```
$ awscurl --region region --service aps "https://aps-workspaces.region_id.amazonaws.com/workspaces/workspace_id/api/v1/query?query=prometheus_api_remote_read_queries"
    {"status":"success","data":{"resultType":"vector","result":[{"metric":{"__name__":"prometheus_api_remote_read_queries","instance":"localhost:9090","job":"prometheus"},"value":[1648461236.419,"0"]}]}}21
```