웹사이트 검색

Linux 성능을 모니터링하기 위한 20가지 필수 명령줄 도구


매일 Linux 시스템 성능 문제를 모니터링하고 디버깅하는 임무를 맡은 시스템 또는 네트워크 관리자가 되는 것은 엄청나게 어려운 책임입니다.

이를 위해서는 흔들리지 않는 헌신, Linux 시스템에 대한 깊은 이해, 최적의 성능과 안정성을 보장하기 위한 끊임없는 노력이 필요합니다.

10년 동안 IT 업계에서 Linux 관리자로 일한 후, 저는 시스템의 지속적인 운영을 모니터링하고 보장하는 힘든 작업에 대해 진심으로 감사하게 되었습니다.

이를 고려하여 우리는 자주 사용되는 명령줄 모니터링 도구 상위 20개의 포괄적인 목록을 선별했습니다. 이러한 귀중한 도구는 모든 Linux/Unix 시스템 관리자에게 없어서는 안 될 것으로 입증되어 시스템의 상태와 성능을 효율적으로 모니터링, 진단 및 유지 관리할 수 있도록 해줍니다.

이러한 모니터링 도구는 Linux의 모든 버전에서 사용할 수 있으며 성능 문제의 실제 원인을 모니터링하고 찾는 데 유용할 수 있습니다. 여기에 표시된 명령 목록은 모니터링 시나리오에 적합한 명령을 선택하기에 충분합니다.

1. 상단 – Linux 프로세스 모니터링

Linux top 명령은 많은 시스템 관리자가 Linux 성능을 모니터링하기 위해 자주 사용하는 성능 모니터링 프로그램이며 많은 Linux/Unix 계열 운영 체제에서 사용할 수 있습니다.

top 명령은 실행 중인 모든 실시간 프로세스와 활성 실시간 프로세스를 순서가 지정된 목록으로 표시하고 정기적으로 업데이트하는 데 사용됩니다. CPU 사용량, 메모리 사용량, 스왑 메모리, 캐시 크기, 버퍼 크기를 표시합니다. >, 프로세스 PID, 사용자, 명령 등.

또한 실행 중인 프로세스의 높은 메모리 및 CPU 사용률을 보여줍니다. top 명령은 시스템 관리자가 필요할 때 모니터링하고 수정 조치를 취하는 데 매우 유용합니다. top 명령이 실제로 작동하는 모습을 살펴보겠습니다.

top

2. VmStat - 가상 메모리 통계

Linux VmStat 명령은 가상 메모리, 커널 스레드, 디스크, 시스템 프로세스의 통계를 표시하는 데 사용됩니다. , I/O 블록, 인터럽트, CPU 활동 등이 있습니다.

Linux에 VmStat 설치

기본적으로 vmstat 명령은 Linux 시스템에서 사용할 수 없습니다. vmstat 프로그램이 포함된 sysstat(강력한 모니터링 도구)라는 패키지를 설치해야 합니다.

