Как вести сетевой учет с помощью cgroups

Я пытаюсь получить сетевую статистику для групп процессов. Насколько я знаю, сложный сетевой учет в linux обычно выполняется с использованием инфраструктуры учета netfilter/iptables.

Как я хотел бы иметь наследство для таких групп cgroups было бы хорошим совпадением.

Моя лучшая идея - позволить iptables соответствовать classid который может быть установлен с помощью net_cls-controller.

Но, похоже, iptables может установить это значение только через --set--class,

Итак: Есть ли хороший способ получения (сложного и гибкого) сетевого учета и регистрации для групп процессов в Linux?

2 ответа

В последних версиях ядра вы можете сравнивать cgroups в iptables напрямую, см.: http://lwn.net/Articles/569678/

Он был включен в основное ядро.

Очень хороший вопрос! Спасибо. Старый, но поможет людям здесь


A. Вы можете использовать cgroups с tc. Я никогда не слышал об этом, но после поиска в Google нашел следующее:

net_cls - эта подсистема маркирует сетевые пакеты идентификатором класса (classid), который позволяет контроллеру трафика Linux ( tc) идентифицировать пакеты, исходящие из конкретной задачи cgroup.

В соответствии с этим вы должны работать с tc и получать оттуда статистику (доступно много инструментов).

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

Свяжитесь с Алексеем, может он поможет вам с этим:)


B. Вы можете использовать SELinux и iptables для статистики, но ограничить полосу пропускания с помощью cgroups - мне этот подход нравится больше - tc выглядит для меня некрасиво в некоторых случаях и не оптимален для интеграции.

SELinux имеет хуки для сети и может назначать дополнительные данные в качестве метки для каждого пакета в соответствии с метками процесса, даже в состоянии передавать в другую систему и фильтровать / регистрировать / получать статистику, делать все возможное с iptables с помощью SECMARK.

http://selinuxproject.org/page/NB_Networking

Если вы еще не знакомы с SELinux, я рекомендую вам ознакомиться с руководствами RedHat/Fedora "Linux с улучшенной безопасностью" и "Часто задаваемые вопросы по SELinux", кроме того, есть очень хорошие пояснения и руководства, сообщения в блоге Дэниела Дж. Уолша (Дэн Уолш) Google для этого.

Кроме того, очень хорошей (и лучшей) отправной точкой для новичков являются видео на YouTube, я уверен, что вы справитесь с этим примерно за три часа, чтобы понять все, что вам нужно:

  • SELinux для всех - Пол Уэйпер
  • SELinux для системных администраторов - Пол Уэйпер

SELINUX ЛЕГКИЙ, НЕ БОЙСЯ

Другие вопросы по тегам