웹사이트 검색

Ubuntu 22.04에서 vnStat를 사용하여 네트워크 트래픽을 모니터링하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • Ubuntu 22.04(Jammy Jellyfish)
  • Ubuntu 20.04(Focal Fossa)

이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. vnStat 설치
  4. Systemd를 사용하여 VnStat 관리\n
  5. vnStat으로 네트워크 트래픽을 모니터링하는 방법\n
  6. 결론

vnStat은 Linux 운영 체제용 무료 오픈 소스 콘솔 기반 네트워크 트래픽 모니터링 도구입니다. vnStat를 사용하면 다양한 기간 동안 네트워크 통계를 모니터링할 수 있습니다. 간단하고 가벼우며 시스템 리소스의 작은 부분을 사용합니다. vnStat를 사용하면 시간, 일, 월, 주, 일 단위로 네트워크 트래픽 데이터를 생성할 수 있습니다. 이 자습서에서는 vnStat를 설치하고 사용하여 네트워크 트래픽을 모니터링하는 방법을 보여줍니다.

특징

  • 여러 인터페이스를 동시에 모니터링합니다.\n
  • 일별, 주별 등 여러 출력 옵션을 제공합니다.\n
  • 데이터를 시간, 일, 월 또는 주별로 정렬하거나 상위 10일을 가져옵니다.\n
  • 이미지 형식으로 출력을 생성할 수 있습니다.\n
  • 여러 네트워크 인터페이스를 동시에 모니터링합니다.\n
  • 경량 및 낮은 CPU 사용량.

이 자습서에서는 VnStat 도구를 설치하고 사용하여 Ubuntu 22.04에서 네트워크 트래픽을 모니터링하는 방법을 보여줍니다.

전제 조건

  • Ubuntu 20.04를 실행하는 서버.\n
  • 루트 암호는 서버에서 구성됩니다.\n

시작하기

시작하기 전에 모든 시스템 패키지를 최신 버전으로 업데이트하고 업그레이드하는 것이 좋습니다. 다음 명령을 사용하여 모두 업데이트할 수 있습니다.

apt update -y
apt upgrade -y

모든 패키지가 업데이트되면 다음 단계에서 소스에서 VnStat를 설치할 수 있습니다.

vnStat 설치

기본적으로 vnStat의 최신 버전은 Ubuntu 기본 리포지토리에서 사용할 수 없습니다. 따라서 소스에서 컴파일해야 합니다.

먼저 다음 명령을 사용하여 vnStat를 컴파일하는 데 필요한 모든 종속성을 설치합니다.

apt-get install build-essential gcc make libsqlite3-dev -y

모든 종속성이 설치되면 다음 명령을 사용하여 vnStat 소스의 최신 버전을 다운로드합니다.

wget https://humdi.net/vnstat/vnstat-2.10.tar.gz

다운로드가 완료되면 다음 명령을 사용하여 다운로드한 파일의 압축을 풉니다.

tar -xvzf vnstat-2.10.tar.gz

그런 다음 디렉터리를 추출된 디렉터리로 변경하고 다음 명령으로 구성합니다.

cd vnstat-2.10
./configure --prefix=/usr --sysconfdir=/etc

다음으로 다음 명령을 실행하여 vnStat를 설치합니다.

make
make install

vnStat이 설치되면 다음 명령을 사용하여 설치된 vnStat 버전을 확인할 수 있습니다.

vnstat -v

다음 출력이 표시되어야 합니다.

vnStat 2.10 by Teemu Toivola 

완료되면 다음 단계로 진행할 수 있습니다.

Systemd를 사용하여 VnStat 관리

systemd로 VnStat를 관리하려면 vnStat 소스에서 /etc/systemd/system/ 디렉토리로 vnStat systemd 서비스 파일을 복사해야 합니다.

cp -v vnstat-2.10/examples/systemd/vnstat.service /etc/systemd/system/

그런 다음 vnStat 서비스를 활성화하고 다음 명령으로 시작합니다.

systemctl enable vnstat
systemctl start vnstat

다음 명령을 사용하여 vnStat 서비스의 상태를 확인할 수도 있습니다.

systemctl status vnstat

다음과 같은 결과가 표시되어야 합니다.

