Mam kilku użytkowników powłoki na serwerze z 300 GB miesięcznego transferu danych. Jak mogę monitorować wykorzystanie przepustowości na użytkownika?
Mam kilku użytkowników powłoki na serwerze z 300 GB miesięcznego transferu danych. Jak mogę monitorować wykorzystanie przepustowości na użytkownika?
Odpowiedzi:
Jako root, możesz przynajmniej mierzyć ruch wychodzący dla poszczególnych użytkowników, używając modułu „właściciel” iptables. Jeśli są wszyscy użytkownicy, których chcesz monitorować /root/list-of-users.txt
, możesz:
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
Następnie widoczne są liczby pakietów i bajtów dla ruchu wychodzącego każdego użytkownika:
iptables -L OUTPUT -n -v | grep out_
Można to dodatkowo rozszerzyć o CONNMARK, aby śledzić również stronę wejściową.
Właśnie natknąłem się na NetHogs :
NetHogs to małe narzędzie „net top”. Zamiast rozkładać ruch według protokołu lub podsieci, jak większość narzędzi, grupuje przepustowość według procesów.
Powinno to umożliwić śledzenie przepustowości według nazwy użytkownika. Może nadal potrzebuję kilku innych narzędzi do rejestrowania informacji i dodawania ich wszystkich, ale to dobry początek bez bezpośredniego korzystania z iptables.
sudo nethogs -v 3 eth0
(lub nacisnąć m
kilkakrotnie po rozpoczęciu przełączania trybów). Połącz z, tmux
aby działać ciągle (nawet jeśli twoja ssh
sesja ulegnie awarii).
Możesz użyć kaktusów
Cacti to kompletna nakładka na RRDTool, która przechowuje wszystkie informacje niezbędne do tworzenia wykresów i wypełniania ich danymi w bazie danych MySQL. Frontend jest całkowicie oparty na PHP. Oprócz możliwości przechowywania wykresów, źródeł danych i archiwów Round Robin w bazie danych, kaktusy obsługują gromadzenie danych. Istnieje również obsługa SNMP dla osób używanych do tworzenia wykresów ruchu za pomocą MRTG.
Lub vnStat
vnStat to oparty na konsoli monitor ruchu sieciowego dla systemów Linux i BSD, który prowadzi dziennik ruchu sieciowego dla wybranych interfejsów. Wykorzystuje statystyki interfejsu sieciowego dostarczone przez jądro jako źródło informacji. Oznacza to, że vnStat nie będzie wąchał żadnego ruchu, a także zapewni lekkie wykorzystanie zasobów systemowych.
Oba są świetne.
Szukałem trochę i nie znalazłem kompleksowego pakietu GUI, który robi to, co chcesz. Mam nadzieję, że istnieje i ktoś w końcu opublikuje tutaj post.
Nie jestem facetem od sieci, ale z tego, co przeczytałem, między innymi netstat
i iptables
powinienem robić rozliczanie użytkowników oparte na protokole ip / host, co acct
narzędzia zrobiły z rozliczaniem procesów systemowych. Ten link cyberciti.biz może pomóc Ci w rozwoju systemu za pomocą następujących narzędzi:
http://www.cyberciti.biz/faq/linux-configuring-ip-traffic-accounting/
netstat -e
pokazuje użytkowników powłoki, umożliwiając powiązanie adresu IP / hosta z nazwą użytkownika.