Linux 모니터링 도구

ohyujeong·2023년 12월 11일
0

linux

목록 보기
7/9

sar

sar 는 System Activity Report의 약자로 시스템의 CPU, 메모리, IO 정보를 수집하여 시스템 활동 보고서를 생성하는 명령어이다. 수집된 활동 보고서를 파일에 저장할 수 있다.

패키지 설치

sarsysstat 패키지의 일부 명령이다. sysstat 에는 sar 를 비롯해 iostat , pidstat , mpstat 명령어가 포함되어 있다. 리눅스 배포판에 기본으로 설치되는 것이 아니라서 따로 설치해주어야 한다.

sudo apt install sysstat

명령어 사용

sar [option] [간격] [횟수]

sar 명령어만 사용하면 이와 같은 출력 정보를 얻을 수 있다. 옵션을 주어 사용할 경우 아래와 같이 사용할 수 있다.

# 1초 간격으로 5번 CPU사용률 보고
sar -u 1 5

option

-u : CPU 사용률 정보를 보고한다.
-q : 로드 평균 정보(Load Average, 특정 시간 동안 시스템에 대기중인 프로세스의 평균 수)를 보고한다.
-r : 메모리 사용률 정보를 보고한다.
-b : 디스크 I/O 활동을 보고한다.
-w : 스왑 메모리 정보를 보고한다.
-d : 블록 디바이스 정보를 보고한다.
-n [키워드] : 네트워크 정보를 보고한다. 키워드에 ALL을 사용하면 모든 네트워크 정보를 출력한다. 키워드에는 DEV, NFS, SOCK, IP 등등 여러가지가 사용될 수 있다.
-o [저장 파일 이름] : 수집한 데이터를 파일로 저장한다.
-f [읽을 파일 이름] : 파일로 저장한 데이터를 읽는다.

데이터 수집 활성화시키기

위와 같이 data collecting이 활성화되지 않았다고 출력되면 아래 명령어로 /etc/default/sysstat 의 설정파일을 변경해주어야 한다.

sudo nano /etc/default/sysstat


ENABLED="false"ENABLED="true" 로 변경하고 ctrl + o 로 저장 - 엔터 - ctrl + x 로 나가기

변경한 내용을 확인한다. 추가로 데이터 수집 주기를 변경하길 원한다면 /etc/cron.d/sysstat 파일을 수정하면 된다. 수정을 마친 후 아래 명령어로 sysstat 서비스를 재시작한다.

sudo systemctl restart sysstat

데이터 수집 파일 생성 및 읽기 예시

sar -u -o cpu_data 1 5 -> CPU 사용률 데이터를 1초 간격으로 5회 수집하고 cpu_data 라는 이름의 파일에 저장한다.
sar -f cpu_data -> 파일로 저장한 데이터를 읽는다.


dstat

dstat 은 python 으로 작성한 vmstat, iostat, sar, ifstat 명령어의 대체제로 IO, CPU, Network 의 정보를 통합해서 모니터링할 수 있으며 플러그인을 통해서 기능을 확장할 수도 있다.

패키지 설치

sudo apt install dstat

명령어 사용

dstat

옵션없이 실행 시 -cdngy 옵션을 준 것과 동일하게 실행되며 CPU, disk, network, paging, system 정보를 갱신하면서 보여준다.

플러그인 사용

--list 옵션을 추가하여 명령어를 입력하면 전체 플러그인의 목록을 조회할 수 있다.

아래 형식으로 플러그인을 사용한다.

# 특정 플러그인 사용
dstat --[플러그인 이름]

# 여러 플러그인 사용
dstat --[플러그인1 이름] --[플러그인2 이름] --[플러그인3 이름]

# 옵션과 같이 사용
dstat -c --top-cpu

option

-c : CPU 사용량 출력
-d : Disk 입출력 정보 출력
-n : 네트워크 사용량 출력
-p : 현재 실행중인 프로세스 수 출력
-m : 메모리 사용량 출력
-r : I/O 요청 출력
-t : 현재 시간 출력
--output [파일경로] : 결과를 파일로 저장


iftop

iftop 은 활성화된 네트워크 인터페이스의 대역폭 관련 지표를 확인하기 위한 도구이다. if 는 interface를 의미하고 top 은 실행중인 프로세스 지표를 확인할 수 있는 top 명령어를 의미한다.

네트워크 인터페이스

네트워크 인터페이스는 컴퓨터와 private/public 네트워크간의 연결 지점으로, 컴퓨터와 네트워크 장비가 연결되는 물리적 혹은 가상적인 경로를 제공한다. 보통 네트워크 인터페이스라고 하면 NIC(Network Interface Card)를 말하는데, 네트워크 인터페이스는 꼭 물리적인 형태를 띄지 않아도 된다. 소프트웨어로 구현된 인터페이스인 Virtual Network Interface나 Loopback Interface와 같이 가상적인 형태를 띌 수도 있다. 모든 주고받는 데이터는 네트워크 인터페이스를 통해 전송되고 전달받는다.

