Cómo hacer contabilidad de red usando cgroups

Cómo hacer contabilidad de red usando cgroups

Estoy intentando obtener estadísticas de red para grupos de procesos. Hasta donde yo sé, la contabilidad de red compleja en Linux normalmente se realiza utilizando la infraestructura de contabilidad de netfilter/iptables.

Como me gustaría tener herencia para esos grupos, cgroupssería una buena combinación.

Mi mejor idea sería dejar que iptables coincida con lo classidque se puede configurar usando el net_clscontrolador.

Pero parece que iptables sólo puedecolocareste valor a través de --set--class.

Entonces: ¿Existe una buena manera de obtener contabilidad y registro de red (complejos y flexibles) para grupos de procesos en Linux?

Respuesta1

¡Una muy buena pregunta! Gracias. Viejo, pero ayudará a la gente de aquí.


R. Puedes usar cgroups con tc. Nunca había oído hablar de eso, pero después de buscar en Google encontré lo siguiente:

net_cls: este subsistema etiqueta paquetes de red con un identificador de clase (classid) que permite al controlador de tráfico de Linux (tc) identificar paquetes que se originan en una tarea de cgroup particular.

De acuerdo con esto, deberías trabajar con tc y obtener estadísticas desde allí (hay muchas herramientas disponibles).

http://patchwork.ozlabs.org/patch/194809/

Ponte en contacto con Alexey, tal vez él pueda ayudarte con eso :)


B. Puede usar SELinux e iptables para las estadísticas, pero limite el ancho de banda con cgroups; me gusta más este enfoque; tc me parece feo en algunos casos y no es óptimo para la integración.

SELinux tiene enlaces para la red y puede asignar datos adicionales como etiquetas a cada paquete de acuerdo con las etiquetas del proceso, incluso puede transmitir a otro sistema y filtrar/registrar/obtener estadísticas, haga todo lo que pueda con iptables usando SECMARK.

http://selinuxproject.org/page/NB_Networking

Si aún no está familiarizado con SELinux, le recomiendo que lea las guías de RedHat/Fedora "Security-Enhanced Linux" y "SELinux FAQ", además hay muy buenas explicaciones y guías, publicaciones de blog de Daniel J. Walsh (Dan Walsh) - búscalo en Google.

Además, un muy buen (y mejor) punto de partida para los novatos es seguir vídeos en YouTube, estoy seguro de que podrás manejarlo en unas tres horas para entender todo lo que necesitas:

  • SELinux para todos - Paul Wayper
  • SELinux para administradores de sistemas - Paul Wayper

SELINUX ES FÁCIL, NO TENGAS MIEDO

Respuesta2

Con los kernels más recientes, puede comparar cgroups en iptables directamente, consulte:http://lwn.net/Articles/569678/

Se ha incluido en el núcleo principal.

información relacionada