Ir al contenido
Moonin
EN

Moonin Node Agent

Moonin Node Agent es un DaemonSet de Kubernetes para Linux que corre en cada nodo worker seleccionado. Observa actividad runtime mediante eBPF y probes de runtimes de aplicación, la asocia a workloads de Kubernetes y envia la telemetria resultante a Moonin.

A diferencia de Discovery Agent, que mantiene el inventario de Kubernetes, Node Agent observa como se comunican y se comportan los workloads mientras corren. No modifica Deployments, HPAs ni el trafico de las aplicaciones.

Node Agent enriquece las siguientes señales con el contexto disponible de cluster, namespace, workload, pod y contenedor:

SeñalEjemplos de contexto capturado
HTTP, HTTPS, HTTP/2 y gRPCMetodo, path, protocolo, estado, latencia, peer y contexto del workload
Actividad de base de datosConexiones y queries de clientes PostgreSQL, MySQL, MongoDB y Redis soportados
Actividad de Google CloudOperaciones soportadas de Pub/Sub, Firestore, Secret Manager, BigQuery, Cloud Storage, Cloud Tasks, Eventarc, reCAPTCHA y Vertex AI
Trazas distribuidasSpans de servidor y downstream derivados de requests observados y exports de trazas soportados
Errores runtimeOOM kills, señales fatales, señales de termino y salidas de proceso no cero asociadas a workloads
Actividad de redTransiciones de estado TCP y actividad UDP agregada
Métricas de workloadsContexto de CPU, memoria, throttling, red y reinicios recolectado desde cgroups y /proc

!!! note La carga de logs de contenedor está deshabilitada en el chart por defecto. El agente puede enviar señales de error runtime, pero esto no significa que recolecte todos los logs de contenedor.

El agente agrupa los eventos antes de enviarlos. Por defecto, agrega eventos por hasta 180 segundos y despacha lotes cada 60 segundos. Las métricas se envian cada 60 segundos. Por ello, los datos pueden tardar algunos minutos en aparecer después de ocurrir la actividad.

La plataforma controla la recolección mediante una política remota de ingestion. Hasta que Node Agent obtiene una política valida, no envia telemetria. La política puede habilitar o deshabilitar la recolección, limitarla a namespaces o servicios, excluir alcances y aplicar sampling.

Ver los datos capturados en portal.moonin.app

Sección titulada «Ver los datos capturados en portal.moonin.app»

Selecciona un solo cluster en el selector de clusters de la barra superior antes de usar los exploradores de observabilidad. La disponibilidad también depende de los permisos del usuario autenticado.

DondePara que usarlo
/eventsInspecciona familias de eventos crudos de HTTP, bases de datos, cache y Google Cloud soportado. Filtra por rango de tiempo, cluster y atributos disponibles; luego expande un evento para ver su contexto capturado.
/tracesBusca un request por tiempo, servicio, namespace, operación, duración o estado de error. Abre una traza para revisar su timeline, spans, contexto del workload y llamadas downstream.
/dependenciesExplora recursos outbound observados e identifica servicios que consumen un recurso, URL, topic, bucket u otra dependencia.
Service 360Abre un servicio desde el catalogo de servicios para revisar las pestanas Events, Dependencies y Metrics en el contexto del workload.

Los permisos habituales son observability.events.view, observability.traces.view, observability.dependencies.view y observability.metrics.view.

!!! warning Los eventos de red se envian para procesamiento de plataforma, pero actualmente no aparecen como familia seleccionable en el explorador de Events. Las señales de error se pueden correlacionar con los flujos de errores de Moonin; no reemplazan una busqueda completa de logs de contenedor.

Node Agent está habilitado por defecto en el chart de Moonin Agent y se programa en nodos worker Linux. Los nodos control-plane se excluyen por defecto.

Requiere acceso elevado al host para adjuntar probes eBPF y atribuir actividad a workloads:

  • un contenedor Linux privilegiado con hostPID y hostNetwork
  • montajes de host para /proc, cgroups, metadata de pods de kubelet, modulos del kernel y filesystems BPF y de tracing
  • acceso de lectura a pods, services, endpoints, EndpointSlices, Jobs y ReplicaSets para enriquecimiento Kubernetes
  • credenciales de cluster (CLUSTER_ID y CLUSTER_TOKEN) y salida HTTPS hacia la API de ingestion de Moonin

El chart incluye un init container privilegiado que puede configurar kernel.perf_event_paranoid en -1 en el host cuando es necesario para eventos de performance de eBPF. Revisa estos requisitos con el responsable de seguridad del cluster antes de instalarlo.

  • El agente excluye su propio namespace y cualquier namespace excluido por su configuración runtime o política de ingestion.
  • Los headers HTTP y el texto capturado de requests o responses se sanitizan para credenciales e identificadores sensibles comunes antes de transmitirlos.
  • La recolección de eventos y métricas es telemetria, no un proxy de trafico: el agente observa actividad runtime soportada y no enruta ni modifica requests de las aplicaciones.
  • La entrega de trazas usa un spool local acotado para reintentos. Los demas lotes de eventos se mantienen en memoria y se pueden descartar si no se logra completar el envio.