sudo yum install sysstat      [On Older CentOS/RHEL & Fedora]
sudo dnf install sysstat      [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
sudo apt-get install sysstat  [On Debian/Ubuntu & Mint]
sudo pacman -S sysstat        [On Arch Linux]

vmstat 명령 형식의 일반적인 사용법은 다음과 같습니다.

vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0  43008 275212   1152 561208    4   16   100   105   65  113  0  1 96  3  0

3. Lsof – 열린 파일 나열

lsof 명령은 많은 Linux/Unix 계열 시스템에서 열려 있는 모든 파일 및 프로세스 목록을 표시하는 데 사용됩니다. 포함된 열린 파일은 디스크 파일, 네트워크 소켓, 파이프, 장치프로세스입니다. 강하다>.

이 명령을 사용하는 주된 이유 중 하나는 디스크를 마운트 해제할 수 없고 파일이 사용 중이거나 열려 있다는 오류를 표시하는 경우입니다. 이 명령을 사용하면 사용 중인 파일을 쉽게 식별할 수 있습니다.

lsof 명령의 가장 일반적인 형식은 다음과 같습니다.

lsof

COMMAND     PID   TID TASKCMD             USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME
systemd       1                           root  cwd       DIR                8,2      224        128 /
systemd       1                           root  rtd       DIR                8,2      224        128 /
systemd       1                           root  txt       REG                8,2  1567768  134930842 /usr/lib/systemd/systemd
systemd       1                           root  mem       REG                8,2  2714928  134261052 /usr/lib64/libm-2.28.so
systemd       1                           root  mem       REG                8,2   628592  134910905 /usr/lib64/libudev.so.1.6.11
systemd       1                           root  mem       REG                8,2   969832  134261204 /usr/lib64/libsepol.so.1
systemd       1                           root  mem       REG                8,2  1805368  134275205 /usr/lib64/libunistring.so.2.1.0
systemd       1                           root  mem       REG                8,2   355456  134275293 /usr/lib64/libpcap.so.1.9.0
systemd       1                           root  mem       REG                8,2   145984  134261219 /usr/lib64/libgpg-error.so.0.24.2
systemd       1                           root  mem       REG                8,2    71528  134270542 /usr/lib64/libjson-c.so.4.0.0
systemd       1                           root  mem       REG                8,2   371736  134910992 /usr/lib64/libdevmapper.so.1.02
systemd       1                           root  mem       REG                8,2    26704  134275177 /usr/lib64/libattr.so.1.1.2448
systemd       1                           root  mem       REG                8,2  3058736  134919279 /usr/lib64/libcrypto.so.1.1.1c
...

4. Tcpdump - 네트워크 패킷 분석기

tcpdump 명령은 네트워크 패킷 분석기 또는 패킷 스니퍼 프로그램을 캡처하거나 필터링하는 데 사용되는 가장 널리 사용되는 명령줄 중 하나입니다. >TCP/IP 네트워크를 통해 특정 인터페이스에서 수신되거나 전송되는 패킷입니다.

또한 나중에 분석하기 위해 캡처된 패키지를 파일에 저장하는 옵션도 제공합니다. tcpdump는 모든 주요 Linux 배포판에서 거의 사용할 수 있습니다.

tcpdump -i enp0s3

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
10:19:34.635893 IP tecmint.ssh > 192.168.0.124.45611: Flags [P.], seq 2840044824:2840045032, ack 4007244093
10:19:34.636289 IP 192.168.0.124.45611 > tecmint.ssh: Flags [.], ack 208, win 11768, options 
10:19:34.873060 IP _gateway.57682 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:34.873104 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86
10:19:34.895453 IP _gateway.48953 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:34.895501 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86
10:19:34.992693 IP 142.250.4.189.https > 192.168.0.124.38874: UDP, length 45
10:19:35.010127 IP 192.168.0.124.38874 > 142.250.4.189.https: UDP, length 33
10:19:35.135578 IP _gateway.39383 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:35.135586 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86
10:19:35.155827 IP _gateway.57429 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:35.155835 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86
...

5. Netstat - 네트워크 통계

netstat수신발신 네트워크 패킷 통계와 인터페이스 통계를 모니터링하기 위한 명령줄 도구입니다. 이는 모든 시스템 관리자가 네트워크 성능을 모니터링하고 네트워크 관련 문제를 해결하는 데 매우 유용한 도구입니다.

netstat -a | more

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:sunrpc          0.0.0.0:*               LISTEN
tcp        0      0 tecmint:domain          0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost:postgres      0.0.0.0:*               LISTEN
tcp        0      0 tecmint:ssh             192.168.0.124:45611     ESTABLISHED
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:postgres      [::]:*                  LISTEN
udp        0      0 0.0.0.0:mdns            0.0.0.0:*
udp        0      0 localhost:323           0.0.0.0:*
udp        0      0 tecmint:domain          0.0.0.0:*
udp        0      0 0.0.0.0:bootps          0.0.0.0:*
udp        0      0 tecmint:bootpc          _gateway:bootps         ESTABLISHED
...

현재 netstat는 ss 명령으로 인해 더 이상 사용되지 않지만 네트워킹 툴킷에서 netstat를 계속 찾을 수 있습니다.

6. Htop - 리눅스 프로세스 모니터링

htop은 훨씬 발전된 대화형 실시간 Linux 프로세스 모니터링 도구로, Linux top 명령과 매우 유사하지만 사용자- 프로세스, 단축키, 프로세스의 수직 및 수평 보기 등을 관리할 수 있는 친숙한 인터페이스입니다.

htop

htop은 Linux 시스템과 함께 제공되지 않는 타사 도구이므로 시스템 패키지 관리자 도구를 사용하여 설치해야 합니다.

htop 설치에 대한 자세한 내용은 Linux에 Htop(Linux 프로세스 모니터링) 설치 기사를 참조하세요.

7. Iotop - Linux 디스크 I/O 모니터링

iotoptop 명령htop 프로그램과 매우 유사하지만 실시간으로 모니터링하고 표시하는 계정 기능이 있습니다 디스크 I/O프로세스.

iotop 도구는 정확한 프로세스와 프로세스에서 많이 사용되는 디스크 읽기/쓰기를 찾는 데 매우 유용합니다.

Linux에 Iotop 설치

기본적으로 iotop 명령은 Linux에서 사용할 수 없으며 표시된 대로 설치해야 합니다.

sudo yum install iotop      [On Older CentOS/RHEL & Fedora]
sudo dnf install iotop      [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
sudo apt-get install iotop  [On Debian/Ubuntu & Mint]
sudo pacman -S iotop        [On Arch Linux]

iotop 명령 형식의 일반적인 사용법은 다음과 같습니다.

iotop

8. Iostat – 입출력 통계

iostat은 시스템 입력출력 저장 장치 통계를 수집하고 표시하는 간단한 도구입니다. 이 도구는 기기, 로컬 디스크, 원격 디스크(예: NFS )를 포함한 저장 장치 성능 문제를 추적하는 데 자주 사용됩니다. .

Linux에 Iostat 설치

iostat 명령을 얻으려면 그림과 같이 sysstat라는 패키지를 설치해야 합니다.

sudo yum install sysstat      [On Older CentOS/RHEL & Fedora]
sudo dnf install sysstat      [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
sudo apt-get install sysstat  [On Debian/Ubuntu & Mint]
sudo pacman -S sysstat        [On Arch Linux]

iostat 명령 형식의 일반적인 사용법은 다음과 같습니다.

iostat

Linux 4.18.0-193.el8.x86_64 (tecmint)   04/05/2021      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.21    0.03    0.59    2.50    0.00   96.67

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               3.95        83.35        89.63    1782431    1916653

9. IPTraf – 실시간 IP LAN 모니터링

IPTrafLinux용 오픈 소스 콘솔 기반 실시간 네트워크(IP LAN) 모니터링 유틸리티입니다. TCP 플래그 정보, ICMP 세부 정보, TCP/UDP 트래픽 분석, TCP 연결 패킷, 바이트 수 등 네트워크를 통과하는 IP 트래픽 모니터와 같은 다양한 정보를 수집합니다.

또한 TCP, UDP, IP, ICMP, 비IP, IP 체크섬 오류, 인터페이스 활동 등에 대한 일반 및 세부 인터페이스 통계에 대한 정보를 수집합니다.

10. Psacct 또는 Acct - 사용자 활동 모니터링

psacct 또는 acct 도구는 시스템에서 각 사용자의 활동을 모니터링하는 데 매우 유용합니다. 두 데몬 모두 백그라운드에서 실행되며 시스템에서 각 사용자의 전반적인 활동과 이들이 소비하는 리소스를 면밀히 감시합니다.

이러한 도구는 시스템 관리자가 각 사용자의 활동(예: 수행 중인 작업, 실행한 명령, 사용된 리소스 수, 시스템에서 활성 상태인 기간 등)을 추적하는 데 매우 유용합니다.

11. Monit – Linux 프로세스 및 서비스 모니터링

Monit은 시스템 프로세스, 프로그램, 파일, 디렉터리, 권한, 체크섬 및 파일 시스템을 자동으로 모니터링하고 관리하는 무료 오픈 소스 및 웹 기반 프로세스 감독 유틸리티입니다.

Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH 등과 같은 서비스를 모니터링합니다. 시스템 상태는 명령줄이나 자체 웹 인터페이스를 사용하여 볼 수 있습니다.

설치 및 구성에 대해서는 Monit(Linux 프로세스 및 서비스 모니터링) 프로그램 설치 및 설정 방법 기사를 읽어보세요.

12. NetHogs – 프로세스별 네트워크 대역폭 모니터링

NetHogs는 시스템의 각 프로세스 네트워크 활동을 감시하는 멋진 오픈 소스 작은 프로그램(Linux top 명령과 유사)입니다. 또한 각 프로그램이나 응용 프로그램에서 사용하는 실시간 네트워크 트래픽 대역폭을 추적합니다.

nethogs

설치 및 사용에 대해서는 NetHogs를 사용하여 Linux 네트워크 대역폭 모니터링 문서를 읽어보세요.

13. iftop – 네트워크 대역폭 모니터링

iftop은 시스템의 네트워크 인터페이스를 통과하는 네트워크 대역폭 사용률(소스 및 대상 호스트)의 자주 업데이트되는 목록을 표시하는 또 다른 터미널 기반 무료 오픈 소스 시스템 모니터링 유틸리티입니다.

iftop은 'top'이 CPU 사용량에 대한 통찰력을 제공하는 방식과 마찬가지로 네트워크 사용량 측면에서 'top'과 유사합니다.

iftop은 존경받는 '최고' 네트워크 모니터링 도구 제품군에 속합니다. 사용자가 선택한 네트워크 인터페이스를 관찰하도록 특별히 설계된 이 제품은 지정된 두 호스트 간의 현재 대역폭 사용량에 대한 실시간 데이터를 렌더링합니다.

iftop

설치 및 사용법에 대해서는 iftop – 네트워크 대역폭 활용도 모니터링 기사를 읽어보세요.

14. Monitorix - 시스템 및 네트워크 모니터링

MonitorixLinux/Unix 서버에서 시스템 및 네트워크 리소스를 최대한 많이 실행하고 모니터링하도록 설계된 무료 경량 유틸리티입니다.

정기적으로 시스템 및 네트워크 정보를 수집하여 그래프로 표시하는 HTTP 웹 서버가 내장되어 있습니다. 시스템 로드 평균 및 사용량, 메모리 할당, 디스크 드라이버 상태, 시스템 서비스, 네트워크를 모니터링합니다. 포트, 메일 통계(Sendmail, Postfix, Dovecot 등), MySQL 통계 등이 있습니다.

전반적인 시스템 성능을 모니터링하도록 설계되었으며 오류, 병목 현상, 비정상적인 활동 등을 감지하는 데 도움이 됩니다.

설치 및 사용법에 대해서는 다음 기사를 읽어보십시오. Linux용 시스템 및 네트워크 모니터링 도구인 Monitorix

15. Arpwatch - 이더넷 활동 모니터

Arpwatch이더넷의 주소 확인(MACIP 주소 변경)을 모니터링하도록 설계된 일종의 프로그램입니다. Strong> Linux 네트워크의 네트워크 트래픽.

이더넷 트래픽을 지속적으로 감시하고 IPMAC 주소 쌍 변경 로그를 네트워크의 타임스탬프와 함께 생성합니다. 페어링이 추가되거나 변경되면 관리자에게 이메일 알림을 보내는 기능도 있습니다. 네트워크에서 ARP 스푸핑을 탐지하는 데 매우 유용합니다.

설치 및 사용법에 대해서는 기사를 읽어보십시오: 이더넷 활동을 모니터링하는 Arpwatch

16. Suricata – 네트워크 보안 모니터링

Suricata을 위한 고성능 오픈 소스 네트워크 보안, 침입 감지예방 모니터링 시스템입니다. Linux, FreeBSDWindows.

비영리 재단인 OISF(Open Information Security Foundation)가 설계하고 소유했습니다.

설치 및 사용법에 대해서는 Suricata – 네트워크 침입 탐지 및 예방 시스템 기사를 읽어보십시오.

17. VnStat PHP - 네트워크 대역폭 모니터링

VnStat PHP는 "vnstat"이라는 가장 널리 사용되는 네트워킹 도구를 위한 웹 기반 프런트엔드 애플리케이션입니다. VnStat PHP는 멋진 그래픽 모드로 네트워크 트래픽 사용량을 모니터링합니다.

시간별, 일별, 월별의 총 INOUT 네트워크 트래픽 사용량을 표시합니다. Strong> 및 전체 요약 보고서.

설치 및 사용에 대해서는 네트워크 대역폭 사용량 모니터링 문서를 읽어보세요.

18. Nagios - 네트워크/서버 모니터링

Nagios는 네트워크/시스템 관리자가 서버 관련 문제가 주요 비즈니스 프로세스에 영향을 미치기 전에 이를 식별하고 해결할 수 있도록 하는 선도적인 오픈 소스 강력한 모니터링 시스템입니다.

Nagios 시스템을 사용하면 관리자는 단일 창에서 원격 Linux, Windows, 스위치, 라우터 및 프린터를 모니터링할 수 있습니다. 이는 중요한 경고를 표시하고 네트워크/서버에 문제가 발생했는지 알려주므로 문제가 발생하기 전에 교정 프로세스를 시작하는 데 간접적으로 도움이 됩니다.

설치, 구성 및 사용법에 대해서는 기사를 읽어보십시오 - 원격 Linux/Windows 호스트를 모니터링하기 위해 Nagios 모니터링 시스템 설치

19. Nmon: 리눅스 성능 모니터링

Nmon(Nigel's Performance Monitor의 약자) 도구는 CPU, 메모리, 디스크 사용량, 네트워크, 최상위 프로세스, NFS, 커널 등과 같은 모든 Linux 리소스를 모니터링하는 데 사용됩니다. 이 도구는 온라인 모드와 캡처 모드의 두 가지 모드로 제공됩니다.

온라인 모드는 실시간 모니터링에 사용되고 캡처 모드는 나중에 처리하기 위해 출력을 CSV 형식으로 저장하는 데 사용됩니다.

설치 및 사용법에 대해서는 Linux에 Nmon(성능 모니터링) 도구 설치 문서를 읽어보세요.

20. Collectl: 올인원 성능 모니터링 도구

Collectl은 CPU 사용량, 메모리, 네트워크, inode, 프로세스, nfs, TCP 등 Linux 시스템 리소스에 대한 정보를 수집하는 데 사용할 수 있는 강력하고 기능이 풍부한 명령줄 기반 유틸리티입니다. , 소켓 등이 있습니다.

설치 및 사용법에 대해서는 Linux에 Collectl(올인원 성능 모니터링) 도구 설치 문서를 읽어보세요.

Linux 서버의 성능을 모니터링하기 위해 어떤 종류의 모니터링 프로그램을 사용하는지 알고 싶습니다. 이 목록에 포함시키고 싶은 중요한 도구가 누락된 경우 댓글을 통해 알려주시고 잊지 말고 공유해 주세요.