Sådan installeres Sysdig System Diagnosing Tool på Ubuntu 15 / CentOS 7

Hej og velkommen til vores dagens artikel om Linux system exploration og fejlfinding værktøj Sysdig med første klasse support til containere. Sysdig capture system tilstand og aktivitet fra en kørende Linux instans, så gem, filtrer og analyser. Du kan bruge dette fantastiske værktøj som erstatning for mange Linux fejlfindingskommandoer som top, lsof, strace, iostat, ps, osv. Det kombinerer også fordelene ved mange værktøjer som strace, tcpdump og lsof i en enkelt applikation, der er pakket med et sæt scripts kaldet mejsler, der gør det nemmere at udtrække nyttige oplysninger og gøre fejlfinding.

I denne artikel vil vi vise dig installations trin og grundlæggende brug af sysdig til at udføre systemovervågning og fejlfinding på Linux CentOS 7 og Ubuntu 15 Operativsystem.

1) Installation af Sysdig på Ubuntu 15:

Sysdig inkluderet de nyeste versioner af Debian, RHEL og Container-baseret OS; Den opdateres dog hele tiden med ny funktionalitet. Vi skal installere Sysdig ved hjælp af 'apt' kommandoen, men først skal vi opsætte apt-lageret, der vedligeholdes af Draios, ved at køre de følgende kommandoer med "curl" med root-bruger.

Brug af nedenstående kommandoer vil stole på Draios GPG-nøglen og konfigurere apt-depotet.

# curl -s https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public | apt-key add -

# curl -s -o /etc/apt/sources.list.d/draios.list http://download.draios.com/stable/deb/draios.list

Nu skal du opdatere pakkelisten ved at udføre følgende kommando.

# apt-get opdatering

installerer sysdig

Når din systemopdatering er gennemført, skal du installere kernehovedpakken ved hjælp af kommandoen som vist nedenfor.

# apt-get -y installer linux-headers - $ (uname -r)

Nu kan du installere sysdig på ubuntu ved hjælp af følgende kommando.

# apt-get -y installer sysdig

Sysdig installation

2) Installation af Sysdig på CentOS 7

Installationsprocessen på CentOS 7 svarer til den, vi har udført for Ubuntu-serveren, men du skal gentage det samme trin ved at oprette yum-repositoryet, der bruger sin egen nøgle til at verificere ægtheden af ​​pakken.

Lad os køre følgende kommando for at bruge værktøjet 'rpm' med '-import''en for manuelt at tilføje Draios-tasten til din RPM-nøgle.

# rpm -import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public

Herefter downloades Draios-depotet og konfigurerer yum til at bruge det på din CentOS 7-server.

# curl -s -o /etc/yum.repos.d/draios.repo http://download.draios.com/stable/rpm/draios.repo

Nu skal du opdatere pakkelisten ved at udføre følgende kommando, før du starter installationen af ​​Sysdig-pakken.

# yum opdatering

Sysdig Repo

EPEL-depotet er nødvendigt for at downloade pakken Dynamic Kernel Module Support (DKMS), der bruges af sysdig-værktøjet. Så følgende kommandoer kommandoer for at aktivere EPEL-depot.

# yum-du installerer epel-release

Aktivér EPEL Repo

Installer nu kernehovederne for at konfigurere sysdig-probe-modulet, og flyt derefter kommandoen for at installere Sysdig-pakken på serveren.

# yum installer kernel-devel - $ (uname -r)

# yum install sysdig

Installation Sysdig

3) Brug af Sysdig

Efter en vellykket installation af sysdig værktøj, vil vi nu vise dig nogle af de mest nyttige eksempler til at bruge dette til fejlfinding af dit system. Den enkleste og nemmeste metode til at bruge sysdig er ved at påberåbe den uden noget argument som vist nedenfor.

# sysdig

Som standard udskriver sysdig oplysningerne for hver indfanget begivenhed på en enkelt linje i formatet af dets begivenhedsnummer, hændelsestid, hændelses-cpu-nummer, procesnavn (PID), hændelsesretning for ud, hændelsestype og hændelsesargumenter.

Brug af Sysdig

Outputen er så meget stor og for det meste ikke særlig nyttig af sig selv, så du kan skrive output fra Sysdig i en fil ved at bruge '-w' flag og angive filnavnet i '.dump' som vist i nedenstående kommando.

# sysdig -w result.dump

Ti løber følgende kommando med parameter '-r' for at læse output fra den gemte fil.

# sysdig -r result.dump

Sysdig Filters

Du kan bruge filtre, der gør det muligt at filtrere output fra sysdig-resultater til specifikke oplysninger. Kør følgende kommando for at finde en liste over tilgængelige filtre som vist.

# sysdig -l

--------
Feltklasse: fd

fd.num det unikke nummer, der identificerer filbeskrivelsen.
fd.cport til TCP / UDP FD'er, klientporten.
fd.rproto til TCP / UDP FD'er, fjernprotokollen.

--------
Feltklasse: proces

proc.pid id'en af ​​processen, der genererer arrangementet.
proc.name navnet (eksklusive stien) for den eksekverbare generering af
tilfælde.
proc.args argumenterne passeret på kommandolinjen, når du starter proc
ess genererer arrangementet.
proc.env miljøvariablerne i processen der genererer arrangementet.
proc.cmdline fuld proces kommandolinje, dvs. proc.name + proc.args.
proc.exeline fuld proces kommandolinje, med exe som første argument, dvs. pro
c.exe + proc.args.
proc.cwd den aktuelle arbejdsmappe af begivenheden.
proc.duration antal nanosekunder siden processen startede.
proc.fdlimit maksimum antal FD'er processen kan åbne.
proc.foustere forholdet mellem åbne FD'er og maksimalt tilgængelige FD'er for pr
ocess.
.
thread.pfminor antal mindre sidefejl siden trådstart.
thread.ismain 'true' hvis tråden der genererer begivenheden er den vigtigste i th
e proces.

