20 alata komandne linije koje morate imati za praćenje performansi Linuxa


Biti sistemski ili mrežni administrator zadužen za praćenje i otklanjanje grešaka u radu Linux sistema na dnevnoj bazi je neizmjerno izazovna odgovornost.

Zahteva nepokolebljivu posvećenost, duboko razumevanje Linux sistema i stalnu posvećenost obezbeđivanju optimalnih performansi i pouzdanosti.

Nakon što sam deceniju posvetio radu kao Linux administrator u IT industriji, počeo sam da zaista cenim težak zadatak nadgledanja i obezbeđivanja kontinuiranog rada sistema.

U svetlu ovoga, sastavili smo sveobuhvatnu listu 20 najčešće korišćenih alata za praćenje komandne linije. Ovi neprocjenjivi alati mogu se pokazati neophodnim za svakog administratora sistema Linux/Unix, osnažujući ih da efikasno nadgledaju, dijagnosticiraju i održavaju zdravlje i performanse svojih sistema.

Ovi alati za praćenje su dostupni u svim verzijama Linuxa i mogu biti korisni za praćenje i pronalaženje stvarnih uzroka problema s performansama. Ova lista naredbi prikazana ovdje je sasvim dovoljna da odaberete onu koja je prikladna za vaš scenarij praćenja.

1. Vrh – Nadgledanje procesa u Linuxu

Linux top komanda je program za praćenje performansi koji često koriste mnogi sistemski administratori za praćenje performansi Linuxa i dostupna je pod mnogim Linux/Unix-ovim operativnim sistemima.

Naredba top se koristi za prikaz svih pokrenutih i aktivnih procesa u realnom vremenu u uređenoj listi i redovno je ažurira. Prikazuje Potrošnja CPU-a, Potrošnja memorije, Zamijeni memoriju, Veličina keš memorije, Veličina međuspremnika >, PID procesa, Korisnik, Komande i još mnogo toga.

Takođe pokazuje visoku iskorišćenost memorije i procesora pokrenutih procesa. Naredba top je veoma korisna za sistemske administratore da nadgledaju i poduzmu korektivne mjere kada je to potrebno. Pogledajmo top komandu u akciji.

top

2. VmStat – Statistika virtuelne memorije

Linux VmStat komanda se koristi za prikaz statistike virtuelne memorije, kernel threadova, diskova, sistemskih procesa , I/O blokovi, prekidi, aktivnost CPU-a, i još mnogo toga.

Instalirajte VmStat na Linux

Po defaultu naredba vmstat nije dostupna pod Linux sistemima, morate instalirati paket pod nazivom sysstat (moćan alat za praćenje) koji uključuje program vmstat.

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]

Uobičajena upotreba formata naredbe vmstat je.

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 – Lista otvorenih datoteka

lsof komanda se koristi u mnogim sistemima nalik na Linux/Unix za prikaz liste svih otvorenih datoteka i procesa. Uključene otvorene datoteke su datoteke na disku, mrežne utičnice, cijevi, uređaji i procesi jako>.

Jedan od glavnih razloga za korištenje ove naredbe je kada se disk ne može isključiti i prikazuje grešku da se datoteke koriste ili otvaraju. Pomoću ove naredbe možete lako identificirati koje datoteke se koriste.

Najčešći format za naredbu lsof je.

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 – Analizator mrežnih paketa

Naredba tcpdump je jedan od najčešće korištenih programa analizator mrežnih paketa ili sniffer paketa koji se koristi za hvatanje ili filtriranje naredbenog retka >TCP/IP paketi koji se primaju ili prenose na određenom interfejsu preko mreže.

Također pruža opciju za spremanje snimljenih paketa u datoteku za kasniju analizu. tcpdump je gotovo dostupan u svim glavnim distribucijama Linuxa.

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 – Mrežna statistika

netstat je alat komandne linije za praćenje statistike dolaznih i odlaznih mrežnih paketa, kao i statistike interfejsa. To je vrlo koristan alat za svakog administratora sistema za praćenje performansi mreže i rješavanje problema povezanih s mrežom.

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

Iako je u današnjem vremenu netstat zastario u korist naredbe ss, još uvijek možete otkriti netstat u svom kompletu alata za umrežavanje.

6. Htop – Nadgledanje procesa u Linuxu

htop je mnogo napredan interaktivni alat za praćenje procesa u Linuxu u realnom vremenu, koji je mnogo sličan Linux top komandi, ali ima neke bogate funkcije kao što je korisnički- prijateljski interfejs za upravljanje procesima, prečice, vertikalni i horizontalni prikazi procesa, i još mnogo toga.

htop

