Hvordan produsere og levere systemaktivitetsrapporter ved hjelp av Linux-verktøysett - del 3


Som systemingeniør vil du ofte måtte lage rapporter som viser utnyttelsen av systemets ressurser for å sikre at: 1) de blir utnyttet optimalt, 2) forhindrer flaskehalser, og 3) sikrer skalerbarhet, blant annet.

I tillegg til de velkjente native Linux-verktøyene som brukes til å sjekke disk-, minne- og CPU-bruk – for å nevne noen eksempler, har Red Hat Enterprise Linux 7 ytterligere to verktøysett for å forbedre dataene du kan samle inn for rapportene dine: sysstat og dstat .

I denne artikkelen vil vi beskrive begge deler, men la oss først starte med å se gjennom bruken av de klassiske verktøyene.

Innfødte Linux-verktøy

Med df vil du kunne rapportere diskplass og inodebruk av filsystem. Du må overvåke begge deler fordi mangel på plass vil forhindre at du kan lagre flere filer (og kan til og med føre til at systemet krasjer), akkurat som å gå tom for inoder betyr at du ikke kan koble flere filer med tilhørende data strukturer, og dermed produsere den samme effekten: du vil ikke kunne lagre disse filene på 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]

Med du kan du estimere bruken av filplass etter enten fil, katalog eller filsystem.

La oss for eksempel se hvor mye plass som brukes av /home-katalogen, som inkluderer alle brukerens personlige filer. Den første kommandoen vil returnere den totale plassen som brukes av hele /home-katalogen, mens den andre også vil vise en oppdelt liste etter underkatalog:

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

Ikke gå glipp av:

  1. 12 'df'-kommandoeksempler for å sjekke Linux-diskplassbruk
  2. 10 'du'-kommandoer for å finne diskbruk av filer/kataloger

Et annet verktøy som ikke kan mangle fra verktøysettet ditt er vmstat. Den lar deg raskt se informasjon om prosesser, CPU- og minnebruk, diskaktivitet og mer.

Hvis den kjøres uten argumenter, vil vmstat returnere gjennomsnitt siden siste omstart. Selv om du kan bruke denne formen for kommandoen en gang i blant, vil det være mer nyttig å ta en viss mengde systemutnyttelsesprøver, etter hverandre, med en definert tidsseparasjon mellom prøvene.

For eksempel,

# vmstat 5 10

vil returnere 10 prøver tatt hvert 5. sekund:

Som du kan se i bildet ovenfor, er utgangen til vmstat delt av kolonner: procs (prosesser), minne, swap, io, system og cpu. Betydningen av hvert felt finner du i FELTBESKRIVELSE-delene på man-siden til vmstat.

Hvor kan vmstat komme til nytte? La oss undersøke oppførselen til systemet før og under en yum-oppdatering:

# vmstat -a 1 5

Vær oppmerksom på at etter hvert som filer endres på disken, øker mengden aktivt minne, og det samme gjør antallet blokker skrevet til disk (bo) og CPU-tiden som er dedikert til brukerprosesser (oss).

Eller under lagringsprosessen av en stor fil direkte til disk (forårsaket av dsync):

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

I dette tilfellet kan vi se et enda større antall blokker som skrives til disk (bo), som var å forvente, men også en økning i mengden CPU-tid som den må vente på at I/O-operasjoner skal fullføres før behandlingsoppgaver (wa).

Ikke gå glipp av: Vmstat – Linux Performance Monitoring

Andre Linux-verktøy

Som nevnt i introduksjonen av dette kapittelet, er det andre verktøy du kan bruke for å sjekke systemstatus og bruk (de leveres ikke bare av Red Hat, men også av andre store distribusjoner fra deres offisielt støttede arkiver).

