SYSSTAT Howto: En Distribusjon og Configuration Guide for Linux Servers

Jeg husker en av de første tingene som tiltrakk meg til datamaskiner - vel, i tillegg til Pac-Man - var de blinkende lysene. Blå, gul, rød eller grønn, jeg didn,Äôt virkelig bryr seg om fargen, heller hva de mente. Jeg var nysgjerrig på hva som egentlig var at lyset rapportering? I,Äôm den type fyr som liker å ta ting fra hverandre for å lære hva som gjør dem tick.

Det startet med en høydemåler at min far, som var i Luftforsvaret, brakt hjem. Jeg ble umiddelbart nysgjerrig på hvordan det fungerte. Det var en god ting det var en gave og ikke noe som måtte settes tilbake på flyet som fjærer og tannhjul skutt ut kort tid etter sprengning den åpen. Som Humpty Dumpty, var jeg aldri i stand til å få det høydemåler sammen igjen, men det gjorde øke min sult å forstå ikke bare hvordan noe fungerer, men hvordan vet du forstår what,Äôs skjer?

SYSSTAT er et program består av flere verktøy som tilbyr avansert system ytelsesovervåking. Det gir muligheten til å lage en målbar baseline på server ytelse, samt evnen til å formulere, nøyaktig vurdere og konkludere hva som førte opp til et problem eller uventet hendelse. Kort sagt, det kan du skrelle tilbake lag av systemet for å se hvordan it,Äôs gjør ... på en måte det er den blinkende lys som forteller deg hva som skjer, bortsett fra at det blinker i en fil. SYSSTAT har bred dekning av resultatstatistikken og vil se følgende serverelementer:

Input /Output og overføringshastighet statistikk (global, per enhet, per partisjon, per nettverk filsystem og per Linux oppgave /PID)

CPU statistikk (global, per CPU og per Linux oppgave /PID), inkludert støtte for virtualisering arkitekturer

Minne og swap utnyttelse statistikk

Virtuelt minne, paging og feil statistikker og
Per-oppgave (per-PID) minne og siden feilstatistikker og
Global CPU og siden feilstatistikk for oppgaver og alle deres barn

Process skapelse aktivitet Anmeldelser
Avbruddsstatistikk (globale, per CPU og per interrupt, inkludert potensielle APIC avbryter kilder)

Omfattende nettverksstatistikk: nettverksaktivitet (antall pakker og kB mottas og sendes per sekund, etc.) inkludert feil fra nettverksenheter; nettverkstrafikk statistikk for IP, TCP, ICMP og UDP protokollene basert på SNMPv2 standarder.

NFS server og klient aktivitet

Socket statistikker og
Kjør køen og systembelastning statistikk

Kernel interne tabeller utnyttelse statistikk

System og per Linux oppgave switching aktivitet

Bytte statistikk

TTY-enhet aktivitet

