Ubuntu sunucusundaki kullanıcı başına ağ bant genişliği nasıl izlenir?


12

300GB aylık veri aktarımı olan bir sunucuda kabuk kullanıcılarına sahibim. Kullanıcı başına bant genişliği kullanımını nasıl izleyebilirim?


bu mümkün mü? Teorik olarak, değerinden daha zor olacak gibi görünüyor, çünkü teknik olarak interneti kullanan her sürecin kimin çalıştığını tanımlamasını ve ardından birleşik bant genişliği kullanımını bulmanız gerekir. Sahip olduğunuz kabuk kullanıcıları dışında kullanıcı başına izlemenin belirli nedenleri var mı? Çünkü aylık 300GB giriş / çıkış verileriyle, bu miktarın üstüne çıkmanız pek olası görünmüyor: /
Thomas Ward

Mümkün olmalı, ISS'ler kullanıcı başına bant genişliğini nasıl kaplar?
djeikyb

@EvilPhoenix Kullanıcı başına kullanımı izlemek istiyorum. 300GB, bu sunucuyu proxy sunucusu olarak kullanan en az 20 kullanıcılı bir sunucu için o kadar da değil.
Pedram

1
Kees Cook'tan harika bir pratik cevabınız var gibi görünüyor, ancak hala yöntemler arıyorsanız, soruyu farklı şekilde ifade etmenin yardımcı olup olmadığını merak ediyorum. Bu kılavuzu "linux kullanıcı bant genişliği nasıl sınırlandırılır" adlı googling buldum: faqs.org/docs/Linux-HOWTO/Bandwidth-Limiting-HOWTO.html
djeikyb 16:01

Yanıtlar:


13

Kök olarak, iptables "owner" modülünü kullanarak en azından giden trafiği kullanıcı başına ölçebilirsiniz. İzlemek istediğiniz tüm kullanıcılar varsa /root/list-of-users.txt, şunları yapabilirsiniz:

for login in $(cat /root/list-of-users.txt);
do
    iptables -N out_user_$login
    iptables -A OUTPUT -m owner --uid-owner $(id -u $login) -j out_user_$login
done

Ardından, her kullanıcının giden trafiği için paket ve bayt sayıları görünür:

iptables -L OUTPUT -n -v | grep out_

Bu, gelen tarafı izlemek için CONNMARK ile daha da genişletilebilir.


Teşekkürler. Harika. Bunu yaptım.Ama neden INPUT için aynı yöntemi kullanamıyorum?
Pedram

1
Paketin sahibi, gelen paketler için bilinmemektedir, çünkü çekirdek perspektifinden, makinenin dışından gelmiştir. CONNMARK, TCP akışlarındaki paketleri kendi oluşturucularına vb. Bağlamak için kullanılabilir, ancak bunun çalışan bir örneği yok.
Kees Cook

7

Az önce NetHogs ile karşılaştım :

NetHogs küçük bir 'net top' aracıdır. Çoğu araçta olduğu gibi protokol veya alt ağ başına trafiği azaltmak yerine bant genişliğini işleme göre gruplandırır.

resim açıklamasını buraya girin

Bu, bant genişliğini kullanıcı adına göre izlemenize izin vermelidir. Bilgileri kaydetmek ve hepsini eklemek için başka bir çift araca ihtiyaç duyabilir, ancak doğrudan iptables kullanmadan iyi bir başlangıç ​​olabilir.


Trafiği özetlemek için modda da başlatılabilir: sudo nethogs -v 3 eth0(veya mmodlar arasında dolaşmaya başladıktan sonra art arda basın ). tmuxSürekli çalışmak için ile birleştirin ( sshoturumunuz çökse bile ).
tanius

6

Kaktüsleri kullanabilirsiniz

Kaktüsler RRDTool için tam bir ön uçtur, grafikler oluşturmak ve bunları bir MySQL veritabanında verilerle doldurmak için gerekli tüm bilgileri saklar. Ön uç tamamen PHP destekli. Grafikler, Veri Kaynakları ve Yuvarlak Robin Arşivlerini bir veritabanında tutabilmenin yanı sıra, kaktüsler veri toplamayı yönetir. MRTG ile trafik grafikleri oluşturmak için kullanılanlar için SNMP desteği de vardır.

Veya vnStat

vnStat, seçilen arabirim (ler) için ağ trafiği kaydını tutan Linux ve BSD için konsol tabanlı bir ağ trafiği monitörüdür. Bilgi kaynağı olarak çekirdek tarafından sağlanan ağ arayüz istatistiklerini kullanır. Bu, vnStat'ın aslında herhangi bir trafiği koklamayacağı ve ayrıca sistem kaynaklarının hafif kullanımını sağlamayacağı anlamına gelir.

İkisi de harika.


2
Teşekkürler ama her ikisini de zaten gördüm ve bunların hiçbirinin kullanıcı izlemesi başına sağlanmadığı görülüyor.Kullanıcı başına kullanımı izlemek istiyorum.
Pedram

5

Biraz baktım ve istediğini yapan kapsamlı bir gui paketi bulamadım. Umarım bir kişi vardır ve birileri eninde sonunda buraya gönderir.

Ben gerçekten bir ağ adam değilim, ama ben okudum ne diğer birçok şey arasında netstatve iptablesip / ana bilgisayar tabanlı kullanıcı muhasebe acctiçin sistem işlemleri muhasebe için ne yaptığını yapması gerekiyordu . Bu cyberciti.biz bağlantısı sizi şu araçlarla bir sistem geliştirme yoluna götürebilir:

http://www.cyberciti.biz/faq/linux-configuring-ip-traffic-accounting/


Teşekkürler, ancak söylediğiniz gibi ip tabanlı kullanıcı muhasebesi için kullanılırlar.Özellikle sunucuyu farklı yerlerde, özellikle aynı IP adresine sahip bir üniversite bölümünde (NAT'ın arkasında) kullanabilen bir kabuk kullanıcısı var. kullanıcı tabanlı bir muhasebe çözümü arıyor, Mümkünse.
Pedram

netstat -ekabuk kullanıcılarını gösterir, ip / host'u kullanıcı adına bağlamanızı sağlar.
djeikyb
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.