Vyhledávání na webu

Sysdig – výkonný nástroj pro monitorování systému a řešení problémů pro Linux


Sysdig je open source, multiplatformní, výkonný a flexibilní nástroj pro monitorování systému a řešení problémů pro Linux; funguje také na Windows a Mac OSX, ale s omezenou funkčností a lze jej použít pro analýzu systému, kontrolu a ladění.

Normálně byste k provádění úloh monitorování a ladění Linuxu použili kombinaci různých nástrojů pro monitorování výkonu a odstraňování problémů Linuxu, včetně těchto níže uvedených:

  1. strace – objevování systémových volání a signálů procesu.
  2. tcpdump – nezpracované sledování síťového provozu.
  3. netstat – sledování síťových připojení.
  4. htop – monitorování procesů v reálném čase.
  5. iftop – monitorování šířky pásma sítě v reálném čase.
  6. lsof – zobrazení, které soubory jsou otevřeny kterým procesem.

sysdig však integruje to, co všechny výše uvedené nástroje a mnohé další, nabízejí v jediném a jednoduchém programu, navíc s úžasnou podporou kontejnerů. Umožňuje vám zachytit, uložit, filtrovat a zkoumat skutečné chování (proud událostí) linuxových systémů i kontejnerů.

Dodává se s rozhraním příkazového řádku a výkonným interaktivním uživatelským rozhraním (csysdig), které vám umožní sledovat aktivitu systému v reálném čase nebo provést výpis trasování a uložit pro pozdější analýzu. Jak csysdig funguje, můžete sledovat z níže uvedeného videa.

Vlastnosti Sysdig:

  • Je rychlý, stabilní a snadno použitelný s komplexně dobře zdokumentovaným.
  • Dodává se s nativní podporou pro technologie kontejnerů, včetně Docker, LXC.
  • Je skriptovatelný v Lua; nabízí dláta (odlehčené Lua skripty) pro zpracování zachycených systémových událostí.
  • Podporuje užitečné filtrování výstupu.
  • Podporuje sledování systému a aplikací.
  • Může být integrován s Ansible, Puppet a Logstash.
  • Povolit pokročilou analýzu protokolu vzorků.
  • Nabízí také funkce analýzy útoků na server Linux (forenzní) pro etické hackery a mnoho dalšího.

V tomto článku si ukážeme, jak nainstalovat sysdig na systém Linux a používat jej se základními příklady analýzy systému, monitorování a odstraňování problémů.

Jak nainstalovat Sysdig v Linuxu

Instalace balíčku sysdig je stejně snadná jako spuštění příkazu níže, který zkontroluje všechny požadavky; pokud je vše na svém místě, stáhne a nainstaluje balíček z úložiště Draios APT/YUM.

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

Po instalaci je třeba spustit sysdig jako root, protože vyžaduje přístup ke kritickým oblastem, jako je souborový systém /proc, /dev/sysdig* zařízení a potřebuje automaticky zavést modul jádra sysdig-probe (v případě, že tomu tak není); jinak použijte příkaz sudo.

Nejzákladnějším příkladem je jeho spuštění bez jakýchkoli argumentů, což vám umožní zobrazit proud událostí systému Linux aktualizované v reálném čase:

sudo sysdig

Výše uvedený výstup (surová data) vám možná nedává moc smysl, pro užitečnější výstup spusťte csysdig:

sudo csysdig 

Poznámka: Chcete-li získat skutečný pocit z tohoto nástroje, musíte použít sysdig, který vytváří nezpracovaná data, jak jsme viděli dříve, ze spuštěného Systém Linux: toto vyžaduje, abyste pochopili, jak používat filtry a sekáče.

Pokud však potřebujete bezbolestný způsob použití sysdig – pokračujte s csysdig.

Porozumění dlátům a filtrům Sysdig

Sysdig sekáče jsou minimální skripty Lua pro zkoumání toku událostí sysdig za účelem provádění užitečných akcí pro odstraňování problémů se systémem a další. Následující příkaz vám pomůže zobrazit všechna dostupná dláta:

sudo sysdig -cl

Snímek obrazovky ukazuje ukázkový seznam dlát v různých kategoriích.

Pokud chcete zjistit více informací o konkrétním sekáči, použijte příznak -i:

sudo sysdig -i topprocs_cpu

Filtry Sysdig přidávají více výkonu k druhu výstupu, který můžete získat z toků událostí, umožňují vám přizpůsobit výstup. Měli byste je zadat na konci příkazového řádku.

Přímý a nejběžnější filtr je základní kontrola „class.field=value“, můžete také kombinovat sekáče s filtry pro ještě výkonnější přizpůsobení.

