Si tiene servicios que se ejecutan en el contenedor docker en Amazon ECS y son compatibles, puede habilitar esa integración a través de nuestra integración ECS. Esto informa datos de sus servicios de monitor, del host y del contenedor.
Requisitos
Para monitor los servicios que se ejecutan en ECS, debe cumplir con estos requisitos:
Un servicio compatible que se ejecuta en ECS y que cumple con nuestros requisitos. Los servicios compatibles incluyen:
Un clúster ECS de escalamiento automático que ejecuta Amazon Linux, CentOS o RHEL que cumple con los requisitos y la compatibilidad del agente de infraestructura.
Las tareas de ECS deben tener el modo de red configurado en
none
obridge
(awsvpc
yhost
no son compatibles).
Limitaciones:
- Para este método de instalación, nuestra integración RabbitMQ y Apache no reportan datos de inventario.
- AWS Fargate no es compatible.
Cómo habilitar
Antes de explicar cómo habilitar el monitoreo de los servicios que se ejecutan en ECS, aquí hay una descripción general del proceso:
- Habilite Amazon EC2 para instalar nuestro agente de infraestructura en su clúster ECS.
- Habilite el monitoreo de servicios utilizando un archivo de configuración específico del servicio.
Paso 1: Habilite EC2 para instalar el agente de infraestructura
Primero, debe habilitar Amazon EC2 para instalar nuestro agente de infraestructura en el clúster ECS. Para hacer esto, primero deberá actualizar sus datos de usuario para instalar el agente de infraestructura en el lanzamiento.
Aquí hay instrucciones para cambiar la configuración de lanzamiento de EC2 (tomada de la documentaciónAmazon EC2 ):
Abra la consola de Amazon EC2.
En el panel de navegación, en Auto scaling, elija Launch configurations.
En la página siguiente, seleccione la configuración de lanzamiento que desea actualizar.
Haga clic derecho y seleccione Copy launch configuration.
En la pestaña Launch configuration details, haga clic en Edit details.
Reemplace los datos del usuario con uno de los siguientes fragmentos:
Elija Skip to review.
Elija Create launch configuration.
A continuación, actualice el grupo de escalado automático:
Abra la consola de Amazon EC2.
En el panel de navegación, en
Auto scaling
, elija
Auto scaling groups
.
Seleccione el grupo de escalado automático que desea actualizar.
En el menú
Actions
, elija
Edit
.
En el menú desplegable de
Launch configuration
, seleccione la nueva configuración de lanzamiento creada.
Haga clic en
Save
.
Para probar si el agente detecta automáticamente la instancia, finalice una instancia EC2 en el grupo de escalado automático: la instancia de reemplazo ahora se lanzará con los datos del nuevo usuario. Después de cinco minutos, deberías ver los datos del nuevo host en la página Hosts.
A continuación se pasa a habilitar el monitoreo de servicios.
Paso 2: Habilitar el monitoreo de servicios
Una vez que haya habilitado EC2 para ejecutar el agente de infraestructura, el agente comienza a monitorear el contenedor que se ejecuta en ese host.
A continuación, explicaremos cómo monitor el despliegue de servicios en ECS. Por ejemplo, puede monitor una tarea ECS que contenga una instancia NGINX que se encuentra frente a su servidor de aplicaciones.
Aquí hay una breve descripción general de cómo monitor el despliegue de un servicio compatible en ECS:
- Cree un archivo de configuración YAML para el servicio que desea monitor. Eventualmente, esto se colocará en la sección de datos del usuario de EC2 a través de la consola de AWS. Pero antes de hacer eso, puede probar que la configuración funciona colocando ese archivo en la carpeta del agente de infraestructura (
etc/newrelic-infra/integrations.d
) en EC2. Ese archivo de configuración debe usar nuestro formato de descubrimiento automático de contenedores, que le permite encontrar el contenedor automáticamente. Las opciones de configuración exactas dependerán de la integración específica. - Verifique que los datos del servicio se informen a New Relic.
- Si está satisfecho con los datos que ve, puede usar la consola EC2 para agregar esa configuración a la configuración de lanzamiento adecuada, en la sección
write_files
, y luego actualizar el grupo de escalado automático. - En la sección
runcmd
, agregue el comandoyum
para instalar la integración en la configuración de lanzamiento adecuada.
A continuación se muestra un ejemplo detallado de cómo realizar el procedimiento anterior para NGINX:
Asegúrese de tener acceso SSH al servidor o acceso a AWS Systems Manager Session Manager. log sesión en el host que ejecuta el agente de infraestructura.
A través de la línea de comando, cambie el directorio a la carpeta de configuración de integración:
bash$cd /etc/newrelic-infra/integrations.dCree un archivo llamado
nginx-config.yml
y agregue el siguiente fragmento:---discovery:docker:match:image: /nginx/integrations:- name: nri-nginxenv:STATUS_URL: http://${'${discovery.ip}'}:/statusREMOTE_MONITORING: trueMETRICS: 1Esta configuración hace que el agente de infraestructura busque un contenedor en ECS que contenga
nginx
. Una vez que un contenedor coincide, se conecta a la página de estado de NGINX. Para obtener detalles sobre cómo funciona el fragmentodiscovery.ip
, consulte descubrimiento automático. Para obtener detalles sobre la configuración general de NGINX, consulte la integración de NGINX.Si su página de estado de NGINX está configurada para atender solicitudes del
STATUS_URL
en el puerto 80, el agente de infraestructura comienza a monitorearla. Después de cinco minutos, verifique que los datos de NGINX aparezcan en nuestra UI de infraestructura (ya sea: one.newrelic.com > All capabilities > Infrastructure > Third party services o one.newrelic.com > All capabilities > Infrastructure > Third-party services).Si la configuración funciona, colóquela en la configuración de lanzamiento de EC2:
Abra la consola de Amazon EC2.
En el panel de navegación, en Auto scaling, elija Launch configurations.
En la página siguiente, seleccione la configuración de lanzamiento que desea actualizar.
Haga clic derecho y seleccione Copy launch configuration.
En la pestaña Launch configuration details, haga clic en Edit details.
En la sección User data, edite la sección
write_files
(en la parte marcada comotext/cloud-config
).Agregue una nueva entrada de archivo/contenido:
- content: |---discovery:docker:match:image: /nginx/integrations:- name: nri-nginxenv:STATUS_URL: http://${'${discovery.ip}'}:/statusREMOTE_MONITORING: trueMETRICS: 1path: /etc/newrelic-infra/integrations.d/nginx-config.ymlEdite también la sección
runcmd
para incluir el comandoyum
para instalarnri-nginx
:runcmd:- [ yum, install, newrelic-infra, -y ]- [ yum, install, nri-nginx, -y ]- [ systemctl, daemon-reload ]- [ systemctl, enable, newrelic-infra.service ]- [ systemctl, start, --no-block, newrelic-infra.service ]
Elija Skip to review.
Elija Create launch configuration.
A continuación, actualice el grupo de escalado automático:
Abra la consola de Amazon EC2.
En el panel de navegación, en
Auto scaling
, elija
Auto scaling groups
.
Seleccione el grupo de escalado automático que desea actualizar.
En el menú
Actions
, elija
Edit
.
En el menú desplegable de
Launch configuration
, seleccione la nueva configuración de lanzamiento creada.
Haga clic en
Save
.
Cuando se finaliza una instancia EC2, se reemplaza por una nueva que busca automáticamente un nuevo contenedor NGINX.