Sysstat-pakken inneholder følgende verktøy:

  1. sar (samle inn, rapporter eller lagre informasjon om systemaktivitet).
  2. sadf (vis data samlet inn av sar i flere formater).
  3. mpstat (rapporter prosessorrelatert statistikk).
  4. iostat (rapporter CPU-statistikk og I/O-statistikk for enheter og partisjoner).
  5. pidstat (rapportstatistikk for Linux-oppgaver).
  6. nfsiostat (rapporter inn-/utdatastatistikk for NFS).
  7. cifsiostat (rapporter CIFS-statistikk) og
  8. sa1 (samle inn og lagre binære data i den daglige datafilen for systemaktivitet.
  9. sa2 (skriv en daglig rapport i /var/log/sa-katalogen) verktøy.

mens dstat legger til noen ekstra funksjoner til funksjonaliteten som tilbys av disse verktøyene, sammen med flere tellere og fleksibilitet. Du kan finne en generell beskrivelse av hvert verktøy ved å kjøre henholdsvis yum info sysstat eller yum info dstat, eller sjekke de individuelle man-sidene etter installasjonen.

Slik installerer du begge pakkene:

# yum update && yum install sysstat dstat

Hovedkonfigurasjonsfilen for sysstat er /etc/sysconfig/sysstat. Du finner følgende parametere i den filen:

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

Når sysstat er installert, legges to cron-jobber til og aktiveres i /etc/cron.d/sysstat. Den første jobben kjører systemaktivitetsregnskapsverktøyet hvert 10. minutt og lagrer rapportene i /var/log/sa/saXX der XX er dagen i måneden.

Dermed vil /var/log/sa/sa05 inneholde alle systemaktivitetsrapportene fra den 5. i måneden. Dette forutsetter at vi bruker standardverdien i HISTORY-variabelen i konfigurasjonsfilen ovenfor:

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

Den andre jobben genererer et daglig sammendrag av prosessregnskap kl. 23:53 hver dag og lagrer det i /var/log/sa/sarXX-filer, der XX har samme betydning som i forrige eksempel:

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

Det kan for eksempel være lurt å sende ut systemstatistikk fra kl. 9.30 til kl. 17.30 den sjette i måneden til en .csv-fil som enkelt kan vises ved hjelp av LibreOffice Calc eller Microsoft Excel (denne tilnærmingen vil også tillate deg å lage diagrammer eller grafer):

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

Du kan alternativt bruke -j-flagget i stedet for -d i sadf-kommandoen ovenfor for å sende ut systemstatistikken i JSON-format, noe som kan være nyttig hvis du for eksempel trenger å konsumere dataene i en nettapplikasjon.

Til slutt, la oss se hva dstat har å tilby. Vær oppmerksom på at hvis den kjøres uten argumenter, antar dstat -cdngy som standard (forkortelse for henholdsvis CPU, disk, nettverk, minnesider og systemstatistikk), og legger til en linje hvert sekund (kjøring kan avbrytes når som helst med Ctrl + C) :

# dstat

For å sende ut statistikken til en .csv-fil, bruk –output-flagget etterfulgt av et filnavn. La oss se hvordan dette ser ut på LibreOffice Calc:

Jeg anbefaler deg på det sterkeste å sjekke man-siden til sysstat i PDF-format for å gjøre det lettere å lese. Du finner flere andre alternativer som vil hjelpe deg med å lage tilpassede og detaljerte systemaktivitetsrapporter.

Ikke gå glipp av: Sysstat – Overvåkingsverktøy for Linux-bruksaktivitet

Sammendrag

I denne veiledningen har vi forklart hvordan du bruker både native Linux-verktøy og spesifikke verktøy som følger med RHEL 7 for å produsere rapporter om systembruk. På et eller annet tidspunkt vil du komme til å stole på disse rapportene som bestevenner.

Du vil sannsynligvis ha brukt andre verktøy som vi ikke har dekket i denne opplæringen. I så fall, del dem gjerne med resten av fellesskapet sammen med andre forslag/spørsmål/kommentarer du måtte ha - ved å bruke skjemaet nedenfor.

Vi ser frem til å høre fra deg.