Configuración básica del agente de infraestructura

Clase 10 de 23Curso de Observabilidad Avanzada con New Relic

Resumen

La configuración del agente de infraestructura de New Relic es un aspecto fundamental para obtener un monitoreo efectivo de tus sistemas. Aunque New Relic establece valores predeterminados basados en mejores prácticas, conocer las opciones de configuración te permitirá adaptar el agente a tus necesidades específicas y obtener información más precisa sobre el rendimiento de tu infraestructura.

¿Cuáles son las configuraciones básicas del agente de infraestructura de New Relic?

La configuración más importante para el agente de infraestructura es tu clave de licencia, ya que es el único parámetro requerido. New Relic ha determinado las mejores prácticas generales para la configuración y las ha establecido como valores predeterminados. Existen cientos de ajustes posibles, pero comenzaremos con los más fundamentales:

  • License Key: Es el único valor obligatorio para que el agente funcione correctamente.
  • Display Name: No es obligatorio, pero es altamente recomendado para facilitar la búsqueda de tu host en la plataforma de New Relic.
  • Host Name: Permite definir un nombre específico para tu host (ej: space-rover-infrastructure).

Puedes proporcionar estas configuraciones a través de variables de entorno o mediante un archivo de configuración. El archivo de configuración normalmente debe ubicarse en /etc/newrelic-infra/newrelic-infra.yaml en tu sistema host.

¿Cómo configurar los registros y logs del agente?

La configuración de logs te permite controlar cuánta información de registro deseas recopilar:

# Configuraciones de logging
logging:
  level: info  # Niveles disponibles: error, warning, info, debug, trace
  log_file_path: /var/log/newrelic-infra/newrelic-infra.log
  log_file_size: 5  # Tamaño máximo en MB
  log_files_count: 5  # Número de archivos rotados
  forward_logs: true  # Habilitar/deshabilitar envío de logs a New Relic
  log_format: json  # Formatos disponibles: text, json

Los niveles de log representan la gravedad de los mensajes:

  • Error: Problemas críticos que requieren atención inmediata
  • Warning: Advertencias sobre posibles problemas o funcionalidades obsoletas
  • Info: Información útil para depuración general
  • Debug/Trace: Información detallada para resolución de problemas complejos

El nivel "info" es generalmente un buen equilibrio para la mayoría de los entornos, ya que captura errores, advertencias e información importante sin generar demasiados datos.

¿Qué configuraciones avanzadas puedo implementar?

Monitoreo de Docker

Si estás utilizando contenedores Docker, puedes habilitar su monitoreo específico:

docker:
  enable: true
  include:
    - image_name: "my_app"
  exclude:
    - image_name: "postgres"
  all: false  # Monitorear todos los contenedores

Monitoreo de procesos

Puedes controlar cómo el agente supervisa los procesos en tus servidores:

process_metrics:
  enable: true
  sample_rate: 20  # Segundos
  max_processes: 1000
  include:
    - java
    - node
    - mongodb
    - newrelic
  exclude:
    - system
  enable_process_arguments: true

Configuración de inventario

El inventario proporciona una lista de todos los componentes de infraestructura disponibles en tu arquitectura:

inventory:
  interval: 600  # Minutos
  sources:
    docker: true
    packages: true
    processes: true
    config_files: true
    system: true
  config_files:
    include:
      - /etc/newrelic-infra/newrelic-infra.yaml
      - /etc/docker/daemon.json
    exclude:
      - /etc/hosts
      - /etc/passwd

Esta configuración es particularmente importante en arquitecturas de microservicios con autoescalado, donde querrás mantener un recuento preciso de los contenedores o pods que se están ejecutando.

Configuración de métricas

Estos ajustes controlan la frecuencia de recopilación y envío de métricas:

metrics:
  system_sample_rate: 20  # Segundos
  network_metrics: true
  storage_metrics: true
  scaled_cpu_mode: true  # Modo 0-100% por núcleo

Atributos personalizados

Los atributos personalizados en el archivo de configuración del agente son globales, lo que significa que se aplicarán a todas las métricas, logs, eventos y trazas recopiladas:

custom_attributes:
  environment: production
  service: payment-processing
  team: backend

¿Qué otras características puedo configurar?

Integraciones

Por defecto, las integraciones se encuentran en el directorio /etc/newrelic-infra/integrations.d:

integrations:
  directory: /etc/newrelic-infra/integrations.d

Configuración de proveedores en la nube

Estas configuraciones son específicas para cuando tu infraestructura se despliega en AWS, Google Cloud o Microsoft Azure:

cloud_provider:
  aws:
    enable: true
  azure:
    enable: false
  gcp:
    enable: false

Configuraciones avanzadas para SREs experimentados

Para los ingenieros de Site Reliability Engineering (SRE) experimentados, New Relic ofrece configuraciones de control fino sobre el comportamiento del agente:

  • Control sobre identificación de hosts
  • Control sobre recopilación y envío de datos
  • Configuración de tamaños de payload
  • Configuración de conexiones de red
  • Comportamiento del agente cuando no puede conectarse a New Relic

Feature flags

Estos controlan qué conjuntos de características tiene disponible el agente de infraestructura:

feature_flags:
  docker: true
  kubernetes: false
  log_forwarding: true
  prometheus: true

Es importante recordar que New Relic ha establecido configuraciones predeterminadas basadas en mejores prácticas. Si eres nuevo en la plataforma, es recomendable comenzar con estos valores predeterminados y luego ajustar la configuración según tus necesidades específicas a medida que te familiarices con la herramienta.

El agente de infraestructura de New Relic ofrece una flexibilidad considerable para adaptarse a tus necesidades específicas de monitoreo. Conocer estas opciones de configuración te permitirá obtener información más precisa y relevante sobre el rendimiento de tus sistemas. ¿Qué configuraciones consideras más importantes para tu entorno? Comparte tus experiencias en los comentarios.