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:
- strace – objevování systémových volání a signálů procesu.
- tcpdump – nezpracované sledování síťového provozu.
- netstat – sledování síťových připojení.
- htop – monitorování procesů v reálném čase.
- iftop – monitorování šířky pásma sítě v reálném čase.
- 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:
- BCC – Dynamic Tracing Tools for Linux Performance Monitoring, Networking and more
- pyDash – Webový nástroj pro sledování výkonu Linuxu
- Perf – nástroj pro sledování a analýzu výkonu pro Linux
- Collectl: Pokročilý nástroj pro sledování výkonu All-in-One pro Linux
- 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.