Network monitoring by process using nethogs

By | 2021년 8월 4일

서비스를 하다보면 원인 모를 트래픽이 증가하는 경우가 있다.

대부분 이런 경우는 크롤링일 경우가 많은데 그렇지 않을경우 어디서 트래픽을 발생되는지 궁금할 때가 있다.

그럴때 좋은툴이 nethogs 이다.

네트워크를 사용하는 프로세스별로 송/수신 양을 보여준다.

ubuntu 나 centos 경우는 패키지 매니저로 쉽게 설치 할 수 있다.

Ubuntu
$ sudo apt-get install nethogs

Centos
# yum install nethogs

그 외에 리눅스의 경우 소스를 빌드해서 사용하면 된다.

나같은 경우는 Amazon Linux에서 실행을 했어야 하는데 Amazon Linux 패키지 매니저에는 해당 패키지가 없었다.

그래서 도커로 아마존 리눅스 이미지를 받아서 빌드 후 바이너리만 업로드 해서 실행하였다.

Docker Run

$ docker run --rm -it --name=amazonlinux-server -v $PWD:/host 137112412989.dkr.ecr.us-east-1.amazonaws.com/amazonlinux:latest /bin/bash

bash-4.2 # yum install gcc-c++ libpcap-devel.x86_64 libpcap.x86_64 make git "ncurses*" 
bash-4.2 # git clone https://github.com/raboof/nethogs.git
bash-4.2 # cd nethogs && make
bash-4.2 # cp ./src/nethogs /host
bash-4.2 # exit

host로 복사된 nethogs 만 Amazon Linux에 올려서 실행하면 된다.