Linux : 매일 / 매월 네트워크 트래픽을 측정하는 방법은 무엇입니까?


15

리눅스 컴퓨터 (CentOS 5)의 일일 네트워크 트래픽 통계를 유지해야합니다.

표준 / 기본 도구 또는 유틸리티를 사용하는 방법이 있습니까?
아니면 특수 소프트웨어를 다운로드해야합니까?

감사.


1
통계가 얼마나 정확합니까? 다시 말해 대역폭을 다시 청구하기에 충분한 특정 정보가 필요합니까, 아니면 평균이 좋은가요?
Zypher

특정 한도를 초과하고 싶지 않기 때문에 매일 사용한 트래픽 양을 정확히 알아야합니다.
GetFree

1
그럼 당신은 하지 않습니다 당신이 정확한 통계 못할거야 그래서 RRD 기반 도구 (등 선인장, MRTG, Munin) RRD 평균 숫자 중 하나를 원하고, 실제로는 시간이 지남에 따라 악화됩니다.
Zypher

답변:


8

rrdtool (및 백엔드로 사용하는 다른 모든 것-MRTG, Cacti 등)에 대한 Zypher의 의견은 아마도 정확할 것입니다. RRDTool은 '평균화 된'과거 추세 분석 도구로 설계되었습니다. 카운터는 점점 비 정확한 증분 단위로 카운터를 평균화하고 저장합니다.

그러나 RRA를 적절하게 설정하여 구성 할 수 있습니다. 그러나 이것들을 구성하는 것에 대해 전혀 아는 것이 없다고 고백하고 개인적으로 내 표준 세트 (15 분, 8 시간, 1 주, 1 개월, 1 년)를 넘어서서 운이 없었습니다. 일일 입력을 예상하고 netstat에서 대역폭 카운터에 피드를 제공하도록 RRA를 구성하는 것이 좋습니다. 아주 좋은 과거 데이터와 사용 패턴에 대한 통찰력을 얻을 수 있습니다.

일일 대역폭 제한을 초과하지 않도록하는 현재 문제에 대한 답변 해당 인터페이스에 대해 매일 netstat 카운터를 가져 오는 것이 좋습니다. 시간 t의 어제 트래픽을 시간 t의 오늘의 카운터와 비교하여 얼마나 많은 양이 전송되었는지 확인할 수 있습니다. 이전 값의 플랫 텍스트 파일 스토리지가있는 간단한 스크립트로 충분할 것입니다. 초과 대역폭을 감지하거나 하루 종일 모니터링하면 인터페이스를 비활성화하고 관리자가 한계에 도달하면 관리자에게 알릴 수 있습니다.

OSX 시스템에서 입력 바이트를 얻으려면 다음 명령 세트를 사용할 수 있습니다.

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $7}'

반대로 출력은 다음과 같이 얻을 수 있습니다.

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'

관련 카운터를 어딘가에 저장된 플랫 파일에 넣고 다음과 비교할 수 있습니다.

#!/bin/bash
set -e # exit if any error occurs

previous_days_bytes_xferred=`cat $flatfile_storage`
todays_bytes_xferred=`netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'`

if [ $((todays_bytes_xferred - previous_days_bytes_xferred)) -gt $threshold ]; then
   DO SOME STUFF
fi
echo $todays_bytes_xferred > $flatfile_storage

netstat 처리를 시스템과 일치하도록 조정하십시오 (OSX를 실행하지 않는다는 것을 알고 있기 때문에).


25

또한 VnStat을 사용하는 것이 좋습니다.

vnStat 1.6 by Teemu Toivola <tst at iki dot fi>

     -q,  --query          query database
     -h,  --hours          show hours
     -d,  --days           show days
     -m,  --months         show months
     -w,  --weeks          show weeks
     -t,  --top10          show top10
     -s,  --short          use short output
     -u,  --update         update database
     -i,  --iface          select interface (default: eth0)
     -?,  --help           short help
     -v,  --version        show version
     -tr, --traffic        calculate traffic
     -l,  --live           show transfer rate in real time


 eth0  /  monthly

   month         rx      |      tx      |   total
-------------------------+--------------+--------------------------------------
  Oct '09     225.70 GB  |   798.52 GB  |     1.00 TB   %%%%:::::::::::::
  Nov '09     138.46 GB  |   616.54 GB  |   755.01 GB   %%::::::::::

 eth0  /  daily

day         rx      |     tx      |  total
------------------------+-------------+----------------------------------------
   31.12.      6.56 GB  |   34.39 GB  |   40.95 GB   %%%::::::::::::::::
   01.01.      1.13 GB  |  746.92 MB  |    1.86 GB

4

sysstat 패키지에는 sar 유틸리티가 포함되어 있습니다. Sar는 사전 정의 된 간격 (cron)으로 다양한 통계를 수집하는 더 나은 용어가없는 매우 구성 가능한 시스템 "프로파일 러"입니다. 이 파일은 일반적으로 매주 회전하지만 구성 가능한 이진 파일에 매일 하나씩 저장됩니다. sar 프로그램을 사용하여 이러한 파일에서 통계를 가져올 수 있으며 이러한 결과는 모든 사무실 프로그램이나 gnuplot (개인 선호도)으로 쉽게 그래프로 표시 할 수 있습니다.

http://pagesperso-orange.fr/sebastien.godard/ <= Sar 정보
http://www.gnuplot.info/ <= gnuplot 정보


4

Vnstat 는 일일 / 주간 / 월간 트래픽 모니터를 기반으로 한 훌륭한 콘솔입니다. 또한 실시간으로 트래픽을 모니터링 할 수있어 편리합니다.

시스템 리소스도 거의 사용하지 않습니다.)


2

당신이 원하는 MRTG 도구를 모니터링 네트워크, 그 웹의 주위에 당신이 보는 모든 네트워크 그래프를 생성하는 것 (rdtool와 사진에 번호를 켭니다)

설정하고 싶지 않거나 더 간단한 것이 필요한 경우 iptables 를 사용 하여 데이터 전송을 기록 할 수 있습니다 .


iptables 솔루션 +1
GetFree

iptables 링크가 죽었을 것입니다 – 아마도 이것입니까? qaoverflow.com/question/…
twodayslate

1

나는 mrtg를 사용했는데, 그것은 매우 훌륭한 해결책이며, 흥미로워 보이고 ntop이라는 네트워크 프로브에 대한 많은 정보를 제공하는 다른 도구가 있습니다. 여기 에서 CentOS에 ntop을 설치하는 방법에 대한 링크를 찾으십시오.


1

MRTG 또는 Cacti. 선인장은 설정하기가 쉽지만 매우 아름다운 그래프를 제공합니다. MRTG는 기본 줄거리를 설정하기 쉽지만, 복잡하거나 복잡한 작업은 매우 어렵습니다.


1

Munin 은 설정하기 매우 쉬운 또 다른 멋진 RRD 기반 도구입니다. 기본 네트워크 통계는 매우 기본적이지만 플러그인을 쉽게 추가 할 수 있습니다. 내 서버 중 하나에 일별 및 주별 통계 사본을 첨부했습니다. 또한 다른 페이지에 월별 및 연간 통계가 표시됩니다.

Munin 네트워크 그래프


이미지가 사라졌습니다
Canadian Luke
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.