패키지 설치

다음 명령어로 설치한다.

apt install iftop

명령어 사용

일반 user계정으로는 실행이 되지 않는다. 명령어 앞에 sudo 를 붙여 사용하거나 sudo su 명령어로 root user로 전환하여 사용해야한다.

iftop

네트워크 연결이 없다면 아래와 같이 빈 화면이 표시된다.

아래는 Firefox 브라우저를 키고 난 후의 iftop 실행화면이다.

  • 2개의 라인에 걸쳐 네트워크 연결이 보여진다. 첫번째 컬럼이 source를 나타내고 세번째 컬럼이 destination을 나타낸다. 그리고 그 사이 두번째 컬럼의 =><= 화살표를 통해 첫번째 라인은 송신이고, 두번째 라인은 수신임을 알 수 있다.
  • 오른쪽 3개의 컬럼들은 각각 최근 2초, 10초, 40초 동안의 데이터 트래픽 양을 보여준다.
  • 흰색 바(bar)의 너비는 해당 연결의 대역폭 사용량을 비율적으로 나타낸다. 예를 들어 여러 개의 연결이 있고 그 중 한 연결이 네트워크 트래픽의 대부분을 차지하고 있다면 그 연결의 바 너비는 더 길게 표시될 것이다.
  • 화면 하단에 나타나는 항목에 대한 설명은 다음과 같다.
    TX : Transmission(송신)을 의미하며, 네트워크 인터페이스를 통해 보내진 트래픽 양을 나타낸다.
    RX : Reception(수신)을 의미하며, 네트워크 인터페이스를 통해 받은 트래픽 양을 나타낸다.
    TOTAL : TXRX 를 합한 값으로, 전체 트래픽 양을 나타낸다.
    cum : Cumulative(누적)을 의미하며, iftop 명령을 실행한 이후로 누적된 트래픽의 총량을 TX, RX, TOTAL 별로 나타낸다.
    peak : 관찰한 기간 동안 최대 트래픽 양
    rates : 시간 간격(2초, 10초, 40초)에 대한 평균 트래픽 양

대역폭과 트래픽

  • 대역폭(Bandwidth)은 초당 처리할 수 있는 데이터의 양이다. 자동차=데이터, 도로=대역폭 이라고 한다면 도로가 넓을수록 자동차들이 막힘없이 달리듯이 '대역폭이 크다' 라는 것은 한 번에 많은 데이터를 전송할 수 있다는 뜻이다.
  • 트래픽(Traffic)이란 서버를 통해 최종 사용자에게 전달된 데이터의 양을 말한다. 전송량이라고도 한다.
    단위는 일반적으로 바이트단위로 (KBytes, MegaBytes, GigaBytes 등등) 표현한다. 다음과 같이 계산할 수 있다.
트래픽 = 용량 * 사용자 수 * 개수 
ex) 4GB 영화 * 10명 * 10개 = 400GB

option

다음과 같은 주요 option들이 있다.

  • -b : 상단의 bar 그래프 표시 없이 실행
  • -B : 상단의 bar 그래프 단위가 KB로 표시(기본값은 Mb)
  • -t : 텍스트 형식으로 디스플레이 됨
  • -i [인터페이스] : 인자로 넘긴 인터페이스의 네트워크 연결만 모니터링

이렇게 option을 추가하는 것에 더해 iftop 실행 중 화면에서도 option을 설정할 수 있다.
실행 중 H 를 누르면 다음과 같이 key 안내가 나타난다.
다음은 주요 key에 대한 기능 설명이다.

  • n : dnslookup을 활성화/비활성화
  • s : source host 보여주기 활성화/비활성화
  • d : destination host 보여주기 활성화/비활성화
  • p : 포트 표시 활성화/비활성화
  • 1/2/3 : 오른쪽 3개 컬럼을 1번째, 2번째, 3번째로 생각하고 각 번호의 컬럼을 내림차순으로 정렬

참고

sar 데이터 수집 활성화
https://www.fosslinux.com/113767/how-to-enable-data-collecting-for-sar-u-on-linux.htm
sar 명령어
https://hbase.tistory.com/326
dstat 명령어
https://www.lesstif.com/system-admin/linux-dstat-93127541.html

iftop
https://www.redhat.com/sysadmin/linux-interface-iftop
https://www.youtube.com/watch?v=uyT9fMnWGUM
인터페이스
https://mamu2830.blogspot.com/2022/10/what-is-loopback-interface.html
트래픽과 대역폭
https://kim-dragon.tistory.com/99
https://www.blueweb.co.kr/hostings/webhosting/w_sms_faq_view.html?number=459&f_nc1no=&f_c2no=&searchtext=&page=22&scale=15

profile
거친 돌이 다듬어져 조각이 되듯

0개의 댓글