El agente de infraestructura para Linux admite entornos contenedor de forma predeterminada. Si está ejecutando un sistema operativo contenedor o tiene restricciones que requieren implementar el agente como contenedor, puede ejecutar una versión en contenedor de nuestro agente de infraestructura. Esto puede monitor la métrica del contenedor en sí, así como del host subyacente.
El uso de la configuración personalizada (recomendada) o básica permite que el agente de infraestructura se ejecute dentro de un entorno de contenedor. Un host solo puede ejecutar una instancia del agente a la vez, ya sea el agente en contenedor o la versión no en contenedor.
Que necesitas
La versión en contenedores del agente de infraestructura requiere docker 1.12 o superior.
A partir de la versión 1.42, el agente de infraestructura admite containerd
, por lo que se puede utilizar en Kubernetes v1.24+, que eliminó la compatibilidad con Dockershim, o cualquier otra solución basada en containerd
. Si los sockets de tiempo de ejecución containerd
y dockerd
están disponibles, el agente de infraestructura funcionará con el socket de tiempo de ejecución containerd
. El contenedor debe ejecutarse en una distribución de Linux y una versión compatible con el agente de infraestructura. La imagen del contenedor está disponible y es compatible con las arquitecturas AMD64 y ARM64.
El reenviador de Logs no está incluido con el agente en contenedor. Recomendamos instalar el agente en el host subyacente que proporciona todas las capacidades.
Configuración personalizada (recomendada)
Las siguientes son instrucciones básicas para crear una imagen docker personalizada en Linux. Esto le permite desplegar el agente de infraestructura como un contenedor que puede monitor su host subyacente.
Recomendación: amplíe la imagennewrelic/infrastructure
y emplee su propio archivo de configuración de agente newrelic-infra.yml
. Una vez creada tu imagen, puedes crear un contenedor fácilmente sin tener que proporcionar más configuraciones de tiempo de lanzamiento. No proporcione secretos empleando variables de entorno con Docker.
CLI docker
Cree el archivo de configuración del agente
newrelic-infra.yml
con su New Relic . Para obtener explicaciones de las opciones de configuración, consulte ajustes de configuración.license_key: YOUR_LICENSE_KEYCree el
Dockerfile
extendiendo la imagennewrelic/infrastructure
y agregue su configuración a/etc/newrelic-infra.yml
:FROM newrelic/infrastructure:latestADD newrelic-infra.yml /etc/newrelic-infra.ymlCrea y etiqueta tu imagen:
bash$docker build -t YOUR_IMAGE_NAME .Ejecute el contenedor desde la imagen que creó con los indicadores de ejecución requeridos:
bash$docker run \>-d \>--name newrelic-infra \>--network=host \>--cap-add=SYS_PTRACE \>--privileged \>--pid=host \>--cgroupns=host # required on cgroup v2 \>-v "/:/host:ro" \>-v "/var/run/docker.sock:/var/run/docker.sock" \>YOUR_IMAGE_NAMEPara conocer los posibles próximos pasos, como cómo ver datos en la UI, consulte ¿Qué sigue?
Docker componer
Cree una carpeta para almacenar los archivos de configuración:
bash$mkdir ~/newrelic-infra-setupCambie el directorio al que acaba de crear:
bash$cd ~/newrelic-infra-setupCree el archivo de configuración del agente
newrelic-infra.yml
con su New Relic . Para obtener explicaciones de las opciones de configuración, consulte ajustes de configuración.bash$echo "license_key: YOUR_LICENSE_KEY" > newrelic-infra.ymlCree el
newrelic-infra.dockerfile
extendiendo la imagennewrelic/infrastructure
y agregue su configuración a/etc/newrelic-infra.yml
:bash$touch newrelic-infra.dockerfilebash$vim newrelic-infra.dockerfile # you can use any text editorColoque el siguiente contenido en el archivo:
FROM newrelic/infrastructure:latestADD newrelic-infra.yml /etc/newrelic-infra.ymlCrear
docker-compose.yaml
:bash$touch docker-compose.yamlbash$vim docker-compose.yaml # you can use any text editorColoque el siguiente contenido en el archivo:
version: '3'services:agent:container_name: newrelic-infrabuild:context: .dockerfile: newrelic-infra.dockerfilecap_add:- SYS_PTRACEnetwork_mode: hostpid: hostprivileged: truevolumes:- "/:/host:ro"- "/var/run/docker.sock:/var/run/docker.sock"restart: unless-stoppedConstruya e inicie
docker-compose
:bash$docker-compose -f docker-compose.yaml up -dPara conocer los posibles próximos pasos, como cómo ver datos en la UI, consulte ¿Qué sigue?
Configuración básica
Para utilizar la configuración básica con una imagen base New Relic Infrastructure :
CLI docker
Ejecute el contenedor con los indicadores de ejecución requeridos:
bash$docker run \>-d \>--name newrelic-infra \>--network=host \>--cap-add=SYS_PTRACE \>--privileged \>--pid=host \>--cgroupns=host # required on cgroup v2 \>-v "/:/host:ro" \>-v "/var/run/docker.sock:/var/run/docker.sock" \>-e NRIA_LICENSE_KEY=YOUR_LICENSE_KEY \>newrelic/infrastructure:latestPara conocer los posibles próximos pasos, como cómo ver datos en la UI, consulte ¿Qué sigue?
Docker componer
Crear
docker-compose.yaml
:bash$touch docker-compose.yamlbash$vim docker-compose.yaml # you can use any text editorColoque el siguiente contenido en el archivo:
version: '3'services:agent:container_name: newrelic-infraimage: newrelic/infrastructure:latestcap_add:- SYS_PTRACEnetwork_mode: hostpid: hostprivileged: truevolumes:- "/:/host:ro"- "/var/run/docker.sock:/var/run/docker.sock"environment:NRIA_LICENSE_KEY: "YOUR_LICENSE_KEY"restart: unless-stoppedConstruya e inicie
docker-compose
:bash$docker-compose -f docker-compose.yaml up -dPara conocer los posibles próximos pasos, como cómo ver datos en la UI, consulte ¿Qué sigue?
Privilegios de contenedor requeridos
Debido al aislamiento de recursos del host y otro contenedor a través del espacio de nombres de Linux, un contenedor tiene una vista y un control muy restringidos de los recursos de su host subyacente de forma predeterminada. Sin estos privilegios adicionales, el agente de infraestructura no puede monitor el host y su contenedor.
El agente de infraestructura recopila datos sobre su host mediante archivos y llamadas al sistema. Para obtener más información sobre cómo el agente de infraestructura recopila datos, consulte nuestra documentación sobre seguridad y monitoreo de infraestructura. Los privilegios requeridos incluyen:
Requerido cuando se usa docker en cgroup v2 ya que es privado de forma predeterminada. Esto permite al agente reunir el contenedor métrico. Está disponible desde la API del motor Docker v1.41.
Privilegio | Descripción |
---|---|
| Establece el namespace de red del contenedor en el namespace de red del host. Esto permite al agente recopilar la métrica de la red sobre el host. |
| Bind monta el volumen raíz del host en el contenedor. Este acceso de solo lectura a la raíz del host permite al agente recopilar métricas de proceso y almacenamiento, así como datos de inventario del host. |
| Agrega la capacidad de Linux a los procesos del sistema traza. Esto permite al agente recopilar datos sobre los procesos que se ejecutan en el host. Leer más aquí. |
| |
| |
| |
| Bind monta el socket del host Docker daemon en el contenedor. Esto permite que el agente se conecte a la del motor API a través del Docker daemon socket para recopilar los datos del contenedor del host. Si interactúa con el tiempo de ejecución |
¿Te ha ayudado este documento con la instalación?
Siguientes pasos después de la instalación
Para conocer los próximos pasos una vez completada la instalación, consulte ¿Qué sigue?
Inventario recopilado
El inventario é coletado desde el recolector de datos integrado del agente de infraestructura. El agente de infraestructura recopila estos datos para sistemas Linux que se ejecutan con contenedor.
Categoría | Fuente | Datos recopilados mediante |
---|---|---|
|
| Archivo de configuración completo del agente |
|
|
Datos del contenedor
Una vez que el agente de infraestructura se ejecuta en un contenedor Docker, puede recopilar los mismos datos de cálculo de host y datos de eventos que el agente de infraestructura es capaz de recopilar cuando se ejecuta de forma nativa en un host. Para obtener más información, consulte nuestra documentación sobre cómo ver los datos de su contenedor Docker.
Imagen del agente en contenedores
La imagen del agente en contenedor se crea a partir de una imagen base de Alpine.
Comprueba el código fuente
Esta integración es software de código abierto. Puedes explorar su código fuente y enviar mejoras, o crear tu propia bifurcación y compilarla.