Chcete-li zobrazit seznam dostupných tříd polí, polí a jejich popisů, zadejte:


sudo sysdig -l

Vytváření souboru trasování systému Linux

Chcete-li vypsat výstup sysdig do souboru pro pozdější analýzu, použijte takto příznak -w.

Soubor výpisu trasování můžete číst pomocí parametru -r:


sudo sysdig -r trace.scap

Volba -s se používá k určení množství bajtů dat, které mají být zachyceny pro každou systémovou událost. V tomto příkladu filtrujeme události pro proces mongod.

sudo sysdig -s 3000 -w trace.scap
sudo sysdig -r trace.scap proc.name=mongod

Monitorování linuxových procesů

Chcete-li vypsat systémové procesy, zadejte:

sudo sysdig -c ps

Monitorujte procesy podle využití CPU

Chcete-li sledovat nejlepší procesy podle procenta využití procesoru, spusťte tento příkaz:

sudo sysdig -c topprocs_cpu

Monitorování síťových připojení a I/O

Chcete-li zobrazit systémová síťová připojení, spusťte:

sudo sysdig -c netstat

Následující příkaz vám pomůže vypsat seznam hlavních síťových připojení podle celkových bajtů:

sudo sysdig -c topconns

Dále můžete také uvést hlavní procesy podle síťového I/O následovně:

sudo sysdig -c topprocs_net    

Sledování I/O systémových souborů

Data můžete číst a zapisovat procesy v systému, jak je uvedeno níže:

sudo sysdig -c echo_fds

Chcete-li zobrazit seznam nejlepších procesů podle (čtení + zápis) bajtů disku, použijte:

sudo sysdig -c topprocs_file   

Odstraňování problémů s výkonem systému Linux

Chcete-li sledovat úzká místa systému (pomalá systémová volání), spusťte tento příkaz:

sudo sysdig -c bottlenecks

Sledovat dobu provedení procesu

Chcete-li sledovat dobu provádění procesu, můžete spustit tento příkaz a vypsat trasování do souboru:

sudo sysdig -w extime.scap -c proc_exec_time 

Poté pomocí filtru vynulujte podrobnosti o konkrétním procesu (v tomto příkladu postgres) takto:

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

Objevte pomalou síť I/0

Tento jednoduchý příkaz vám pomůže zjistit pomalou síť I/0:

sudo sysdig -c netlower     

Sledování záznamů v souboru protokolu

Níže uvedený příkaz vám pomůže zobrazit každou zprávu zapsanou do syslog, pokud vás zajímají položky protokolu pro konkrétní proces, vytvořte výpis trasování a odfiltrujte jej, jak je uvedeno výše:

sudo sysdig -c spy_syslog      

Jakákoli data zapsaná jakýmkoli procesem můžete vytisknout do souboru protokolu následovně:

sudo sysdig -c spy_logs   

Monitorování požadavků HTTP serveru

Pokud máte v našem systému spuštěný server HTTP, jako je Apache nebo Nginx, prohlédněte si protokol požadavků serveru pomocí tohoto příkazu:

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

Zobrazte přihlašovací prostředí a interaktivní aktivitu uživatele

Níže uvedený příkaz vám umožní zobrazit všechna přihlašovací ID shellu:

sudo sysdig -c list_login_shells

V neposlední řadě můžete zobrazit interaktivní aktivitu uživatelů systému, jako je:

sudo sysdig -c spy_users

Další informace o použití a příklady naleznete na manuálových stránkách sysdig a csysdig:

man sysdig 
man csysdig

Reference: https://www.sysdig.org/

Zkontrolujte také tyto užitečné nástroje pro sledování výkonu Linuxu:

  1. BCC – Dynamic Tracing Tools for Linux Performance Monitoring, Networking and more
  2. pyDash – Webový nástroj pro sledování výkonu Linuxu
  3. Perf – nástroj pro sledování a analýzu výkonu pro Linux
  4. Collectl: Pokročilý nástroj pro sledování výkonu All-in-One pro Linux
  5. Netdata – Nástroj pro sledování výkonu v reálném čase pro systémy Linux
Závěr

Sysdig spojuje funkce z mnoha nástrojů příkazového řádku do jednoho pozoruhodného rozhraní, což vám umožňuje proniknout hluboko do událostí vašeho systému Linux, abyste shromáždili data, uložili je pro pozdější analýzu a nabízí neuvěřitelnou podporu kontejnerů.

Chcete-li se na něco zeptat nebo se podělit o své názory na tento nástroj, použijte níže uvedený formulář pro zpětnou vazbu.