Ich versuche, Netzwerkstatistiken für Gruppen von Prozessen abzurufen. Soweit ich weiß, erfolgt die komplexe Netzwerkabrechnung unter Linux normalerweise über die Abrechnungsinfrastruktur von netfilter / iptables.
Da ich eine Vererbung für solche Gruppen haben cgroups
möchte, wäre das eine gute Ergänzung.
Meine beste Idee wäre, iptables mit classid
denen übereinstimmen zu lassen, die mit dem net_cls
-controller eingestellt werden können.
Es scheint jedoch, dass iptables diesen Wert nur über einstellen kann --set--class
.
Also: Gibt es eine gute Möglichkeit, eine (komplexe und flexible) Netzwerkabrechnung und -protokollierung für Prozessgruppen unter Linux durchzuführen?
linux
networking
accounting
cgroup
t-8ch
quelle
quelle
Antworten:
Eine sehr schöne Frage! Vielen Dank. Altes, aber wird den Leuten hier helfen
A. Sie können cgroups mit tc verwenden. Ich habe noch nie davon gehört, aber nach dem googeln habe ich folgendes gefunden:
Demnach sollten Sie mit tc arbeiten und Statistiken von dort erhalten (viele Tools verfügbar).
http://patchwork.ozlabs.org/patch/194809/
Kontaktiere Alexey, vielleicht kann er dir dabei helfen :)
B. Sie können SELinux und iptables für Statistiken verwenden, aber die Bandbreite bei cgroups begrenzen - ich mag diesen Ansatz mehr - tc sieht für mich in einigen Fällen hässlich aus und ist für die Integration nicht optimal.
SELinux verfügt über Hooks für das Netzwerk und kann jedem Paket zusätzliche Daten als Label gemäß den Prozess-Labels zuweisen. Es kann sogar an ein anderes System übertragen und Statistiken filtern / protokollieren / abrufen. Mit SECMARK können Sie mit iptables alles tun, was Sie können.
http://selinuxproject.org/page/NB_Networking
Wenn Sie noch nicht mit SELinux vertraut sind, empfehle ich Ihnen, die RedHat / Fedora-Anleitungen "Security-Enhanced Linux" und "SELinux FAQ" zu lesen. Außerdem gibt es sehr schöne Erklärungen und Anleitungen sowie Blog-Beiträge von Daniel J. Walsh (Dan Walsh). - google dafür.
Ein sehr guter (und besserer) Ausgangspunkt für Neulinge sind Videos auf YouTube. Ich bin sicher, dass Sie in etwa drei Stunden damit fertig werden können, um alles zu verstehen, was Sie brauchen:
SELINUX IST EINFACH, keine Angst
quelle
Mit den neuesten Kerneln können Sie direkt mit Gruppen in iptables übereinstimmen, siehe: http://lwn.net/Articles/569678/
Es wurde in den Mainline-Kernel aufgenommen.
quelle