Så du kan filtrere resultaterne ved hjælp af dets kraftfulde filtreringssystem. Du kan bruge "proc.name" -filteret til at indfange alle de sysdig-begivenheder for en bestemt proces.
Lad os for eksempel filtrere processen med 'MySQLD' ved hjælp af proc.name argument ved hjælp af nedenstående kommando.

# sysdig -r result.dump proc.name = mysqld

140630 02: 20: 30.848284977 2 mysqld (2899) io_getevents
140632 02: 20: 30.848289674 2 mysqld (2899)> skift næste = 2894 (mysqld) pgft_maj = 0 pgft_min = 1 vm_size = 841372 vm_rss = 85900 vm_swap = 0
140633 02: 20: 30.848292784 2 mysqld (2894) io_getevents
140635 02: 20: 30.848297142 2 mysqld (2894)> skift næste = 2901 (mysqld) pgft_maj = 0 pgft_min = 4 vm_size = 841372 vm_rss = 85900 vm_swap = 0
140636 02: 20: 30.848300414 2 mysqld (2901) io_getevents
140638 02: 20: 30.848307954 2 mysqld (2901)> skift næste = 0 pgft_maj = 0 pgft_min = 1 vm_size = 841372 vm_rss = 85900 vm_swap = 0
140640 02: 20: 30.849340499 1 mysqld (2900) io_getevents
140642 02: 20: 30.849348907 1 mysqld (2900)> skift næste = 2895 (mysqld) pgft_maj = 0 pgft_min = 1 vm_size = 841372 vm_rss = 85900 vm_swap = 0
140643 02: 20: 30.849357633 1 mysqld (2895) io_getevents
140645 02: 20: 30.849362258 1 mysqld (2895)> skift næste = 26329 (tunet) pgft_maj = 0 pgft_min = 1 vm_size = 841372 vm_rss = 85900 vm_swap = 0
140702 02: 20: 30.995763869 1 mysqld (2898) io_getevents
140704 02: 20: 30.995777232 1 mysqld (2898)> skift næste = 2893 (mysqld) pgft_maj = 0 pgft_min = 1 vm_size = 841372 vm_rss = 85900 vm_swap = 0
140705 02: 20: 30.995782563 1 mysqld (2893) io_getevents
140707 02: 20: 30.995795720 1 mysqld (2893)> skift næste = 0 pgft_maj = 0 pgft_min = 3 vm_size = 841372 vm_rss = 85900 vm_swap = 0
140840 02: 20: 31.204456822 1 mysqld (2933) futex addr = 7F1453334D50 op = 129 (FUTEX_PRIVATE_FLAG | FUTEX_WAKE) val = 1
140842 02: 20: 31.204464336 1 mysqld (2933) futex addr = 7F1453334D8C op = 393 (FUTEX_CLOCK_REALTIME | FUTEX_PRIVATE_FLAG | FUTEX_WAIT_BITSET) val = 12395
140844 02: 20: 31.204569972 1 mysqld (2933)> skift næste = 3920 pgft_maj = 0 pgft_min = 1 vm_size = 841372 vm_rss = 85900 vm_swap = 0
140875 02: 20: 31.348405663 2 mysqld (2897) io_getevents

For at filtrere den levende proces af 'sshd' kan du bruge følgende kommando med proc.name argument.

# sysdig proc.name = sshd

Sysdig Filter

Netværk og system diagnosticere med Sysdig

For at se de bedste processer i forbindelse med brug af netværkets båndbredde, kør nedenstående sysdig-kommando.

# sysdig -c toprocs_net

Bytes Process PID
---------------------------
304B sshd 3194

For at fange alle processer, der åbner en bestemt fil, skal du bruge kommandoen nedenfor.

# sysdig fd.name = / var / log

Capture Process

For at indfange alle processer, der åbner et bestemt filsystem, kan du bruge følgende kommando. Brug sammenligning operatører med filtre som indeholder, =,! =, =,. Du vil se, at filtre kan bruges til både læsning fra en fil eller live event stream.

# sysdig fd.name indeholder / etc

Fang alle processer

Brug af mejsler i Sysdig

Sysdig's mejsler er små scripts, der analyserer sysdig event stream for at udføre nyttige handlinger. Hvis du har brugt systemsporingværktøjer som dtrace, er du sikkert bekendt med at køre scripts, der sporer OS-begivenheder. Mejler fungerer godt på levende systemer, men kan også bruges med sporfiler til offline analyse.

For at få listen over tilgængelige mejsler skal du blot skrive følgende kommando for at få en kort beskrivelse for hver af de tilgængelige mejsler.

# sysdig -cl

Sysdig Chipsels

For at køre en af ​​mejrene bruger du '-c' flag. Lad os eksempelvis køre topfiles_bytes mejsel som vist nedenfor.

# sysdig -c topfiles_bytes

Sysdig topfiles

Eller hvis du vil se de øverste filer i en bestemt mappe, brug derefter kommandoen nedenfor.

# sysdig -c topfiles_bytes "fd.name indeholder / root"

For at se de øverste filer af en bestemt bruger brug nedenfor.

# sysdig -c topfiles_bytes "user.name = admin"

Konklusion

Tak fordi du læser denne detaljerede artikel, og jeg håber, at du har fundet det meget nyttigt som dit foretrukne system og netværksdiagnosticeringsværktøj. Der er stadig mange flere funktioner, som du kan udforske ved hjælp af sysdig. Glem ikke at dele med os om din opdagelse og forlade os dine værdifulde kommentarer.

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.