Kako izdelati in dostaviti poročila o sistemski dejavnosti z uporabo nabora orodij Linux - 3. del


Kot sistemski inženir boste pogosto morali pripraviti poročila, ki prikazujejo izkoriščenost virov vašega sistema, da se prepričate, da: 1) se optimalno uporabljajo, 2) preprečijo ozka grla in 3) med drugimi razlogi zagotovijo razširljivost.

Poleg dobro znanih domačih orodij Linux, ki se uporabljajo za preverjanje uporabe diska, pomnilnika in procesorja - za naštevanje nekaj primerov, Red Hat Enterprise Linux 7 ponuja dva dodatna nabora orodij za izboljšanje podatkov, ki jih lahko zbirate za svoja poročila: sysstat in dstat .

V tem članku bomo opisali oboje, vendar najprej začnimo s pregledom uporabe klasičnih orodij.

Native Linux Tools

Z df boste lahko poročali o diskovnem prostoru in uporabi inode v datotečnem sistemu. Oboje morate spremljati, ker vam bo pomanjkanje prostora preprečilo, da bi lahko shranili nadaljnje datoteke (in lahko celo povzroči zrušitev sistema), tako kot zmanjšanje inodov pomeni, da ne morete povezati nadaljnjih datotek z ustreznimi podatki struktur, kar daje enak učinek: teh datotek ne boste mogli shraniti na disk.

# df -h 		[Display output in human-readable form]
# df -h --total         [Produce a grand total]
# df -i 		[Show inode count by filesystem]
# df -i --total 	[Produce a grand total]

Z du lahko ocenite zasedenost datotečnega prostora s pomočjo datoteke, imenika ali datotečnega sistema.

Poglejmo na primer, koliko prostora zasede imenik/home, ki vključuje vse uporabnikove osebne datoteke. Prvi ukaz bo vrnil celoten prostor, ki ga trenutno uporablja celotni imenik/home, drugi pa bo prikazal tudi razčlenjen seznam po podimeniku:

# du -sch /home
# du -sch /home/*

Ne zamudite:

  1. 12 primerov ukaza df za preverjanje uporabe prostora na disku Linux
  2. 10 primerov ukazov du za iskanje uporabe datotek/imenikov na disku

Še en pripomoček, ki ne sme manjkati v naboru orodij, je vmstat. Omogočil vam bo hiter ogled informacij o procesih, porabi procesorja in pomnilnika, aktivnosti diska in še več.

Če se zažene brez argumentov, bo vmstat vrnil povprečja od zadnjega ponovnega zagona. Čeprav lahko občasno uporabljate to obliko ukaza, bo bolj koristno vzeti določeno količino vzorcev za uporabo sistema, enega za drugim, z določeno časovno ločitvijo med vzorci.

Na primer

# vmstat 5 10

bo vrnil 10 vzorcev, odvzetih vsakih 5 sekund:

Kot lahko vidite na zgornji sliki, je izhod vmstata razdeljen na stolpce: procs (procesi), pomnilnik, swap, io, sistem in CPU. Pomen vsakega polja lahko najdete v razdelkih OPIS POLJA na priročni strani vmstat.

Kje lahko vmstat pride prav? Oglejmo si vedenje sistema pred in med posodobitvijo yum:

# vmstat -a 1 5

Upoštevajte, da se s spreminjanjem datotek na disku poveča količina aktivnega pomnilnika, poveča pa se tudi število blokov, zapisanih na disk (bo), in čas procesorja, ki je namenjen uporabniškim procesom (nam).

Ali med postopkom shranjevanja velike datoteke neposredno na disk (zaradi dsync):

# vmstat -a 1 5
# dd if=/dev/zero of=dummy.out bs=1M count=1000 oflag=dsync

V tem primeru lahko opazimo še večje število blokov, ki se zapisujejo na disk (bo), kar je bilo pričakovano, pa tudi povečanje časa CPU, ki ga mora počakati, da se I/O operacije zaključijo, preden naloge obdelave (wa).

Ne zamudite: Vmstat - Linux Performance Monitoring

Druga orodja za Linux

Kot smo že omenili v uvodu tega poglavja, obstajajo tudi druga orodja, s katerimi lahko preverite stanje in uporabo sistema (ne zagotavlja jih samo Red Hat, temveč tudi druge večje distribucije iz njihovih uradno podprtih skladišč).

