300GB의 월간 데이터 전송 서버에 일부 쉘 사용자가 있습니다. 사용자 당 대역폭 사용량을 어떻게 모니터링 할 수 있습니까?
300GB의 월간 데이터 전송 서버에 일부 쉘 사용자가 있습니다. 사용자 당 대역폭 사용량을 어떻게 모니터링 할 수 있습니까?
답변:
루트로서 최소한 iptables의 "소유자"모듈을 사용하여 사용자별로 발신 트래픽을 측정 할 수 있습니다. 모니터링하려는 모든 사용자가에있는 /root/list-of-users.txt
경우 다음을 수행 할 수 있습니다.
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
그런 다음 각 사용자의 아웃 바운드 트래픽에 대한 패킷 및 바이트 수가 표시됩니다.
iptables -L OUTPUT -n -v | grep out_
CONNMARK를 사용하면 인바운드 측도 추적 할 수 있습니다.
NetHogs는 작은 'net top'도구입니다. 대부분의 도구와 마찬가지로 프로토콜 또는 서브넷 당 트래픽을 분류하는 대신 프로세스별로 대역폭을 그룹화합니다.
이를 통해 사용자 이름별로 대역폭을 추적 할 수 있습니다. 정보를 기록하고 모두 추가하려면 여전히 몇 가지 도구가 필요할 수 있지만 iptables를 직접 사용하지 않고 시작하는 것이 좋습니다.
sudo nethogs -v 3 eth0
(또는 m
모드를 순환하기 시작한 후을 반복해서 누름 ). 세션이 충돌 tmux
하더라도 지속적으로 실행하기 위해 함께 사용하십시오 ssh
.
당신은 선인장 을 사용할 수 있습니다
Cacti는 RRDTool의 완벽한 프론트 엔드이며 그래프를 생성하고 MySQL 데이터베이스의 데이터로 채우기 위해 필요한 모든 정보를 저장합니다. 프론트 엔드는 완전히 PHP 중심입니다. cacti는 데이터베이스에서 그래프, 데이터 소스 및 라운드 로빈 아카이브를 유지 관리 할 수있을뿐만 아니라 데이터 수집을 처리합니다. MRTG로 트래픽 그래프를 작성하는 데 사용되는 SNMP에 대한 SNMP 지원도 있습니다.
또는 vnStat
vnStat는 선택된 인터페이스에 대한 네트워크 트래픽 로그를 유지하는 Linux 및 BSD 용 콘솔 기반 네트워크 트래픽 모니터입니다. 커널이 제공하는 네트워크 인터페이스 통계를 정보 소스로 사용합니다. 이는 vnStat가 실제로 트래픽을 스니핑하지 않으며 시스템 리소스를 가볍게 사용함을 의미합니다.
둘 다 훌륭합니다.
나는 조금 보았고 원하는 것을하는 포괄적 인 GUI 패키지를 찾지 못했습니다. 바라건대 하나가 존재하고 누군가가 결국 여기에 게시 할 것입니다.
나는 정말 네트워킹 사람이 아니지만, 나는 많은 다른 것들 중, 읽은에서 netstat
와 iptables
뭐라고 회계 IP / 호스트 기반의 사용자에 대해 어떻게해야하는 acct
도구가 시스템 프로세스 회계 않았다. 이 cyberciti.biz 링크를 통해 다음 도구를 사용하여 시스템을 개발할 수 있습니다.
http://www.cyberciti.biz/faq/linux-configuring-ip-traffic-accounting/
netstat -e
쉘 사용자를 표시하여 ip / host를 username에 링크 할 수 있습니다.