리눅스 네트워크 모니터링(Linux Network Monitoring)

 미디어 서버로 이용하고 있는 라즈베리파이 서버의 네트워크 사용량을 확인할 일이 종종 있다. 이번 포스팅에선 리눅스 시스템에서 네트워크를 보니터링 할 수 있는 몇가지 방법을 알아보자. 

ifconfig 명령어
$ ifconfig
HWaddr : 네트워크 인터페이스의 하드웨어 주소, 맥주소(MAC Address)라고 불림.
inet addr : 할당된 IP 주소. 가정 등에서 공유기를 사용하면 192.168.0.xxx로 보통 할당된다.
int6 addr : 차세대 인터넷 IP주소. 
Bcast : 브로드캐스트.
Mask : 넷마스크
MTU : 최대 전송 단위(Maxium Transfer Unit)
RX packets : 받은 패킷
TX packets: 보낸 패킷
collision : 충돌된 패킷
Interrupt : 네트워크 인터페이스가 사용하는 인터럽트 번호

 Eth0 랜카드 정보에 보면, TX packets값을 보고 송신 데이터양을 판단할 수 있다. 네트워크 사용량을 직관적으로 판단하기엔 조금 불편하다. lo는 루프백 인터페이스로서 자신과 통신하는 가상 장치다. 그래서 IP가 127.0.0.1(자신)이다.

netstat 명령어
$ netstat -i
Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0   8008509      0     18 0       8346645      0      0      0 BMRU
lo        65536 0     17127      0      0 0         17127      0      0      0 LRU
 -i 옵션을 이용해서 네트워크 인터페이스 정보 확인이 가능하다.

프로세스 정보로 확인
$ cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo: 1569836   17126    0    0    0     0          0         0  1569836   17126    0    0    0     0       0          0
  eth0: 3428256305 8008439    0   18    0     0          0         0 1200321862 8346578    0    0    0     0       0          0

iftop
 프로세스를 모니터링해주는 top프로그램과 유사한 형태의 네트워크 모니터링 프로그램이다. iftop를 사용하기 위해선 먼저 설치가 필요하다.
$ sudo apt-get install iftop
 관리자 권한으로 실행을 한다.
$ sudo apt-get iftop
 실시간으로 변화되는 네트워크 사용량을 확인할 수 있다.