Sysdig – Een krachtige systeemmonitoring- en probleemoplossingstool voor Linux

Sysdig is een open-source, platformonafhankelijke, krachtige en flexibele systeem monitoring- en troubleshooting-tool voor Linux; het werkt ook op Windows en Mac OSX, maar met beperkte functionaliteit en kan worden gebruikt voor systeemanalyse, inspectie en debugging.

Normaal gesproken zou je een mix van verschillende Linux prestatie monitoring- en troubleshooting-tools gebruiken, inclusief de hieronder vermelde, om de Linux monitoring- en debuggingtaken uit te voeren:

  1. strace – ontdek systeemaanroepen en signalen naar een proces.
  2. tcpdump – monitoring van ruw netwerkverkeer.
  3. netstat – monitoring van netwerkverbindingen.
  4. htop – real-time procesmonitoring.
  5. iftop – real-time monitoring van netwerkbandbreedte.
  6. lsof – bekijk welke bestanden geopend zijn door welk proces.

Echter, sysdig integreert wat al deze bovengenoemde tools en nog veel meer bieden, in één enkel en eenvoudig programma, met verbazingwekkende containerondersteuning. Het stelt u in staat om het echte gedrag (stroom van gebeurtenissen) van Linux-systemen en containers vast te leggen, op te slaan, te filteren en te onderzoeken.

Het wordt geleverd met een opdrachtregelinterface en een krachtige interactieve UI (csysdig) waarmee u systeemactiviteiten in realtime kunt bekijken, of een trace kunt dumpen en opslaan voor latere analyse. U kunt zien hoe csysdig werkt in de onderstaande video.

Sysdig-functies:

  • Het is snel, stabiel en gemakkelijk te gebruiken met uitgebreide documentatie.
  • Komt met native ondersteuning voor containertechnologieën, waaronder Docker, LXC.
  • Het is scriptbaar in Lua; biedt beitels (lichtgewicht Lua-scripts) voor het verwerken van vastgelegde systeemgebeurtenissen.
  • Ondersteunt handig filteren van output.
  • Ondersteunt systeem- en applicatietracering.
  • Het kan geïntegreerd worden met Ansible, Puppet en Logstash.
  • Mogelijkheid tot geavanceerde loganalyse.
  • Biedt ook functies voor analyse van Linux serveraanvallen (forensisch onderzoek) voor ethische hackers en nog veel meer.

In dit artikel laten we zien hoe u sysdig kunt installeren op een Linux-systeem, en het kunt gebruiken met basisvoorbeelden van systeemanalyse, monitoring en probleemoplossing.

Hoe sysdig installeren in Linux

Het installeren van het sysdig pakket is zo eenvoudig als het uitvoeren van de onderstaande opdracht, die alle vereisten zal controleren; als alles in orde is, zal het pakket downloaden en installeren van de Draios APT/YUM repository.

# curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash 
OR
$ curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

Na installatie moet je sysdig uitvoeren als root omdat het toegang nodig heeft tot kritieke gebieden zoals het /proc bestandssysteem, /dev/sysdig* apparaten en de sysdig-probe kernelmodule automatisch moet laden (indien nodig); anders gebruik de sudo opdracht.

Het meest basale voorbeeld is het uitvoeren zonder argumenten, hiermee kun je de gebeurtenissenstroom van je Linux-systeem in realtime bekijken:

$ sudo sysdig
Watch Linux System Events

De bovenstaande uitvoer (ruwe data) maakt misschien niet veel zin voor jou, voor een meer bruikbare uitvoer voer csysdig uit:

$ sudo csysdig 
Monitor Linux System Events

Opmerking: Om het echte gevoel van deze tool te krijgen, moet je sysdig gebruiken die ruwe data produceert zoals we eerder zagen, van een draaiend Linux-systeem: dit vereist dat je begrijpt hoe je filters en beitels moet gebruiken.

Maar als je een moeiteloze manier nodig hebt om sysdig te gebruiken – ga verder met csysdig.

Begrip van Sysdig Beitels en Filters

Sysdig beitels zijn minimale Lua-scripts voor het onderzoeken van de sysdig gebeurtenisstroom om nuttige systeemdiagnoseacties en meer uit te voeren. De onderstaande opdracht zal je helpen om alle beschikbare beitels te bekijken:

$ sudo sysdig -cl

De schermafbeelding toont een voorbeeldlijst van beitels onder verschillende categorieën.

View Sysdig Chisels

Als u meer informatie wilt vinden over een specifieke beitel, gebruik dan de -i vlag:

$ sudo sysdig -i topprocs_cpu
View Sysdig Chisel Info

Sysdig-filters voegen meer kracht toe aan het soort output dat u kunt verkrijgen uit gebeurenstreams, ze stellen u in staat om de output aan te passen. U moet ze aan het einde van een opdrachtregel specificeren.

A straightforward and commonest filter is a basic “class.field=value” check, you can also combine chisels with filters for even more powerful customizations.

Om een lijst van beschikbare veldklassen, velden en hun beschrijvingen te bekijken, typt u:

$ sudo sysdig -l
View Sysdig Field Classes

Het maken van een Linux systeemtracebestand

