OpenTelemetry Collector Contrib
Puede usar OpenTelemetry Collector Contrib para empezar a usar OpenTelemetry en CloudWatch.
Requisito previo
Asegúrese de que Transaction Search esté habilitado en CloudWatch. Para obtener más información, consulte Transaction Search.
Descarga de OpenTelemetry Collector Contrib
Descargue la última versión de la distribución de OpenTelemetry Collector Contrib.
Instalación de OpenTelemetry Collector Contrib
Instale OpenTelemetry Collector Contrib en cualquier sistema operativo y plataforma. Para obtener más información, consulte Install the Collector.
Configuración de las credenciales de AWS en los hosts en las instalaciones o Amazon EC2
Puede configurar las credenciales de AWS en los hosts en las instalaciones o Amazon EC2.
- Setup IAM permissions for Amazon EC2
-
Siga el procedimiento que se indica a continuación para adjuntar la política de IAM CloudWatchAgentServerPolicy
al rol de IAM de la instancia de Amazon EC2.
Abra la consola de IAM en https://console.aws.amazon.com/iam/.
Elija Roles y busque y seleccione el rol que usa la instancia de Amazon EC2.
En la pestaña Permisos, elija Agregar permisos, Vincular políticas.
En el cuadro de búsqueda, busque la política CloudWatchAgentServerPolicy
.
Seleccione la política CloudWatchAgentServerPolicy y elija Agregar permisos.
- Setup IAM permissions for on-premise hosts
-
Puede crear un usuario de IAM que se puede utilizar para conceder los permisos a los hosts en las instalaciones.
Abra la consola de IAM en https://console.aws.amazon.com/iam/.
Seleccione Usuarios, Crear nuevos usuarios.
En Detalles del usuario, en Nombre de usuario, introduzca un nombre para el nuevo usuario de IAM. Este es su nombre de inicio de sesión de AWS y lo utilizará para autenticar su host.
Elija Siguiente.
En la página Establecer permisos, en Opciones de permisos, seleccione Adjuntar políticas directamente.
En la lista de Políticas de permisos, seleccione la política CloudWatchAgentServerPolicy para agregarla a su usuario.
Elija Siguiente.
En la página Revisar y crear, asegúrese de que haya decidido satisfactoriamente el nombre de usuario y de que la política CloudWatchAgentServerPolicy aparezca en Resumen de permisos.
Seleccione la opción Crear un usuario.
Cree y recupere su clave de acceso y su clave secreta de AWS: en el panel de navegación de la consola de IAM, elija Usuarios y, a continuación, seleccione el nombre de usuario que creó en el paso anterior.
En la página del usuario, seleccione la pestaña Credenciales de seguridad.
En la sección Claves de acceso, elija Crear clave de acceso.
En el paso 1 de Crear clave de acceso, elija Interfaz de línea de comandos (CLI).
En el Paso 2 de Crear clave de acceso, como opción, introduzca una etiqueta y seleccione Siguiente.
En el Paso 3 de Crear clave de acceso, seleccione Descargar archivo .csv para guardar un archivo .cvs con la clave de acceso y la clave de acceso secreta de su usuario de IAM. Necesita esta información para los siguientes pasos.
Seleccione Listo.
Introduzca el siguiente comando para configurar sus credenciales de AWS en su host en las instalaciones. Sustituya ACCESS_KEY_ID y SECRET_ACCESS_ID por la clave de acceso y la clave de acceso secreta generadas recientemente y que se encuentran en archivo .csv que descargó en el paso 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
Configuración de las credenciales de AWS para los clústeres de Amazon EKS o Kubernetes
Para configurar las credenciales de AWS de los clústeres de Amazon EKS o Kubernetes para enviar telemetría a CloudWatch, siga el procedimiento que se indica a continuación.
- Setup IAM permissions for Amazon EKS
-
Cree un proveedor de identidades de OIDC de IAM para el clúster mediante el siguiente comando.
eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME}
--region ${REGION
} --approve
Asigne roles de IAM a la cuenta de servicio de Kubernetes para OTel Collector mediante el siguiente comando.
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
-
Introduzca el siguiente comando para configurar sus credenciales de AWS en su host en las instalaciones. Sustituya ACCESS_KEY_ID
y SECRET_ACCESS_ID
por la clave de acceso y la clave de acceso secreta generadas recientemente y que se encuentran en archivo .csv que descargó en el paso anterior. De forma predeterminada, el archivo de credenciales se guarda en /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 el recurso de OpenTelemetry Collector para agregar el secreto de credenciales de AWS creado recientemente mediante el comando kubectl edit OpenTelemetryCollector otel_collector
.
Con el editor de archivos, agregue la siguiente configuración en la parte superior de la implementación para agregar las credenciales de AWS en el contenedor de OpenTelemetry Collector. Sustituya la ruta /home/user/.aws/credentials
por la ubicación del archivo local de credenciales de 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 y pegue el contenido siguiente para configurar el recopilador de modo que envíe los registros y rastros al punto de conexión del 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]
A continuación se muestra un ejemplo de envío de registros y rastros mediante sigv4 a 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 los SDK de OpenTelemetry con una configuración de muestreo always_on para registrar de forma fiable el 100 % de las unidades de seguimiento y obtener una visibilidad total de las aplicaciones críticas con CloudWatch Application Signals. Para obtener más información, consulte un ejemplo de Configuración de una muestra del SDK de Java de OpenTelemetry. Para ver un ejemplo sobre cómo configurar OpenTelemetry Collector con un punto de conexión de OTLP de X-Ray, consulte el repositorio application signals demo.