OpenTelemetry Collector Contrib
Você pode usar o OpenTelemetry Collector Contrib para começar a usar o OpenTelemetry no CloudWatch.
Pré-requisito
Certifique-se de que Transaction Search esteja habilitado no CloudWatch. Para obter mais informações, consulte Transaction Search.
Fazer download do OpenTelemetry Collector Contrib
Faça o download da versão mais recente da distribuição do OpenTelemetry Collector Contrib.
Instalar o OpenTelemetry Collector Contrib
Instale o OpenTelemetry Collector Contrib em qualquer sistema operacional e plataforma. Para obter mais informações, consulte Install the Collector.
Configurar as credenciais da AWS nos hosts do Amazon EC2 ou on-premises
Você pode configurar as credenciais da AWS nos hosts do Amazon EC2 ou on-premises.
- Setup IAM permissions for Amazon EC2
-
Siga o procedimento abaixo para anexar a política CloudWatchAgentServerPolicy
do IAM ao perfil do IAM da instância do Amazon EC2.
Abra o console do IAM, em https://console.aws.amazon.com/iam/.
Escolha Perfis e localize e selecione o perfil usado pela instância do Amazon EC2.
Na guia Permissões, escolha Adicionar permissões e Anexar políticas.
Usando a caixa de pesquisa, pesquise a política CloudWatchAgentServerPolicy
.
Selecione a política CloudWatchAgentServerPolicy e escolha Adicionar permissões.
- Setup IAM permissions for on-premise hosts
-
Você pode criar o usuário do IAM a ser usado para fornecer permissões aos hosts on-premises.
Abra o console do IAM, em https://console.aws.amazon.com/iam/.
Escolha Usuários, Criar usuário.
Em Detalhes do usuário, em Nome do usuário, insira um nome para o novo usuário do IAM. Esse é o nome de login para a AWS que será usado para autenticar seu host.
Escolha Próximo.
Na página Definir permissões, em Opções de permissões, escolha Anexar políticas diretamente.
Na lista de Políticas de permissões, selecione a política CloudWatchAgentServerPolicy para adicionar ao seu usuário.
Escolha Próximo.
Na página Revisar e criar, certifique-se de que você está satisfeito com o nome de usuário e que a política CloudWatchAgentServerPolicy está no Resumo de permissões.
Selecione Criar usuário.
Crie e recupere a chave secreta e a chave de acesso da AWS: no painel de navegação do console do IAM, escolha Usuários e depois selecione o nome do usuário do usuário que você criou na etapa anterior.
Na página do usuário, escolha a guia Credenciais de segurança.
Na seção Chaves de acesso, escolha Criar chave de acesso.
Em Criar chave de acesso: etapa 1, escolha Command Line Interface (CLI).
Em Criar chave de acesso: etapa 2, insira uma tag opcional e escolha Próximo.
Em Criar chave de acesso: etapa 3, selecione Baixar arquivo .csv para salvar um arquivo .csv com a chave de acesso e a chave de acesso secreta do usuário do IAM. Você precisará dessas informações para as próximas etapas.
Selecione Concluído.
Configure suas credenciais da AWS no host on-premises ao inserir o comando a seguir. Substitua ACCESS_KEY_ID e SECRET_ACCESS_ID pela chave de acesso recém-gerada e pela chave de acesso secreta do arquivo .csv que você baixou na etapa anterior.
$ aws configure
AWS Access Key ID [None]: ACCESS_KEY_ID
AWS Secret Access Key [None]: SECRET_ACCESS_ID
Default region name [None]: MY_REGION
Default output format [None]: json
Configurar as credenciais da AWS para os clusters do Amazon EKS ou do Kubernetes
Para configurar as credenciais da AWS para os clusters do Amazon EKS ou do Kubernetes para enviar telemetria para o CloudWatch, siga o procedimento abaixo.
- Setup IAM permissions for Amazon EKS
-
Crie um provedor de identidade OIDC do IAM para o cluster com o comando a seguir.
eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME}
--region ${REGION
} --approve
Atribua perfis do IAM à conta de serviço do Kubernetes para o OTel Collector usando o comando a seguir.
eksctl create iamserviceaccount \
--name ${COLLECTOR_SERVICE_ACCOUNT
}\
--namespace ${NAMESPACE
} \
--cluster ${CLUSTER_NAME
} \
--region ${REGION} \
--attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
--approve \
--override-existing-serviceaccounts
- Setup IAM permissions for Kubernetes
-
Configure suas credenciais da AWS no host on-premises ao inserir o comando a seguir. Substitua ACCESS_KEY_ID
e SECRET_ACCESS_ID
pela chave de acesso recém-gerada e pela chave de acesso secreta do arquivo .csv que você baixou na etapa anterior. Por padrão, o arquivo de credenciais é salvo em /home/user/.aws/credentials.
aws configure
AWS Access Key ID [None]: ACCESS_KEY_ID
AWS Secret Access Key [None]: SECRET_ACCESS_ID
Default region name [None]: MY_REGION
Default output format [None]: json
Edite o recurso OpenTelemetry Collector para adicionar o segredo de credenciais da AWS recém-criado usando o seguinte comando: kubectl edit OpenTelemetryCollector otel_collector
Usando o editor de arquivos, inclua as credenciais da AWS no contêiner do OpenTelemetryCollector adicionando a configuração a seguir na parte superior da implantação. Substitua o caminho /home/user/.aws/credentials
pelo local do seu arquivo local de credenciais da AWS.
spec:
volumeMounts:
- mountPath: /rootfs
volumeMounts:
- name: aws-credentials
mountPath: /root/.aws
readOnly: true
volumes:
- hostPath:
path: /home/user/.aws/credentials
name: aws-credentials
Copie e cole o conteúdo abaixo para configurar o coletor com o objetivo de enviar logs e rastreamentos ao endpoint do OTLP.
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
exporters:
otlphttp/logs:
compression: gzip
logs_endpoint: logs_otlp_endpoint
headers:
x-aws-log-group: ency_log_group
x-aws-log-stream: default
auth:
authenticator: sigv4auth/logs
otlphttp/traces:
compression: gzip
traces_endpoint: traces_otlp_endpoint
auth:
authenticator: sigv4auth/traces
extensions:
sigv4auth/logs:
region: "region
"
service: "logs"
sigv4auth/traces:
region: "region
"
service: "xray"
service:
telemetry:
extensions: [sigv4auth/logs, sigv4auth/traces]
pipelines:
logs:
receivers: [otlp]
exporters: [otlphttp/logs]
traces:
receivers: [otlp]
exporters: [otlphttp/traces]
Veja a seguir um exemplo de como enviar logs e rastreamentos usando sigv4 para us-east-1.
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
exporters:
otlphttp/logs:
compression: gzip
logs_endpoint: https://logs.us-east-1.amazonaws.com/v1/logs
headers:
x-aws-log-group: MyApplicationLogs
x-aws-log-stream: default
auth:
authenticator: sigv4auth/logs
otlphttp/traces:
compression: gzip
traces_endpoint: https://xray.us-east-1.amazonaws.com/v1/traces
auth:
authenticator: sigv4auth/traces
extensions:
sigv4auth/logs:
region: "us-east-1"
service: "logs"
sigv4auth/traces:
region: "us-east-1"
service: "xray"
service:
telemetry:
extensions: [sigv4auth/logs, sigv4auth/traces]
pipelines:
logs:
receivers: [otlp]
exporters: [otlphttp/logs]
traces:
receivers: [otlp]
exporters: [otlphttp/traces]
Configure os SDKs do OpenTelemetry com uma configuração de amostragem always_on para registrar de forma confiável 100% de extensões e obter visibilidade total das aplicações críticas com o CloudWatch Application Signals. Para obter mais informações, consulte um exemplo de configuração do sampler do SDK Java do OpenTelemetry. Para obter um exemplo sobre como configurar o OpenTelemetry Collector com o endpoint do OTLP do X-Ray, consulte o repositório de demonstração de sinais de aplicações.