htop je alat treće strane, koji ne dolazi s Linux sistemima, morate ga instalirati pomoću alata za upravljanje paketima vašeg sistema.

Za više informacija o htop instalaciji pročitajte naš članak – Instalirajte Htop (Linux Process Monitoring) u Linuxu.

7. Iotop – Monitor Linux Disk I/O

iotop je također mnogo sličan top komandi i htop programu, ali ima računovodstvenu funkciju za praćenje i prikaz u realnom vremenu Disk I/O i procesi.

iotop alat je veoma koristan za pronalaženje tačnog procesa i veoma korišćenog diska za čitanje/upisivanje procesa.

Instalirajte Iotop na Linux

Podrazumevano, naredba iotop nije dostupna pod Linuxom i morate je instalirati kao što je prikazano.

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]

Uobičajena upotreba formata naredbe iotop je.

iotop

8. Iostat – Statistika ulaza/izlaza

iostat je jednostavan alat koji će prikupljati i prikazati sistemske ulazne i izlazne statistike uređaja za pohranu. Ovaj alat se često koristi za praćenje problema s performansama uređaja za pohranu uključujući uređaje, lokalne diskove i udaljene diskove kao što je NFS >.

Instalirajte Iostat na Linux

Da biste dobili naredbu iostat, morate instalirati paket pod nazivom sysstat kao što je prikazano.

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]

Uobičajena upotreba formata naredbe iostat je.

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 nadzor u realnom vremenu

IPTraf je uslužni program za nadgledanje mreže u realnom vremenu (IP LAN) otvorenog koda baziran na konzoli za Linux. Prikuplja razne informacije kao što je monitor IP saobraćaja koji prolazi preko mreže, uključujući informacije o TCP zastavici, ICMP detalje, kvarove TCP/UDP saobraćaja, pakete TCP veze i broj bajtova.

Takođe prikuplja informacije o opštoj i detaljnoj statistici interfejsa za TCP, UDP, IP, ICMP, non-IP, greške IP kontrolne sume, aktivnosti interfejsa itd.

10. Psacct ili Acct – Nadgledanje aktivnosti korisnika

Alati psacct ili acct su veoma korisni za praćenje aktivnosti svakog korisnika na sistemu. Oba demona rade u pozadini i pažljivo prate ukupnu aktivnost svakog korisnika na sistemu, kao i resurse koje oni troše.

Ovi alati su veoma korisni za sistemske administratore da prate aktivnosti svakog korisnika kao što su šta radi, koje su komande izdali, koliko resursa koriste, koliko dugo su aktivni na sistemu itd.

11. Monit – Nadgledanje procesa i usluga u Linuxu

Monit je besplatni open-source i web-bazirani uslužni program za nadzor procesa koji automatski nadgleda i upravlja sistemskim procesima, programima, datotekama, direktorijima, dozvolama, kontrolnim zbrojima i sistemima datoteka.

Nadzire usluge kao što su Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH, itd. Status sistema se može vidjeti iz komandne linije ili korištenjem vlastitog web sučelja.

Za instalaciju i konfiguraciju, pročitajte naš članak – Kako instalirati i podesiti program Monit (nadgledanje procesa i usluga u Linuxu).

12. NetHogs – Nadgledanje propusnosti mreže po procesu

NetHogs je lijep mali program otvorenog koda (slično Linux top komandi) koji vodi računa o svakoj mrežnoj aktivnosti procesa na vašem sistemu. Takođe prati propusni opseg mrežnog saobraćaja u realnom vremenu koji koristi svaki program ili aplikacija.

nethogs

Za instalaciju i upotrebu, pročitajte naš članak: Nadgledanje propusnosti Linux mreže koristeći NetHogs

13. iftop – Nadgledanje propusnosti mreže

iftop je još jedan besplatni uslužni program otvorenog koda za nadgledanje sistema baziran na terminalu koji prikazuje često ažuriranu listu korištenja mrežnog propusnog opsega (izvorni i odredišni hostovi) koji prolazi kroz mrežni interfejs na vašem sistemu.

iftop je analogan 'top' u kontekstu korištenja mreže, slično tome kako 'top' pruža uvid u korištenje CPU-a.

iftop pripada cijenjenoj 'top' porodici alata za praćenje mreže. Posebno dizajniran za posmatranje mrežnog interfejsa koji je izabrao korisnik, on u realnom vremenu prikazuje podatke o trenutnoj upotrebi propusnog opsega između dva navedena hosta.

iftop

Za instalaciju i upotrebu pročitajte naš članak: iftop – Nadgledanje iskorištenosti mrežnog pojasa

14. Monitorix – Monitoring sistema i mreže