(Liste kildekode - http://pagesperso-orange.fr/sebastien.godard/features.html)

Scope

Denne artikkelen dekker en kort oversikt over hvordan SYSSTAT verktøyet fungerer, innledende konfigurasjon, utplassering og testing på Linux baserte servere. Det inkluderer en valgfri systemkonfigurasjon guide for å skrive sysstat data i en MySQL database. Denne artikkelen er ikke ment å være en grundig forklaring av den interne driften av SYSSTAT, og heller ikke en detaljert manual på database lagring operasjoner.

Nå ... videre til de interessante delene av SYSSTAT!
< h2> Oversikt

SYSSTAT program består av flere verktøy. Hvert verktøy har en bestemt funksjon:

iostat rapporter CPU statistikk og input /output statistikk for enheter, skillevegger og nettverks filsystemer.

mpstat rapporterer individuelle eller kombinerte prosessor relatert statistikk.

pidstat rapporter statistikk for Linux oppgaver (prosesser): I /O, CPU, minne, etc.

sar samler, rapporter og sparer system aktivitet informasjon (CPU, minne, disker, avbrudd, nettverksgrensesnitt, TTY, kernel tabeller, NFS, stikkontakter etc.)

SADC er den systemaktiviteten datasamler, brukt som en backend for sar.

SA1 samler og lagrer binære data i systemet aktivitet daglig datafil. Det er et grensesnitt til SADC designet for å kjøres fra cron.

SA2 skriver en oppsummert daglig aktivitetsrapport. Det er et grensesnitt til sar designet for å kjøres fra cron.

SADF viser data samlet inn av sar i flere formater (CSV, XML, etc.) Dette er nyttig å laste ytelsesdata i en database, eller importere dem i et regneark for å lage grafer.

(Liste kildekode - http://pagesperso-orange.fr/sebastien.godard/documentation.html)

De fire viktigste komponentene som brukes i samling aktiviteter er sar, SA1, SA2 og cron. Sar er s
ystem a
ctivity r
eporter. Dette verktøyet vil vises tolket resultatene fra de innsamlede data. Sar er ran interaktivt av en administrator via kommandolinjen. Når en sar-filen er opprettet, er det skrevet inn i /var /log /SA katalogen og oppkalt sar ##. Den ## er en tallverdi som representerer den dag i måneden (dvs. sa03 ville være den tredje dag i måneden). Tallverdien endres tilsvarende uten system administrator intervensjon. Det er mange alternativ flagg å velge mellom å vise data i en sar fil for å vise informasjon om serverdrift, slik som cpu, nettverksaktivitet, NFS og stikkontakter. Disse alternativene kan sees ved å gjennomgå mannen sidene av sar.

SA1 er den interne mekanismen som utfører selve statistisk innsamling og skriver data til en binær fil på bestemte tidspunkter. Opplysningene er hentet fra /proc katalogen der Linux-kjernen skriver og vedlikeholder relevante data mens operativsystemet kjører. I likhet med sar, blir binærfilen skrives inn /var /log /SA og oppkalt sa ##. Igjen, ## representerer dagen i måneden (dvs. sar03 ville være den tredje dag i måneden). Enda en gang, endres tallverdi tilsvarende uten system administrator intervensjon.

Sa2 er ansvarlig for å konvertere SA1 binærfil i en lesbar format. Etter vellykket etableringen av binærfil sa ## blir det nødvendig å sette opp en cron oppgave som vil kalle SA2 bibliotekene å konvertere SA1 binærfil i den lesbare sar fil. SYSSTAT utnytter den planlagte cron kommandoen kjøres til å tegne og spille inn spesifiserte ytelsesdata basert på forhåndsdefinerte parametere. Det er ikke nødvendig å kjøre SA2 cron samtidig eller så ofte som SA1 cron. Den SA2 funksjonen vil opprette og skrive SAR-filen til /var /log /SA-katalogen.

Hvor ofte SYSSTAT, Äúwakes up,Äù å registrere og hvilke data som blir tatt til fange, bestemmes av operasjonelle behov, myndighetskrav og formål serveren blir overvåket. Disse loggene kan roteres til en sentral logging server og lagres for analyse på et senere tidspunkt om ønskelig.

SYSSTAT Configuration

Nå som du har oversikt over komponentene 40000 fot, videre til nitty modig av å bygge ut dine sysstat evner. Følgende er et forslag til grunnkonfigurasjon. Du kan justere for miljøet, men jeg vil gå gjennom en tradisjonell satt opp. Min testing miljø utnyttet en SUSE 10 Linux server.

Som en side bar, hver Linux-basert server jeg har kommet over, installert eller jobbet med har SYSSTAT pakken utplassert som en del av basis server satt opp ved installasjon . Jeg foreslår imidlertid at du alltid ser på muligheten til å oppgradere til den nyeste versjonen av SYSSTAT. Det vil gi bug korreksjon og flere ytelsesovervåking elementer som:

Autoconf støtte lagt.

Tilsetting av en ny kommando ("pidstat") som tar sikte på å vise statistikk for prosesser, tråder og deres barn (CPU, minne, I /O, oppgave switching aktivitet ...)

Bedre hotplug CPU støtte.

New VM personsøk beregninger lagt til sar -B.

Lagt feltet tcp-tw (antall stikkontakter i TIME_WAIT staten) til sar -n SOCK.

iostat kan nå vise navnet registrerte enheten av enhets Mapper enheter.

timestamped kommentarer kan nå settes inn i datafiler som er opprettet av SADC.

XML Schema-dokument lagt. Nyttig med SADF -x.

Språkstøtte forbedret: Lagt dansk, nederlandsk, kirgisisk, vietnamesisk og brasiliansk portugisisk oversettelser.

Alternativer -x og -X fjernet fra sar. Du skal nå bruke pidstat stedet.

Noen ukurante felt (super *, dquot * og rtsig *) ble fjernet fra sar -V. Lagt feltet pty-nr (antall pseudo-terminaler)

(Liste kildekode - http://pagesperso-orange.fr/sebastien.godard/features.html).

opprette planlagte SYSSTAT Monitoring

En ting om gangen - vi trenger å fortelle vår maskin for å spille inn SAR data. Kjernen må være klar over at det er å kjøre SYSSTAT å samle beregninger. Avhengig av din distribusjon, ved installasjon skaper en grunnleggende cron heter sysstat.cron i /etc /sysstat /for SUSE, eller i /etc/cron.d/sysstat for Red Hat. Hvis du bruker SUSE, anbefales det å skape SYSSTAT,Äôs cron jobb som en myk kobling oppdrag i /etc/cron.d peker til sysstat.cron i /etc /sysstat /. Jeg vil også foreslå at flere samlings ganger lages basert på tider når en server har potensiale til å bli mer aktive. Dette vil sikre innsamling av nøyaktig statistikk. Hva er vitsen med det å se at serveren er aldri opptatt på 2 i morgen? Data som samles inn i løpet av de travleste timene ville forskyve senere analyse og har potensial til å forårsake feilaktige tolkningen

 #Crontab for sysstat #Activity rapporter hentet og oppdatert hvert 10. minutt hver dag -. * /10 * * * * root /usr /lib /sa /SA1 #Update logge sar rapporterer hver dag klokken 2330 timer 30 23 * * * root /usr /lib /sa /SA2, AIA 

Etter softlink har blitt opprettet, må du starte cron daemon å tillate det å oppdater nye oppdrag:

 # rccron restart 

La oss bruke et skript for å lage en sar backup fil og losser til et angitt sted!

 # /bin /bash # Laget 04- Aug-09 /Kryptikos # Script for å lage backup og gi nytt navn til gjeldende vertsnavn og dato for sar fil og losser til lagringsanlegg. # Sykle gjennom katalogen en gang på jakt etter relevant SAR-filer. ls -1 /var /log /sa /sar * | mens lese sarname gjøre mv "$ sarname" $ ​​(echo "$ hostname" _ "$ sarname" _`date + "% Y% m% d, Äù`.bkup) gjort # Denne delen må endres. er det a. plassholder for kode for å avlaste den utpekte sar backup # fila nettopp laget til localhost, Dette er avhengig av din ops en sentral logging host eller database server # dvs. scp /var /log /. < sarlogname > < bruker > @ < vert >: /< ønsket plassering > < sette inn noen kode for å håndtere overføring via scp /ssh /mv /nc /eller annen metode > exit 

SYSSTAT vil nå kjøre og samle sar logg, gi den nytt navn og deretter avlaste den til det stedet du foretrekker.

Vel that,Äôs flott du sier, men hva om du don,Äôt har tid til å gre gjennom 30 dager igjen av sar rapporter og bare trenger en rask snap shot? En annen fin ting du kan gjøre med dette verktøyet er fange sanntid statistikk over hva som skjer med maskinen for eksempel på kommandolinjen kan du skrive:.

 # sar, Ain NFS 5 3 

Det vil ha SYSSTAT rapport all NFS aktivitet i fem sekunders intervaller for 3 ganger og rapportere det tilbake til terminalen.

 root @ mymachine # sar -n NFS 5 3 Linux 2.6.18 (mymachine) 08/04/2009 14:50:39 samtale /s retrans /s lese /s skrive /s tilgang /s getatt /s 14:50:44 0,00 0,00 0,00 0,00 0,00 0,00 14:50:49 0,00 0,00 0,00 0,00 0,00 0,00 14:50:54 0,00 0,00 0,00 0,00 0,00 0,00 Snitt: 0,00 0,00 0,00 0,00 0,00 0,00 

Så du har din sar dataregistrering, og du nå vet hvordan du skal bruke det for real-time kontroll. Du er fortsatt igjen med ganske mye data å gre gjennom. Det kan være at du don,Äôt trenger å se gjennom dine data før det er et problem og you,Äôd liker å spore tilbake på hvilket tidspunkt serveren begynte å ha problemer. Den neste delen av artikkelen omhandler en avansert konfigurasjon for oppbevaring av SAR data for senere henting.

MySQL Database Configuration

Hvis du kjører en server som ikke bærer en tung bruker legger det er greit å ha SAR-data bo lokalt på boksen. Men med store mengder systemytelse data som blir samlet inn fra en Linux server farm kjører mange programmer, vil jeg foreslå å etablere en database for lagring av relevant SYSSTAT informasjon. Ved å benytte en MySQL database, kan tilpassede data gjennomgås når som helst og tillate etablering av rapporter, inkludert diagrammer, som er mer detaljert i naturen. Det vil også muliggjøre analyse av tverrsnitt av relevante sysstat data fra flere servere på en gang. Dette vil lindre krever administrator /ingeniør gjennom individuelle SAR loggfiler forsøker å feilsøke eller identifisere problemer linje for linje. Bruken av en database reduserer tiden som kreves for å lokalisere og diagnostisere årsaken (e) til en server problem. Denne delen dekker database, oppsett og metodikk for å importere de registrerte loggene. Det anbefales å installere og bruke MySQL versjon 5.1 eller nyere for utnyttelse av forbedrede funksjoner og økt ytelse.

Start MySQL Daemon

Det står til grunn at å kjøre MySQL daemon må du allerede har installert MySQL. Hvis du ikke har installert MySQL now,Äôs det perfekte tidspunktet å ta en pause og ta den siste kopien. Du bør være i stand til å utnytte din distribution,Äôs pakkebehandleren å installere databasen, men hvis ikke, er det like enkelt (og den metoden jeg bruker vanligvis) å bare trekke en kopi fra http://dev.mysql.com/downloads /mysql /5.1.html # nedlastinger. Når du har MySQL installert, kan du starte den med følgende kommando:

 # < plassering av mysql > /bin /mysqld_safe --user = mysql --local-infile = 1 

Alternativet - user = forteller nissen for å kjøre som bruker mysql (må være en lokal POSIX-konto). Det er ikke anbefalt å kjøre MySQL daemon som root. Alternativet --local-infile = 1 forteller nissen for å aktivere LOAD DATA LOKAL INFILE, som gjør det mulig å skyve tabbed, csv og txt filer til en database fra en fil som er lagret lokalt på MySQL server.

Opprett SYSSTAT Database

Å komme ned til virksomheten nå at databasen er oppe og går, er det på tide å skape den infrastrukturen vi ønsker å henge våre SAR data på.


    Koble til MySQL server fra kommandolinjen:
     # < plassering av mysql > /bin /mysql --user = < bruker > -P Igjen må brukeren finnes på MySQL server; det er ikke et POSIX brukerkonto. The, AIP ber om et passord for å koble til MySQL-serveren. 

    Fra MySQL rask sjekk at databasen ikke allerede finnes:
     mysql > VIS databaser; 

    Opprett databasen:
     mysql > CREATE DATABASE < navnet på databasen >; 

    Grant rettigheter på den nyopprettede databasen til en spesifisert MySQL brukerkonto:
     mysql > GRANT ALL ON < navnet på databasen >. * TIL, AO < mysql brukernavn >, Ao @, Äôlocalhost,Äô; 

    Dette gir MYSQL angitte brukeren full kontroll over databasen, men bare når du kobler fra localhost MYSQL daemon kjører på. Hvis du foretrekker å få tilgang fra alternative steder for administrative formål, utføre ekstra kommando:

     mysql > GRANT ALL ON < navnet på databasen >. * TIL, AO < mysql brukernavn >, Ao @, AO%, Ao 

    Det er mulig å kontrollere og granulize tilgang via visse nettverk eller domener. For sikkerhet, hvis en database er utplassert, vil jeg lage en, Äúworkhorse,Äù konto for å gjennomføre opplastings. Denne arbeidshesten konto ville bare ha UPDATE rettigheter på de ønskede tabeller. I mitt tilfelle valgte jeg å nevne min database, Äúsystat_collection,Äù.

    Før:

     + ------------------------------ + | Database | + ------------------------------ + | information_schema | | Menagerie | | MySQL | | test | + ------------------------------ + 4 rader i sett (0,00 sek) 

    Etter:

     + ------------------------------ + | Database | + ------------------------------ + | information_schema | | Menagerie | | MySQL | | sysstat_collection | | test | + ------------------------------ + 5 rader i sett (0,00 sek) 

    skape den nødvendige Bord

    Vi har nå vår database, men vi må ta det ett skritt. Databasen må være, Äúmade-ready,Äù å godta innkommende SAR data. Dette gjøres ved å bygge tabeller. Tenk på tabeller som en bokhylle. Hver blokk (tabell) vil holde bøker (SAR data). Den enkleste metoden for å sette inn tabeller i databasen er å skape og utnytte SQL-skript. Disse skriptene kan raskt påberopes av MySQL daemon og dyttet inne i databasen. Hver script bør ha et unikt navn som slutter med sql forlengelse. En grunnleggende SYSSTAT konfigurasjon ville kreve 18 bord. I,Äôve skrevet et eksempel sql script for deg å bruke:

    Eksempel SQL script: create_cpuutilization_table.sql

     # Laget 04-Aug-09 /Kryptikos # slippe prosessorbruk bordet hvis den finnes Da gjenskape det. DROP TABLE IF eksisterer cpuutilization; CREATE TABLE cpuutilization (hostname VARCHAR (20), tidspunkt dato, klokkeslett VARCHAR (8), cpu VARCHAR (3), pct_user DECIMAL (10,2), pct_nice DECIMAL (10,2), pct_system DECIMAL (10,2), pct_iowait DECIMAL (10,2), pct_steal DECIMAL (10,2), pct_idle DECIMAL (10,2)); 

    Bryte det ned i forståelige biter, er CPU utnyttelse ett av elementene SYSSTAT vil ta opp. SYSSTAT vil stemple kjernen, hostname, dato, klokkeslett og deretter SAR-verdien i strengen (se resultatet i, Aureal-time,Äù eksempel tidligere i artikkelen). Jeg vet hva kernel versjon jeg bruker så egentlig alt jeg er interessert i er vertsnavn (fordi jeg fange flere servere til denne databasen), dato, klokkeslett og cpu elementer. Hver sar verdi har sine egne elementer. Den raskeste måten å se dette på er å bruke mannen sidene av sar for å se hvilke verdier SAR poster.

    Remembering tenker på en databasetabell som en bokhylle, den ovennevnte verdier vertsnavn, tidspunkt, tid, cpu, pct_user, pct_nice, etc. er de åpne hyller. Du må ha sokkelen før du kan legge en bok. For hver bok type (sar element) har du trenger du en hylle (tabell punkt).

    Distribuer Tabeller inn i MySQL Database

    Det er bra om .SQL scripts er at de kan påberopes direkte av MySQL daemon. Det er ikke nødvendig å logge seg inn og få en MySQL teksten fra serveren. Du kan bare mate skriptfilen til nissen som vil analysere og utføre kommandoer på dine vegne. Skum, skyll og gjenta for hvert bord du ønsker å sette inn i databasen, eller lage et bash script for å mate .SQL skript på en gang. Følgende er kommandostruktur for å utføre bordet skapelsen script:

     # /usr /local /mysql /bin /mysql -u < bruker > -p -D < database > < create_cpuutilization_table.sql 

    Igjen, forteller AIU nissen å kjøre skriptet som den angitte MySQL brukerkonto (ikke POSIX). Brukeren må ha privilegier på databasen for å tillate endringer. The, AIP igjen ber om brukerpassordet og angir AID hvilken database du ønsker å utføre skriptinnholdet på. Re-direkte tegn, AU <, AU feeds manuset til nissen. Du kan by-pass passord og streame passordet direkte i ved å endre, AIP til --password = < passwd verdi >.

    Legge sysstat Logger Into the MySQL Database

    Flytte rett sammen, når cron jobb og backup script har kjørt, er det nødvendig å formatere dataene fra sar fil for å forberede den for lasting inn i SYSSTAT database. Elegansen sar er den laster inn dataene i ordnet kolonner i én stor fil og bryter hverandre deler av tomme linjer. Ved å utnytte strømmen editor (sed) og oversette evner kan vi raskt analysere sar-filen i bite størrelse stykker klar til å laste inn i sin respektive tabellen. Et par ting er verd å merke seg her. Jeg liker å anbefale behandling SAR data før 0000 timer (midnatt) for å opprettholde tid /dato integritet. For det andre, i forberedelsene jeg liker å stash og laste SAR data fra sin egen katalog kilde, sier /var /log /sysstatdbprepare, eller fra katalogen /tmp. I miljøet jeg jobber i har jeg mange servere rapportering og foretrekker ett sted hvor loggene lagres for sar.

    Skriptet oppført nedenfor er et eksempel på formatering og opplasting av data i en database. Variabler inne i skriptet bør endres for å oppfylle operative krav. Spaces er inkludert for å øke lesbarheten i denne artikkelen:

     # /bin /bash # Laget 04-Aug-09 /Kryptikos # Dette skriptet vil analysere sar-filen og forberede /formatere data for å gjøre det # tilgjengelig å laste opp i en MySQL database. Det vil da ringe og laste opp # data i den valgte MySQL database og sine respektive tabeller. # Sett diverse variabler som trengs. Datostemple = $ (date '+% Y-% m-% d') WORKDIR = /tmp /sysstatdbprepare FMATDIR = /tmp /sysstatdbformatted # Begynn viktigste. # Endre i arbeid katalogen. cd $ WORKDIR # Start-forbehandling formatering. for filen i `dir -d *`; gjøre # Forbered og format utpekt vertenes sar loggfiler som skal lastes inn i MySQL database: sed -n "/proc /, /cswch /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _taskcreation.csv sed -n "/cswch /, /CPU /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _systemswitchingactivity.csv sed -n "/bruker /, /INTR /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _cpuutilization.csv sed -n "/INTR /, /CPU /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _irqinterrupts.csv sed -n "/i000 /, /pswpin /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _inputactivityperprocperirq.csv sed -n "/pswpin /, /tps /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _swappingstatistics.csv sed -n "/TPS /, /frmpg /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _iotransferrate.csv sed -n "/frmpg /, /TTY /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _memorystatistics.csv sed -n "/TTY /, /iface /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _ttydeviceactivity.csv sed -n "/iface /, /rxerr /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _networkstatistics.csv sed -n "/rxerr /, /call /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _networkstatisticserrors.csv sed -n "/call /, /skurv /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _networkstatisticsnfsclientactvty.csv sed -n "/skurv /, /pgpgin /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _networkstatisticsnfsserveractvty.csv sed -n "/pgpgin /, /kbmemfree /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _pagingstatistics.csv sed -n "/kbmemfree /, /dentunusd /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _memoryswapspaceutilization.csv sed -n "/dentunusd /, /totsck /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _inodefilekerneltable.csv sed -n "/totsck /, /runq-sz /p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _networkstatisticssocket.csv sed -n "/runq-sz /, //p" $ fil | sed "$ d" | tr -s [: blank:] | sed -n '1t, 2, $ H; $ {g; s //, /g; p} | sed '/Average: /d' | sed "s /^ /$ hostname, $ datostemple, /" | sed '$ d' > "$ FMATDIR" /"$ file" _queuelengthloadavgs.csv gjort # Kick off opplasting formatert data i MySQL database: # Change inn format katalogen. cd $ FMATDIR # Pushing data i MySQL via -e flagg. for filen i `dir -d *`; gjøre /usr /local /mysql /bin /MySQL -u < MySQLuser > --password = < passord > -D ≪ database > -e "LOAD DATA LOKAL INFILE '/tmp /sysstatdbformatted /$ {file} INTO TABLE` echo $ fil | sed' s /\\ csv //g. '| awk -F_' {print $ 2} '`Felter avsluttet med ',' Ignorer 1 linjer; " 
    Wrap-Up og oversikt

    That,Äôs det, bare noen få skript og litt tid til å sette opp automatisering å injisere dine data i en database. Hvis alt er riktig syntaks klok på skript, bør du nå være i stand til å logge inn på MySQL server og se dataene lastes inn i tabellene. Jeg pleier å bruke MySQL Administrator (GUI verktøy) til å logge inn og se på databaser og tabeller. Det er litt raskere å bruke for å sjekke

    Følgende oversikt punkter er foreslått anbefalinger om å gjennomføre SYSSTAT på Linux server (e).

  1. Schedule cron via myk kobling oppdrag i /etc/cron.d peker til sysstat.cron i /etc /sysstat /

    planlegge flere SA1 funksjons crons:. rekord statistikk oftere under høyere utnyttelsesgrad tider og mindre i løpet av off-peak timer med hensyn til server . drift

    Utnytt MySQL database til å lagre innsamlede data for minimum 30 - 45 dager før sletting poster og starte lagringsprosessen.

    Hvis database alternativet ikke er valgt: skrive SAR-filer til en sentral logging server og endre navn med vertsnavn og gjeldende datoverdier

    Hvis database alternativet ikke er valgt. butikken omdøpt SAR-filer for 25 - 30 dager før spylt midt logging server.

    SYSSTAT kan gi deg et vell av informasjon om hva som skjer med serveren din. Det gir deg muligheten til å se en historisk trend når serveren er å få utnyttet, hvor tung bruk er og en rekke andre empiriske data. Det vil tillate deg å fokusere og rot-årsaken analyse avgjøre om du plutselig finner din server har problemer. Du er bare begrenset til fantasien din om hva du kan bruke den for å feilsøking kompliment. Hvis du ender opp med å bruke en database det er pakker der ute som vil generere pene grafer for enklere tolkning, eller du kan selv smøre opp noen PHP-kode og dra opp dataene via en nettleser.

    Det jeg elske om Linux er hvordan jeg kan fortsette å bryte ting fra hverandre, lære hvordan de fungerer og deretter distribuere basert på mine behov. Hvis du har forslag til innhold, eller har spørsmål kan du gjerne kommentere. Uansett, håper dette hjalp litt for miljøet.

    ~ Jonathan Peck (Kryptikos) er en Linux Systems Engineer for et stort internasjonalt selskap og har jobbet i Linux- og Unix-plattformer siden 2001. Når ikke på jobb kan du ofte finne ham på Ubuntu forum, Linux.com boards, og bidrar artikler og tips til Novell Cool Solutions. He,Äôs alltid interessert i å lære mer, hjelpe andre når de utforsker den store verden av Linux og markedsføring pingvinen og andre åpen kildekode-løsninger.

    Dette dokumentet, SYSSTAT Howto: En Deploynment og Configuration Guide for Linux-servere, er opphavsrettsbeskyttet ¬ © 2009 av Jonathan Peck (Kryptikos). Det gis tillatelse til å kopiere, distribuere og /eller modifiseres under retningslinjene som beskrevet i GNU fri dokumentasjonslisens, versjon 1.1 eller senere utgave utgitt av Free Software Foundation; med alle seksjoner, uten noen forsidetekster, og med ingen baksidetekster. En kopi av lisensen er tilgjengelig på http://www.gnu.org/copyleft/fdl.html. Linux er et registrert varemerke for Linus Torvalds.