Paket sysstat vsebuje naslednje pripomočke:

  1. sar (zbiranje, poročanje ali shranjevanje informacij o sistemski dejavnosti).
  2. sadf (prikaži podatke, ki jih zbira sar, v več oblikah).
  3. mpstat (statistika, povezana s procesorji poročil).
  4. iostat (poroča o statistiki CPU in I/O statistiki za naprave in particije).
  5. pidstat (statistika poročil za naloge Linuxa).
  6. nfsiostat (poroča o vhodno/izhodni statistiki za NFS).
  7. cifsiostat (poroča statistiko CIFS) in
  8. sa1 (zbiranje in shranjevanje binarnih podatkov v datoteko z dnevnimi podatki o sistemski dejavnosti.
  9. sa2 (napišite dnevno poročilo v imenik/var/log/sa).

ker dstat funkcionalnosti teh orodij doda nekaj dodatnih funkcij, skupaj z več števci in prilagodljivostjo. Splošen opis vsakega orodja lahko najdete tako, da zaženete yum info sysstat oziroma yum info dstat ali preverite posamezne strani z navodili po namestitvi.

Če želite namestiti oba paketa:

# yum update && yum install sysstat dstat

Glavna konfiguracijska datoteka za sysstat je/etc/sysconfig/sysstat. V tej datoteki boste našli naslednje parametre:

# How long to keep log files (in days).
# If value is greater than 28, then log files are kept in
# multiple directories, one for each month.
HISTORY=28
# Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
# Parameters for the system activity data collector (see sadc manual page)
# which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
# Compression program to use.
ZIP="bzip2"

Ko je sysstat nameščen, sta dodani in omogočeni dve opravili cron v /etc/cron.d/sysstat. Prvo opravilo zažene orodje za računovodstvo sistemskih dejavnosti vsakih 10 minut in poročila shrani v/var/log/sa/saXX, kjer je XX dan v mesecu.

Tako bo/var/log/sa/sa05 vseboval vsa poročila o sistemski dejavnosti od 5. v mesecu. To predvideva, da uporabljamo privzeto vrednost v spremenljivki HISTORY v zgornji konfiguracijski datoteki:

*/10 * * * * root /usr/lib64/sa/sa1 1 1

Drugo opravilo ustvari dnevni povzetek računovodstva procesov vsak dan ob 23:53 in ga shrani v datoteke/var/log/sa/sarXX, kjer ima XX enak pomen kot v prejšnjem primeru:

53 23 * * * root /usr/lib64/sa/sa2 -A

Na primer, morda želite prikazati sistemske statistične podatke od 9.30 do 17.30 v šestem mesecu v datoteko .csv, ki si jo lahko enostavno ogledate s pomočjo LibreOffice Calc ali Microsoft Excel (ta pristop vam bo omogočil tudi ustvarite grafikone ali grafe):

# sadf -s 09:30:00 -e 17:30:00 -dh /var/log/sa/sa06 -- | sed 's/;/,/g' > system_stats20150806.csv

Lahko pa uporabite zastavico -j namesto -d v zgornjem ukazu sadf za prikaz sistemskih statistik v obliki JSON, kar bi lahko bilo koristno, če na primer potrebujete podatke v spletni aplikaciji.

Na koncu poglejmo, kaj ponuja dstat. Če se zažene brez argumentov, dstat privzeto prevzame -cdngy (okrajšava za CPU, disk, omrežje, pomnilniške strani in statistiko sistema) in vsako sekundo doda eno vrstico (izvedbo lahko kadar koli prekinete s Ctrl + C) :

# dstat

Če želite statistiko prikazati v datoteki .csv, uporabite zastavico –output, ki ji sledi ime datoteke. Poglejmo, kako to izgleda na LibreOffice Calc:

Za lažje branje vam toplo priporočam, da si ogledate man stran sysstata v formatu PDF. Našli boste še nekaj drugih možnosti, ki vam bodo pomagale ustvariti prilagojena in podrobna poročila o sistemskih dejavnostih.

Ne zamudite: Sysstat - Linux Usage Activity Monitoring Tool

Povzetek

V tem priročniku smo razložili, kako uporabljati domača orodja Linux in posebne pripomočke, ki jih ponuja RHEL 7, za pripravo poročil o uporabi sistema. Na tej ali drugi točki se boste na ta poročila zanašali kot najboljši prijatelji.

Verjetno boste uporabili druga orodja, ki jih v tej vadnici nismo obravnavali. V tem primeru jih lahko delite z ostalimi člani skupnosti skupaj z vsemi drugimi predlogi/vprašanji/komentarji, ki jih morda imate - s pomočjo spodnjega obrazca.

Veselimo se vaših odzivov.