====== Sledování systému ====== {{.:gnome-system-monitor-icon.png}} Ubuntu vám umožňuje pohodlně sledovat nejrůznější systémové statistiky, včetně využití procesoru, paměti, síťových prostředků, spuštěných procesů, a podobně. Sledování je možné jak z grafického prostředí, tak z [[:Terminál|terminálu]]. O většině událostí se zaznamenávají podrobné protokoly. ====== Sledování systémových prostředků ====== ===== V grafickém prostředí ===== {{.:gnome-system-monitor-icon.png}} Z nabídky **Dash → Sledování systému** spusťte nástroj pro sledování systému. V nástroji máte celkem tři záložky, první zobrazuje spuštěné procesy, druhá využití systémových zdrojů a poslední připojené souborové systémy. ==== Procesy ==== {{ .:gnome-system-monitor-procesy.png?550 }} V záložce **Procesy** jsou zobrazené vaše aktuální procesy (programy). Přes nabídku **Zobrazit** se dají nastavit pro zobrazování i procesy ostatních uživatelů, případně pouze okamžitě běžící procesy. U každého procesu můžete kliknutím pravým tlačítkem myši vyvolat kontextovou nabídku: {{ .:gnome-system-monitor-procesy-nabidka.png }} * **Zastavit** a **Pokračovat proces** - umožní zastavit daný proces, který jakoby "zamrzne". Takto můžete pozastavit proces, který sám o sobě pozastavení neumožňuje, a poté jej znovu rozběhnout. Pozor ovšem, ať si nepozastavíte nějaký důležitý proces nutný pro práci prostředí. * **Ukončit proces** - ukončí daný program, jako byste ho zavřeli křížkem na jeho horní liště * **Zabít proces** - okamžitě zabije daný proces, a nedá mu možnost nijak se korektně ukončit. Toto lze použít pro "zamrzlé" procesy, které nereagují na výzvy o ukončení. * **Změnit prioritu** - umožní vám změnit prioritu procesu. Proces s vyšší prioritou má přednost ve využití procesoru a může předbíhat procesy s prioritou nižší. Naopak snížení priority se může hodit, pokud máte puštěný proces masivně využívající procesor, na který nespěcháte (např. něco počítá), ale příliš se vám zpomalily ostatní programy a špatně se s nimi pracuje. Pouze [[:Root sudo|správce]] systému může zvyšovat prioritu procesů. {{ .:gnome-system-monitor-nice.png }} {{:info.png}} Nastavení priority se může na první pohled zdát mírně nelogické. Priorita může "nabývat" hodnot od -20 do 20, přičemž -20 znamená nejvyšší prioritu a 20 nejnižší. * **Otevřené soubory** - zobrazí seznam souborů, které daný proces aktuálně používá ==== Zdroje ==== {{ .:gnome-system-monitor-zdroje.png?650 }} V záložce **Zdroje** můžete vidět aktuální vytížení procesoru, využití paměti včetně dokládacího prostoru (swap) a aktuální rychlost přijímání a odesílání dat do sítě (pravděpodobně Internetu). Taktéž je zde zobrazena celková částka přijatých a odeslaných dat do sítě od spuštění počítače. {{:info.png}} Pokud byste potřebovali měřit přenesená data v síti dlouhodoběji, navštivte článek [[:Monitorování datových přenosů]]. ==== Souborové systémy ==== {{ .:gnome-system-monitor-soubsystemy.png?650 }} V záložce **Souborové systémy** vidíte připojené souborové systémy (disky, CD, flash disky atd.), včetně statistiky o jejich využití, typu souborového systému, přípojného adresáře apod. ===== V textovém prostředí ===== {{:terminal.png}} Pro sledování systému můžete využít také [[:Terminál]]. * Pro sledování procesoru, procesů a paměti můžete využít příkaz ''ps'' a ''top''. * Pro zabití procesu můžete využít příkazy ''kill'', ''pkill'' a ''killall''. * Pro sledování paměti můžete využít příkaz ''free''. * Pro sledování souborových systémů můžete využít příkaz ''df''. * Jako velice příjemnou náhradu příkazu ''top'' můžete využít nástroj ''htop''. Stačí si [[:Instalace programů|nainstalovat]] balík ''htop''. ''htop'' umožňuje posunování textu, barevné odlišení, jednoduché řazení sloupců, změnu priority a jednoduché zabití vybraného procesu. {{ .:htop-1.png }} ====== Zobrazení systémových protokolů ====== Velké množství událostí je zaznamenávána do systémových protokolů. Zde si můžete zobrazit, co se v určité době dělo se systémem, případně podle nich zjišťovat příčiny případných potíží. ===== V grafickém prostředí ===== {{.:gnome-system-log-icon.png}} Z nabídky **Dash → Systémový protokol** spusťte nástroj pro prohlížení systémových protokolů. V levé části můžete vybírat jednotlivé protokoly a také vybírat záznamy podle dní, kdy byly zaznamenány. V pravé části vidíte jejich obsah těchto protokolů. Můžete tak lehce zjistit, kdy kdo použil jaký ''sudo'' příkaz, nebo jaké chyby vám hlásí při startu váš grafický server. {{ .:gnome-system-log.png }} ===== V textovém prostředí ===== Všechny protokoly jsou uloženy jako obyčejné textové soubory v adresáři ''/var/log''. Můžete si je tam tedy i za použití [[:Terminál|Terminálu]] lehce prohlédnout, případně prohledat. ====== Syslog ====== Předchozí část článku se věnovala tomu, jak logy zobrazit. Teď se podíváme na to jak logy vznikají a dají se nastavovat. Unixový a linuxový de facto standard pro sjednocené logování je syslog. Co znamená sjednocené? Jednoduše to, že ve "špatném" světě si každá aplikace loguje podle svého a kam chce. Programátoři si musí napsat vlastní logovací kód, administrátoři musí znát a umět nastavit kam a jak aplikace bude logy ukládat. Stále můžete mít aplikaci, které si logují po svém nebo jsou prostě z nějakého důvodu takto zkonfigurovány. Syslog, vzniklý v 80. letech jako součást balíku sendmail, je jistou odpovědí na tuto schizofrenii. Nabízí programátorům rozhraní k logování, syslog zprávy od aplikací přejímá a podle svého nastavení s nimi //něco// dělá. Většinou uloží do textové souboru, ale může poslat i na centrální logovací server nebo ukládat i do databáze. Syslog je de facto standardem, protože byť existuje norma [[http://www.ietf.org/rfc/rfc3164.txt|RFC 3164]] vycházející z původního BSD syslogu, tak víceméně co distribuce, to mírně jinačí syslog. A pokud mluvíme o syslogu, pak tím v Ubuntu a Debianu myslíme konkrétně [[http://www.rsyslog.com/|rsyslog]] - jednoho z řady modernějších a schopnějších nástupců. ===== Formát syslogu ===== Formát syslogu je velmi jednoduchý. On celý syslog byl navržen jako jednoduchý logovací prostředek. V podstatě se zprávy syslogu skládají z: * **druhu zprávy (facility)** - v podstatě od koho zpráva pochází (zprávy kernelu, mail systému, autorizační zprávy, zprávy tiskárny apod.) * **závažnosti (severity)** - od nejvyšší jsou to postupně: 0 (emenergency nebo emerg), 1 (alert), 2 (crit), 3 (err), 4 (warning), 5 (notice), 6 (info), a nejméně důležitá 7 (debug). * **časové razítko (timestamp)** - tedy čas vzniku zprávy * **jméno nebo IP adresa zdrojového počítače** - ze kterého zprávy pochází * **vlastní zpráva** - je zcela na aplikaci co "zaloguje". Zprávy jsou určené pro člověka, nikoli pro snadné strojové zpracování. Ale vzhledem k množství aplikací a zpráv může být i tak velmi obtížné správně vyrozumět co se vlastně dělo. Příklad syslogového souboru (zde auth logující bezpečnostní zprávy): Mar 2 07:31:35 wkd-test02 gnome-screensaver-dialog: gkr-pam: unlocked login keyring Mar 2 07:56:11 wkd-test02 unix_chkpwd[3686]: password check failed for user (franta) Mar 2 07:56:11 wkd-test02 gnome-screensaver-dialog: pam_unix(gnome-screensaver:auth): authentication failure; logname= uid=1000 euid=1000 tty=:0.0 ruser= rhost= user=franta Mar 2 07:56:15 wkd-test02 gnome-screensaver-dialog: gkr-pam: unlocked login keyring Mar 2 08:14:45 wkd-test02 gnome-screensaver-dialog: gkr-pam: unlocked login keyring Mar 2 08:17:01 wkd-test02 CRON[3811]: pam_unix(cron:session): session opened for user root by (uid=0) Mar 2 08:17:01 wkd-test02 CRON[3811]: pam_unix(cron:session): session closed for user root Mar 2 08:28:53 wkd-test02 gnome-screensaver-dialog: gkr-pam: unlocked login keyring Mar 2 08:29:14 wkd-test02 sudo: pam_unix(sudo:auth): authentication failure; logname=franta uid=0 euid=0 tty=/dev/pts/1 ruser=franta rhost=wkd-test02 user=franta Mar 2 08:29:20 wkd-test02 sudo: franta : TTY=pts/1 ; PWD=/home/franta ; USER=root ; COMMAND=/usr/bin/touch /var/log/syslog ===== Nastavení rsyslogu ===== Klasický syslog měl konfigurační soubor v ''/etc/syslog.conf''. Rsyslog používá * ''/etc/rsyslog.conf'' - základní konf. soubor * ''/etc/rsyslog.d/'' - všechny soubory v tomto adresáři Styl zápisu je poměrně jednoduchý. Co řádek to jedno pravidlo ve formátu: //jedna nebo více facility nebo více//.//priorita// //akce// ==== Facility ==== Místo jména facility může být wilcard ''*'' znamenající jakákoli facilita, nebo ''none'' znamenající žádná facilita. ==== Priority ==== Priorita znamená vždy daná priorita //plus// všechny vyšší. Např. notice (5), znamená notice a warning (4), err (3), crit (2), alert (1), emerg (0). Stejně jako u facilit, tak wilcard ''*'' znamenající jakákoli priorita, nebo ''none'' znamenající žádná priorita. Kromě toho se dají použít operátory ''='' a ''!''. Např. ''=notice'' znamená jen prioritu notice, ''notice'' znamená všechny kromě notice. Všimněte si také, že facilit může být více, priorita jen jediná. Aby na stejnou facilitu reagovalo více priorit, musí být rozepsáno do více řádků. Facility a priority dohromady oddělené ''.'' tvoří selector (výběr). Ty lze opakovat na stejném řádku pro akci použitím '';''. ==== Akce ==== Většina zpráv putuje do souboru. Pokud uvedené plnou cestu, pak jsou přidávány nakonec. Když soubor neexistuje, (r)syslog ho vytvoří. ''-'' na začátku nastavuje bufferovat, čímž mírně snížíme režii disku, ale nemáme zaručenou konzistenci, pokud se při nějaké velké zátěži nahromadí mnoho zpráv. ''@'' na začátku označuje, že se má zpráva zaslat na jiný syslog server, např.: ''@10.110.0.115'' nebo ''@srv-syslog''. Lze též jako akci napsat jméno uživatele, pak se zpráva vypíše jemu. Případě ''*'' znamenající poslat všem přihlášeným uživatelům. ==== Příklady pravidel ==== * ''mail.notice /var/log/mail'' - od mail, priority notice a vyšší, do souboru /var/log/mail * ''mail.notice /var/log/mail'' - od mail, všechny kromě priority notice * ''mail.!=notice /var/log/mail'' - od mail, všechny kromě priority notice (jen méně čitelně předchozí pravidlo) * ''mail.* -/var/log/mail'' - od mail, všechny priority, bufferovat * ''*.alert franta'' - od kohokoli, prioritu alert, na terminál frantovi * ''mail,uucp.alert @srv-syslog'' - od mail a uucp, prioritu alert, na srv-syslog server * ''mail.alert;uucp.notice *'' - od mail s prioritou alert, od uucp s notice, všem uživatelům ==== Odkazy ==== * [[http://oreilly.com/catalog/bssrvrlnx/chapter/ch10.pdf|Kapitola o logování z Building Secure Servers with Linux]]