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:
- strace – ontdek systeemaanroepen en signalen naar een proces.
- tcpdump – monitoring van ruw netwerkverkeer.
- netstat – monitoring van netwerkverbindingen.
- htop – real-time procesmonitoring.
- iftop – real-time monitoring van netwerkbandbreedte.
- 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

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

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.

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

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

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

Monitoren van Linux processen
Om systeemprocessen op te sommen, typt u:
$ sudo sysdig -c ps

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

Monitoren van netwerkverbindingen en I/O
Om systeemnetwerkverbindingen te bekijken, voert u uit:
$ sudo sysdig -c netstat

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

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

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

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]

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

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:
- BCC – Dynamische Tracing Tools voor Linux Prestatiemonitoring, Netwerken en Meer
- pyDash – Een op het web gebaseerd Linux Prestatiemonitoringstool
- Perf – Een Prestatiemonitoring- en Analysetool voor Linux
- Collectl: Een Geavanceerd All-in-One Prestatiemonitoringstool voor Linux
- 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/