? vnstat.service - vnStat network traffic monitor
   Loaded: loaded (/lib/systemd/system/vnstat.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2022-11-29 08:34:08 IST; 2h 49min ago
     Docs: man:vnstatd(1)
           man:vnstat(1)
           man:vnstat.conf(5)
 Main PID: 1730 (vnstatd)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/vnstat.service
           ??1730 /usr/sbin/vnstatd -n

Nov 29 08:34:08 vyompc systemd[1]: Started vnStat network traffic monitor.
Nov 29 08:34:08 vyompc vnstatd[1730]: Info: vnStat daemon 1.18 started. (pid:1730 uid:122 gid:128)
Nov 29 08:34:08 vyompc vnstatd[1730]: Info: Monitoring: enp20s0 (1000 Mbit) wlp22s0 (1000 Mbit)

완료되면 다음 단계로 진행할 수 있습니다.

vnStat으로 네트워크 트래픽을 모니터링하는 방법

vnStat는 네트워크 트래픽을 모니터링할 수 있는 몇 가지 옵션을 제공합니다. 다음 명령으로 사용 가능한 모든 옵션을 나열할 수 있습니다.

vnstat --help

다음과 같은 결과가 표시되어야 합니다.

vnStat 2.10 by Teemu Toivola 

      -5,  --fiveminutes [limit]   show 5 minutes
      -h,  --hours [limit]         show hours
      -hg, --hoursgraph            show hours graph
      -d,  --days [limit]          show days
      -m,  --months [limit]        show months
      -y,  --years [limit]         show years
      -t,  --top [limit]           show top days

      -b, --begin            set list begin date
      -e, --end              set list end date

      --oneline [mode]             show simple parsable format
      --json [mode] [limit]        show database in json format
      --xml [mode] [limit]         show database in xml format

      -tr, --traffic [time]        calculate traffic
      -l,  --live [mode]           show transfer rate in real time
      -i,  --iface      select interface

Use "--longhelp" or "man vnstat" for complete list of options.

vnStat를 사용하기 전에 vnStat 데이터베이스를 업데이트하려면 잠시 기다려야 합니다. 데이터베이스를 업데이트한 후 아래와 같이 옵션 없이 vnStat를 실행할 수 있습니다.

vnstat

다음 출력이 표시되어야 합니다.

                      rx      /      tx      /     total    /   estimated
 wlp22s0:
       Oct '22     17.80 GiB  /    4.35 GiB  /   22.15 GiB
       Nov '22     16.61 GiB  /    3.62 GiB  /   20.23 GiB  /   21.48 GiB
     yesterday    332.22 MiB  /  114.17 MiB  /  446.39 MiB
         today    710.25 MiB  /   44.85 MiB  /  755.11 MiB  /    1.55 GiB

특정 네트워크 인터페이스를 사용하려면 아래와 같이 -i 옵션을 사용하십시오.

vnstat -i ens3

다음 출력에서 일별 및 월별 통계를 얻어야 합니다.

Database updated: 2020-11-12 06:30:00

   ens3 since Saturday 29 January 2022

          rx:  185.89 GiB      tx:  38.82 GiB      total:  224.70 GiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Oct '22     17.80 GiB |    4.35 GiB |   22.15 GiB |   71.04 kbit/s
       Nov '22     16.61 GiB |    3.62 GiB |   20.23 GiB |   71.20 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated     17.64 GiB |    3.85 GiB |   21.48 GiB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     yesterday    332.22 MiB |  114.17 MiB |  446.39 MiB |   43.34 kbit/s
         today    710.25 MiB |   44.85 MiB |  755.11 MiB |  154.31 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated      1.46 GiB |      92 MiB |    1.55 GiB |

시간별 통계를 표시하려면 다음 명령을 실행합니다.

vnstat -h

다음 출력이 표시되어야 합니다.

 ens3  /  hourly

 h  rx (MiB)   tx (MiB)  ][  h  rx (MiB)   tx (MiB)  ][  h  rx (MiB)   tx (MiB) 
12        5.4        0.2 ][ 20       30.4       14.8 ][ 04        0.0        0.0
13       72.7       15.0 ][ 21       24.8        6.4 ][ 05        0.0        0.0
14        1.9        0.4 ][ 22       20.1        9.8 ][ 06        0.0        0.0
15        0.0        0.0 ][ 23        0.0        0.0 ][ 07        0.0        0.0
16        0.0        0.0 ][ 00        0.0        0.0 ][ 08      147.0       10.2
17       36.4        9.6 ][ 01        0.0        0.0 ][ 09       64.1        9.4
18       54.0       23.4 ][ 02        0.0        0.0 ][ 10      496.9       23.9
19       86.5       34.5 ][ 03        0.0        0.0 ][ 11        2.3        1.3

일별 통계를 표시하려면 다음 명령을 실행하십시오.

vnstat -d

다음 출력이 표시되어야 합니다.

 ens3  /  daily
        day         rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     Sunday 30 October 2022  266.75 MiB |   47.81 MiB |  314.56 MiB |   30.54 kbit/s
     Monday 31 October 2022  701.49 MiB |  225.89 MiB |  927.38 MiB |   90.04 kbit/s
     Tuesday 01 November 2022  506.20 MiB |  184.50 MiB |  690.70 MiB |   67.06 kbit/s
     Wednesday 02 November 2022  631.15 MiB |  182.43 MiB |  813.59 MiB |   78.99 kbit/s
     Thursday 03 November 2022  189.21 MiB |   41.18 MiB |  230.39 MiB |   22.37 kbit/s
     Friday 04 November 2022  703.67 MiB |  175.49 MiB |  879.16 MiB |   85.36 kbit/s
     Saturday 05 November 2022  518.96 MiB |  130.47 MiB |  649.43 MiB |   63.05 kbit/s
     Sunday 06 November 2022  301.74 MiB |   81.95 MiB |  383.69 MiB |   37.25 kbit/s

-t 옵션을 사용하여 트래픽이 가장 많은 날을 표시할 수 있습니다.

vnstat -t

다음과 같은 결과가 표시되어야 합니다.

 ens3  /  top 1

    #      day          rx      |     tx      |    total    |   avg. rate
   -----------------------------+-------------+-------------+---------------
    1   Thursday 03 February 2022    2.58 GiB |  214.64 MiB |    2.79 GiB |  277.76 kbit/s
    2   Saturday 05 February 2022    2.11 GiB |  229.32 MiB |    2.33 GiB |  231.67 kbit/s
    3   Tuesday 01 February 2022    1.81 GiB |  190.56 MiB |    2.00 GiB |  198.71 kbit/s
    4   Wednesday 02 February 2022    1.80 GiB |  179.75 MiB |    1.98 GiB |  196.72 kbit/s
    5   Sunday 10 July 2022    1.69 GiB |  248.34 MiB |    1.93 GiB |  192.21 kbit/s
    6   Saturday 19 February 2022    1.56 GiB |  172.67 MiB |    1.73 GiB |  171.56 kbit/s
    7   Friday 16 September 2022    1.44 GiB |  201.21 MiB |    1.64 GiB |  163.16 kbit/s
    8   Friday 17 June 2022    1.34 GiB |  278.89 MiB |    1.61 GiB |  160.33 kbit/s
    9   Friday 25 March 2022    1.06 GiB |  504.19 MiB |    1.55 GiB |  154.51 kbit/s
   10   Monday 07 February 2022    1.30 GiB |  160.68 MiB |    1.46 GiB |  145.30 kbit/s
   -----------------------------+-------------+-------------+---------------

네트워크 트래픽 통계를 실시간으로 표시하려면 다음 명령을 실행하십시오.

vnstat -l

다음과 같은 결과가 표시되어야 합니다.

Monitoring ens3...    (press CTRL-C to stop)

   rx:       11 kbit/s     7 p/s          tx:        9 kbit/s     6 p/s^C


 ens3  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                       17 KiB  |          18 KiB
--------------------------------------+------------------
          max              24 kbit/s  |       33 kbit/s
      average            6.78 kbit/s  |     7.39 kbit/s
          min               0 kbit/s  |        0 kbit/s
--------------------------------------+------------------
  packets                         78  |              82
--------------------------------------+------------------
          max                 10 p/s  |          11 p/s
      average                  3 p/s  |           4 p/s
          min                  0 p/s  |           0 p/s
--------------------------------------+------------------
  time                    20 seconds

인터페이스 ens3에 대한 데이터베이스 항목을 지우고 다음 명령을 사용하여 모니터링을 중지할 수도 있습니다.

vnstat -i ens3 --remove --force

다음 출력이 표시되어야 합니다.

Interface "ens3" removed from database.
The interface will no longer be monitored. Use --add
if monitoring the interface is again needed.

다음 명령을 실행하여 제거된 인터페이스 ens3을 다시 추가할 수도 있습니다.

vnstat -i ens3 --add

다음과 같은 결과가 표시되어야 합니다.

Adding interface "ens3" for monitoring to database...

Restart the vnStat daemon if it is currently running in order to start monitoring "ens3".

다음으로 vnStat 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart vnstat

결론

이 게시물에서는 Ubuntu 22.04에 vnStat를 설치하는 방법에 대해 설명했습니다. 또한 몇 가지 예를 통해 이를 사용하여 네트워크 트래픽을 모니터링하는 방법을 보여줍니다. 이제 이 도구를 사용하여 네트워크 관련 문제를 분석하고 해결할 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.