Om sysdig-output in een bestand te dumpen voor latere analyse, gebruikt u de -w vlag op deze manier.

U kunt het trace dumpbestand lezen met de -r vlag:

$ sudo sysdig -r trace.scap

De -s optie wordt gebruikt om de hoeveelheid bytes aan data te specificeren die moet worden vastgelegd voor elk systeemgebeurtenis. In dit voorbeeld filteren we gebeurtenissen voor het mongod proces.

$ sudo sysdig -s 3000 -w trace.scap
$ sudo sysdig -r trace.scap proc.name=mongod
Create MongoDB Trace File

Monitoren van Linux processen

Om systeemprocessen op te sommen, typt u:

$ sudo sysdig -c ps
Monitor Linux Processes

Processen monitoren op CPU-gebruik

Om de top processen te bekijken op basis van CPU-gebruikspercentage, voert u deze opdracht uit:

$ sudo sysdig -c topprocs_cpu
Monitor Processes by CPU Usage

Monitoren van netwerkverbindingen en I/O

Om systeemnetwerkverbindingen te bekijken, voert u uit:

$ sudo sysdig -c netstat
Monitor Network Connections

De volgende opdracht helpt u bij het weergeven van de top netwerkverbindingen op basis van totale bytes:

$ sudo sysdig -c topconns

Vervolgens kunt u ook de top processen op basis van netwerk I/O als volgt weergeven:

$ sudo sysdig -c topprocs_net    

Monitoren van systeembestands-I/O

U kunt de gegevens die door processen op het systeem worden gelezen en geschreven als volgt weergeven:

$ sudo sysdig -c echo_fds
Monitor System IO

Om de top processen op basis van (lees + schrijf) schijfbytes te vermelden, gebruikt u:

$ sudo sysdig -c topprocs_file   

Het oplossen van de prestaties van een Linux-systeem

Om een oogje te houden op systeembottlenecks (trage systeemaanroepen), voer deze opdracht uit:

$ sudo sysdig -c bottlenecks
Troubleshoot Linux Performance

Volg de uitvoeringstijd van een proces

Om de uitvoeringstijd van een proces bij te houden, kunt u deze opdracht uitvoeren en de trace in een bestand dumpen:

$ sudo sysdig -w extime.scap -c proc_exec_time 
Track Process Execution Time

Gebruik vervolgens een filter om details van een specifiek proces (postgres in dit voorbeeld) te verfijnen zoals hieronder:

$ sudo sysdig -r extime.scap proc.name=postgres

Ontdek langzame netwerk-I/O

Deze eenvoudige opdracht helpt u bij het detecteren van langzame netwerk-I/O:

$ sudo sysdig -c netlower     

Logboekvermeldingen bekijken

De onderstaande opdracht helpt u bij het weergeven van elke boodschap die naar syslog is geschreven. Als u geïnteresseerd bent in logboekvermeldingen voor een specifiek proces, maak dan een trace dump en filter deze dienovereenkomstig zoals eerder getoond:

$ sudo sysdig -c spy_syslog      

U kunt alle gegevens die door een proces zijn geschreven naar een logbestand afdrukken zoals hieronder:

$ sudo sysdig -c spy_logs   

Monitoring van HTTP-serververzoeken

Als u een HTTP-server zoals Apache of Nginx op ons systeem hebt draaien, bekijk dan het verzoeklogboek van de server met deze opdracht:

$ sudo sysdig -c httplog    
$ sudo sysdig -c httptop   [Print Top HTTP Requests] 
Monitor HTTP Requests

Weergave van inlogschalen en interactieve gebruikersactiviteit

De onderstaande opdracht stelt u in staat om alle inlogschalen-ID’s te bekijken:

$ sudo sysdig -c list_login_shells

Als laatste kunt u interactieve activiteit van systeemgebruikers tonen zoals hier:

$ sudo sysdig -c spy_users
Monitor User Activity

Voor meer gebruiksinformatie en voorbeelden, lees de man-pagina’s van sysdig en csysdig:

$ man sysdig 
$ man csysdig

Referentie: https://www.sysdig.org/

Bekijk ook deze handige Linux-prestatiebewakingstools:

  1. BCC – Dynamische Tracing Tools voor Linux Prestatiemonitoring, Netwerken en Meer
  2. pyDash – Een op het web gebaseerd Linux Prestatiemonitoringstool
  3. Perf – Een Prestatiemonitoring- en Analysetool voor Linux
  4. Collectl: Een Geavanceerd All-in-One Prestatiemonitoringstool voor Linux
  5. Netdata – Een Realtime Prestatiemonitoringstool voor Linux Systemen
Conclusie

Sysdig brengt functionaliteiten samen van talrijke opdrachtregeltools in één opmerkelijke interface, waardoor u diep in uw Linux-systeemgebeurtenissen kunt graven om gegevens te verzamelen, op te slaan voor latere analyse en het biedt ongelooflijke ondersteuning voor containers.

Om vragen te stellen of gedachten te delen over deze tool, gebruik het feedbackformulier hieronder.

Source:
https://www.tecmint.com/sysdig-system-monitoring-and-troubleshooting-tool-for-linux/