Monitorix je besplatni lagani uslužni program koji je dizajniran za pokretanje i praćenje sistemskih i mrežnih resursa što je više moguće na Linux/Unix serverima.

Ima ugrađen HTTP web server koji redovno prikuplja informacije o sistemu i mreži i prikazuje ih u grafikonima. Nadzire prosjek opterećenja sistema i korištenje, alokaciju memorije, zdravlje drajvera diska, sistemske usluge, mrežu portovi, statistika pošte (Sendmail, Postfix, Dovecot, itd.), MySQL statistika,i još mnogo toga.

Dizajniran je da prati ukupne performanse sistema i pomaže u otkrivanju kvarova, uskih grla, abnormalnih aktivnosti itd.

Za instalaciju i upotrebu pročitajte naš članak: Monitorix alat za nadzor sistema i mreže za Linux

15. Arpwatch – Monitor aktivnosti Etherneta

Arpwatch je vrsta programa koji je dizajniran za praćenje rezolucije adrese (MAC i IP promjene adrese) Etherneta mrežni promet na Linux mreži.

Neprekidno prati Ethernet promet i proizvodi dnevnik promjena para IP i MAC adresa zajedno sa vremenskom oznakom na mreži. Takođe ima funkciju za slanje e-mail upozorenja administratorima, kada se uparivanje doda ili promeni. Veoma je koristan u otkrivanju ARP lažiranja na mreži.

Za instalaciju i upotrebu pročitajte naš članak: Arpwatch za praćenje Ethernet aktivnosti

16. Suricata – Monitoring mrežne sigurnosti

Suricata je mrežna sigurnost i detekcija upada i sistem za nadzor prevencije otvorenog koda visokih performansi za Linux, FreeBSD, i Windows.

Dizajnirana je i u vlasništvu neprofitne fondacije OISF (Open Information Security Foundation).

Za instalaciju i upotrebu pročitajte naš članak: Suricata – Sistem za otkrivanje i prevenciju upada u mrežu

17. VnStat PHP – Nadgledanje propusnosti mreže

VnStat PHP je web-bazirana frontend aplikacija za najpopularniji mrežni alat pod nazivom „vnstat“. VnStat PHP prati korištenje mrežnog saobraćaja u lijepom grafičkom načinu.

Prikazuje ukupnu IN i OUT upotrebu mrežnog saobraćaja u satnim, dnevnim, mjesečnim, jaki> i potpuni sažeti izvještaji.

Za instalaciju i upotrebu pročitajte naš članak: Nadgledanje korištenja mrežnog pojasa

18. Nagios – Monitoring mreže/servera

Nagios je vodeći moćni sistem za praćenje otvorenog koda koji omogućava administratorima mreže/sistema da identifikuju i riješe probleme vezane za server prije nego što utiču na glavne poslovne procese.

Sa Nagios sistemom, administratori mogu da nadgledaju udaljeni Linux, Windows, prekidače, rutere i štampače u jednom prozoru. Prikazuje kritična upozorenja i ukazuje da li je nešto pošlo po zlu u vašoj mreži/serveru što vam indirektno pomaže da započnete procese sanacije prije nego što se oni dese.

Za instalaciju, konfiguraciju i upotrebu pročitajte naš članak – Instalirajte Nagios Monitoring System za nadgledanje udaljenih Linux/Windows hostova

19. Nmon: Nadgledanje performansi Linuxa

Nmon (skraćenica od Nigel's Performance Monitor) alat, koji se koristi za praćenje svih Linux resursa kao što su CPU, memorija, korištenje diska, mreža, vrhunski procesi, NFS, kernel i još mnogo toga. Ovaj alat dolazi u dva načina: Online Mode i Capture Mode.

Online način rada se koristi za praćenje u realnom vremenu, a način snimanja se koristi za pohranjivanje izlaza u CSV formatu za kasniju obradu.

Za instalaciju i upotrebu pročitajte naš članak: Instalirajte Nmon (Performance Monitoring) alat u Linux

20. Collectl: All-in-One Alat za praćenje performansi

Collectl je još jedan moćan i bogat uslužni program baziran na komandnoj liniji, koji se može koristiti za prikupljanje informacija o Linux sistemskim resursima kao što su korištenje CPU-a, memorije, mreže, inode, procesa, nfs, TCP , utičnice i još mnogo toga.

Za instalaciju i upotrebu pročitajte naš članak: Instalirajte Collectl (sve-u-jednom za praćenje performansi) alat u Linuxu

Željeli bismo znati koje vrste programa za praćenje koristite za praćenje performansi vaših Linux servera. Ako smo propustili neki važan alat koji biste željeli da uvrstimo na ovu listu, obavijestite nas putem komentara i ne zaboravite ga podijeliti.