Jak pohodlně číst a prohledávat logy webového serveru Apache

Jestliže máte k dispozici virtuální server nebo alespoň kvalitní webhosting s přístupem k SSH a logům webového serveru, máte jedinečnou možnost sledovat chybová hlášení generovaná serverem a PHP. Při hledání problému vám napoví více, než případné chyby v prohlížeči, které se ani nemusejí zobrazit.

Často se na mě obracejí čtenáři s tím, že jejich webová aplikace má nějaký problém s fungováním, ale nevidí žádné chybové hlášení a nemají se od čeho odpíchnout. Typicky třeba v Drupalu máte nastaven zápis chyb do jeho logu, ovšem jeho prohledávání nemusí být dvakrát přehledné. Navíc ne všechna hlášení webserveru se zde objeví.

Pokud máte přístup k příkazovému řádku na serveru a logům webového serveru (v článku počítám s Apache běžícím na Linuxu), můžete velice pohodlně sledovat výpisy chyb a také je podle potřeby filtrovat. Stejně tak můžete prohlížet aktuální data o návštěvnosti.

Apache totiž generuje tzv. access.log a error.log. Oba jsou textové soubory s informacemi o návštěvách, respektive chybách. Najdete zde IP adresu návštěvníka, kompletní chybové hlášení i čas, kdy se tak stalo. Soubory mohou být pojmenované mírně odlišně, typicky mohou v názvu zahrnovat i jméno domény. Najdete je nejčastěji někde ve složce /var/www nebo /var/log/apache, záleží na nastavení operačního systému, resp. konkrétní linuxové distribuci.

Jak prohlížet seznam chyb na serveru

K prohlížení logů můžete v prostředí příkazového řádku Linuxu nebo Macu využít několik příkazů. My si ukážeme cat a tail. První z nich zobrazí obsah textového souboru, který mu předáte jako argument. Druhý dělá víceméně totéž, vrací poslední část souboru. S přepínačem -f však může být upraven k tomu, aby se zacyklil, nevracel řízení zpět příkazovému řádku, ale neustále sledoval požadovaný soubor. Pokud do tohoto souboru třeba webový server zapíše nový řádek, ihned jej uvidíte na obrazovce.

Příklady použití tedy budou následující:

cat /var/www/domena/data/logs/domena.cz.error.log

tail -f /var/www/domena/data/logs/domena.cz.error.log

Zobrazení záznamů z logu pro určitou IP adresu

Pokud výše uvedené dva příkazy zkombinujete s příkazem grep, můžete na obrazovku rychle dostat výpis z logu, který obsahuje záznamy jen pro určitou IP adresu, ze které se na web přistupovalo:

cat /var/www/domena/data/logs/domena.cz.error.log | grep 192.168.1.1

tail -f /var/www/domena/data/logs/domena.cz.error.log | grep 192.168.1.1

Pokud k příkazu grep doplníte přepínač -v, pak se zobrazí naopak všechny řádky, které specifikovanou hodnotu nemají.

Zobrazení záznamů z logu pro určitý soubor

Filtrování pomocí příkazu grep lze použít i k tomu, abyste třeba z přístupového logu zobrazili jenom informace vztahující se k určitému souboru nebo adrese, na kterou návštěvníci webu koukají:

cat /var/www/domena/data/logs/domena.cz.access.log | grep fotka.jpg

tail -f /var/www/domena/data/logs/domena.cz.access.log | grep fotka.jpg

Tolik tedy na téma rychlé prohlížení a filtrování logu webového serveru Apache. Pro pořádek ještě doplňuji, že vyfiltrovaná data můžete jednoduše uložit do nového souboru, například následovně:

cat /var/www/domena/data/logs/domena.cz.error.log | grep 192.168.1.1 > mojechyby.txt

Pokud jste s ssh a připojením k příkazovému řádku serveru zatím nikdy nepracovali, přijdou vám vhod články Důležité linuxové příkazy pro webmastery a Připojení k linuxovému serveru z Windows bez hesla.

Tagy

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

návštěvník

tomuhle rikate pohodlne ? to web ctete taky v html ?

Profile picture for user Jan Polzer

Jednak netuším, proč nyní reagujete na devět let starý článek, jednak ano. V tu dobu mi to přišlo pohodlné, bez potřeby nějakých sofistikovaných grafických řešení. A pořád to operativně používám. Někde si samozřejmě logy posílám do různých další nástrojů určených k jejich analýze. Přijde na to, co chcete z logu vysledovat. Například pro analýzu návštěvnosti je fajn GoAccess.

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru