20 kommandolinjeverktøy for å overvåke Linux-ytelse


Det er virkelig en veldig tøff jobb for hver system- eller nettverksadministrator å overvåke og feilsøke problemer med Linux-systemytelse hver dag.

Etter å ha vært Linux-administrator i 10 år i IT-bransjen, ble jeg klar over hvor vanskelig det er å overvåke og holde systemene oppe og kjører.

Av denne grunn har vi satt sammen listen over de 20 mest brukte kommandolinjeovervåkingsverktøyene som kan være nyttige for alle Linux/Unix-systemadministratorer.

[Du vil kanskje også like: 16 nyttige verktøy for båndbreddeovervåking for å analysere nettverksbruk i Linux ]

Disse kommandoene er tilgjengelige under alle varianter av Linux og kan være nyttige for å overvåke og finne de faktiske årsakene til ytelsesproblemer. Denne listen over kommandoer som vises her, er nok til at du kan velge den som passer for ditt overvåkingsscenario.

Linux Top-kommando er et ytelsesovervåkingsprogram som brukes ofte av mange systemadministratorer for å overvåke Linux-ytelse, og det er tilgjengelig under mange Linux/Unix-lignende operativsystemer.

Den øverste kommandoen brukes til å vise alle kjørende og aktive sanntidsprosesser i en ordnet liste og oppdaterer den regelmessig. Den viser CPU-bruk, minnebruk, Swap Memory, Cache Size, Buffer Size, Process PID, User, Commands, og mye mer.

Den viser også høy minne og CPU-utnyttelse av kjørende prosesser. Den øverste kommandoen er mye nyttig for systemadministratorer for å overvåke og iverksette korrigerende tiltak når det er nødvendig. La oss se toppkommandoen i aksjon.

# top

For flere eksempler på Top-kommandoer les: 12 TOP-kommandoeksempler i Linux

Linux VmStat-kommandoen brukes til å vise statistikk over virtuelt minne, kjernetråder, disker, systemprosesser, I/O-blokker, avbrudd, CPU-aktivitet og mye mer.

Som standard er vmstat-kommandoen ikke tilgjengelig under Linux-systemer, du må installere en pakke kalt sysstat (et kraftig overvåkingsverktøy) som inkluderer et vmstat-program.

$ 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]

Den vanlige bruken av vmstat-kommandoformatet er.

# 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

For mer bruk og eksempler, les: 6 Vmstat Command Eksempler i Linux

lsof-kommandoen brukes i mange Linux/Unix-lignende systemer for å vise en liste over alle åpne filer og prosessene. De åpne filene som er inkludert er diskfiler, nettverkskontakter, rør, enheter og prosesser.

En av hovedårsakene til å bruke denne kommandoen er når en disk ikke kan demonteres og viser feilen om at filer brukes eller åpnes. Med denne kommandoen kan du enkelt identifisere hvilke filer som er i bruk.

Det vanligste formatet for lsof-kommando er.

# 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
...

For mer bruk og eksempler, les: 10 lsof kommandoeksempler i Linux

tcpdump-kommandoen er en av de mest brukte kommandolinjenettverkspakkeanalysator- eller pakkesnifferprogrammene som brukes til å fange opp eller filtrere TCP/IP-pakker som mottas eller overføres på et spesifikt grensesnitt over et nettverk.

Det gir også et alternativ for å lagre fangede pakker i en fil for senere analyse. tcpdump er nesten tilgjengelig i alle store Linux-distribusjoner.

# 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
...

For mer bruk og eksempler, les: 12 Tcpdump-kommandoeksempler i Linux

Netstat er et kommandolinjeverktøy for å overvåke innkommende og utgående nettverkspakkerstatistikk samt grensesnittstatistikk. Det er et veldig nyttig verktøy for hver systemadministrator for å overvåke nettverksytelsen og feilsøke nettverksrelaterte problemer.

# 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
...

For mer bruk og eksempler, les – 20 Netstat-kommandoeksempler i Linux.

Mens netstat i dag har blitt avviklet til fordel for ss-kommandoen, kan du fortsatt oppdage netstat i nettverksverktøysettet ditt.

htop er et mye avansert interaktivt og sanntids Linux prosessovervåkingsverktøy, som ligner mye på Linux toppkommando, men det har noen rike funksjoner som et brukervennlig grensesnitt for å administrere prosesser, snarveistaster, vertikale og horisontale visninger av prosessene, og mye mer.

# htop

htop er et tredjepartsverktøy, som ikke følger med Linux-systemer, du må installere det ved å bruke systempakkebehandlingsverktøyet. For mer informasjon om htop-installasjon, les artikkelen vår – Installer Htop (Linux Process Monitoring) i Linux.

iotop ligner også mye på toppkommando og htop-program, men den har en regnskapsfunksjon for å overvåke og vise sanntids Disk I/O og prosesser.

iotop-verktøyet er mye nyttig for å finne den nøyaktige prosessen og mye brukt disklesing/skriving av prosessene.

Som standard er ikke iotop-kommandoen tilgjengelig under Linux, og du må installere den som vist.

$ 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]

Den vanlige bruken av iotop-kommandoformatet er.

# iotop

For mer bruk og eksempler, les – Iotop – Monitor Linux Disk I/O Activity and Usage Per-Process Basis.

iostat er et enkelt verktøy som samler inn og viser systeminndata og -utdata for lagringsenhet. Dette verktøyet brukes ofte til å spore ytelsesproblemer for lagringsenheter, inkludert enheter, lokale disker, eksterne disker som NFS.

For å få iostat-kommandoen må du installere en pakke kalt sysstat som vist.

$ 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]

Den vanlige bruken av iostat-kommandoformatet er.

# 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

For mer bruk og eksempler, les – 6 Iostat-kommandoeksempler i Linux.

IPTraf er et åpen kildekode-konsollbasert sanntidsnettverk (IP LAN) overvåkingsverktøy for Linux. Den samler inn en rekke informasjon som IP-trafikkmonitor som passerer over nettverket, inkludert TCP-flagginformasjon, ICMP-detaljer, TCP/UDP-trafikkbrudd, TCP-tilkoblingspakke og bytetellinger.

Den samler også informasjon om generell og detaljert grensesnittstatistikk for TCP, UDP, IP, ICMP, ikke-IP, IP-sjekksumfeil, grensesnittaktivitet, etc.

For mer informasjon om installasjon og bruk, les – Real-Time Interactive IP LAN Monitoring with IPTraf Tool.

psacct eller acct-verktøy er svært nyttige for å overvåke hver brukers aktivitet på systemet. Begge demonene kjører i bakgrunnen og følger nøye med på den generelle aktiviteten til hver bruker på systemet og også hvilke ressurser som forbrukes av dem.

Disse verktøyene er svært nyttige for systemadministratorer for å spore hver brukers aktivitet som hva de gjør, hvilke kommandoer de utstedte, hvor mye ressurser som brukes av dem, hvor lenge de er aktive på systemet osv.

For installasjon og eksempelbruk av kommandoer, les artikkelen om Monitor User Activity med psacct eller acct

Monit er et gratis åpen kildekode og nettbasert prosessovervåkingsverktøy som automatisk overvåker og administrerer systemprosesser, programmer, filer, kataloger, tillatelser, kontrollsummer og filsystemer.

Den overvåker tjenester som Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH og så videre. Systemstatusen kan ses fra kommandolinjen eller ved å bruke dets eget webgrensesnitt.

For installasjon og konfigurasjon, les artikkelen vår – Hvordan installere og konfigurere Monit (Linux Process and Services Monitoring) Program.

NetHogs er et fint lite program med åpen kildekode (lik Linux toppkommando) som holder oversikt over hver prosessnettverksaktivitet på systemet ditt. Den holder også oversikt over båndbredden for nettverkstrafikk i sanntid som brukes av hvert program eller program.

# nethogs

For installasjon og bruk, les artikkelen vår: Monitor Linux Network Bandwidth Using NetHogs

iftop er et annet terminalbasert gratis åpen kildekode-systemovervåkingsverktøy som viser en ofte oppdatert liste over nettverksbåndbreddeutnyttelse (kilde- og destinasjonsverter) som går gjennom nettverksgrensesnittet på systemet ditt.

iftop vurderes for nettverksbruk, hva 'top' gjør for CPU-bruk. iftop er et topp-familieverktøy som overvåker et valgt grensesnitt og viser gjeldende båndbreddebruk mellom to verter.

# iftop

For installasjon og bruk, les artikkelen vår: iftop – Monitor Network Bandwidth Utilization

Monitorix er et gratis lettvektsverktøy som er designet for å kjøre og overvåke system- og nettverksressurser så mange som mulig i Linux/Unix-servere.

Den har en innebygd HTTP-nettserver som regelmessig samler inn system- og nettverksinformasjon og viser dem i grafer. Den overvåker nettverksporter, poststatistikk (Sendmail, Postfix, Dovecot, etc), MySQL-statistikk og mange flere.

Den er designet for å overvåke den generelle systemytelsen og hjelper til med å oppdage feil, flaskehalser, unormale aktiviteter, etc.

For installasjon og bruk, les artikkelen vår: Monitorix et system- og nettverksovervåkingsverktøy for Linux

Arpwatch er et slags program som er designet for å overvåke adresseoppløsningen til (MAC- og IP-adresseendringer) av Ethernet-nettverkstrafikk på et Linux-nettverk.

Den holder kontinuerlig øye med Ethernet-trafikk og produserer en logg over endringer i IP- og MAC-adressepar sammen med et tidsstempel på et nettverk. Den har også en funksjon for å sende e-postvarsler til administratorer når en sammenkobling legges til eller endres. Det er veldig nyttig for å oppdage ARP-spoofing på et nettverk.

For installasjon og bruk, les artikkelen vår: Arpwatch for å overvåke Ethernet-aktivitet

Suricata er et høyytelses åpen kildekode-nettverkssikkerhet og inntrengningsdeteksjon og forebyggingsovervåkingssystem for Linux, FreeBSD og Windows.

Den ble designet og eid av en non-profit stiftelse OISF (Open Information Security Foundation).

For installasjon og bruk, les artikkelen vår: Suricata – A Network Intrusion Detection and Prevention System

VnStat PHP er en nettbasert frontend-applikasjon for det mest populære nettverksverktøyet kalt vnstat. VnStat PHP overvåker bruk av nettverkstrafikk i pent grafisk modus.

Den viser total INN- og UT-nettverkstrafikkbruk i time-, daglig-, måneds- og fullstendige oppsummeringsrapporter.

For installasjon og bruk, les artikkelen vår: Monitoring Network Bandwidth Usage

Nagios er et ledende åpen kildekode kraftig overvåkingssystem som gjør det mulig for nettverks-/systemadministratorer å identifisere og løse serverrelaterte problemer før de påvirker store forretningsprosesser.

Med Nagios-systemet kan administratorer overvåke eksterne Linux, Windows, brytere, rutere og skrivere i ett enkelt vindu. Den viser kritiske advarsler og indikerer om noe gikk galt i nettverket/serveren, noe som indirekte hjelper deg med å starte utbedringsprosesser før de oppstår.

For installasjon, konfigurasjon og bruk, les artikkelen vår - Installer Nagios overvåkingssystem for å overvåke eksterne Linux/Windows-verter

19. Nmon: Overvåk Linux-ytelse

Nmon (står for Nigels ytelsesmonitor)-verktøy, som brukes til å overvåke alle Linux-ressurser som CPU, minne, diskbruk, nettverk, toppprosesser, NFS, kjerne og mye mer. Dette verktøyet kommer i to moduser: Online Mode og Capture Mode.

Online-modus brukes til sanntidsovervåking og fangstmodus brukes til å lagre utdata i CSV-format for senere behandling.

For installasjon og bruk, les artikkelen vår: Installer Nmon (Performance Monitoring) Tool i Linux

20. Collectl: Alt-i-ett verktøy for ytelsesovervåking

Collectl er nok et kraftig og funksjonsrikt kommandolinjebasert verktøy som kan brukes til å samle informasjon om Linux-systemressurser som CPU-bruk, minne, nettverk, inoder, prosesser, nfs, TCP, sockets og mye mer.

For installasjon og bruk, les artikkelen vår: Installer Collectl (All-in-One Performance Monitoring) Tool i Linux

Vi vil gjerne vite hva slags overvåkingsprogrammer du bruker for å overvåke ytelsen til Linux-serverne dine? Hvis vi har gått glipp av noe viktig verktøy som du vil at vi skal inkludere i denne listen, vennligst informer oss via kommentarer, og ikke glem å dele det.

[Du vil kanskje også like: 13 Linux Performance Monitoring Tools – Del 2 ]