Awstats rychle a jednoduše
Awstats je skript v Perlu, který zpracovává logy (nejen) webserveru a ve výsledku vyplivne pěknou statistiku přístupů. Dnes si ukážeme, jak Awstats lehce a efektivně nastavit.
Awstats
Standardní konfigurace Awstats se nachází v adresáři
/etc/awstats, kde je i ukázkový soubor
awstats.conf. Jelikož konfigurace podporuje funkci
Include, využijeme tento soubor jako základ pro naše vlastní
konfigurace.
Vytvoříme nový soubor awstats.domain.tld.conf:
# hlavní config, nejprve jej vhodně nastavíme (formát logů, pluginy atd.)
Include "/etc/awstats/awstats.conf"
# log soubor Apache (v mém případě)
LogFile="/home/www/logs/domain.tld.log"
# doména, povinný parametr, který se spíše uplatní při použití spojeného logu (o tom později)
SiteDomain="domain.tld"
# aliasy pro SiteDomain, doporučuji tento formát
HostAliases="REGEX[domain\.tld$]"
Apache 2
Nastavíme Apache, aby logoval. Direktiva CustomLog se může
nacházet uvnitř i vně direktivy <VirtualHost>, podle
toho, co všechno chceme logovat.
Jeden log pro každou doménu
Direktivu přidáme do odpovídajícího VirtualHosta:
<VirtualHost *:80>
ServerName domain.tld
...
CustomLog /home/www/logs/domain.tld.log combined
</VirtualHost>
Jeden log pro celý server
Přidáme mimo VirtualHost:
# vlastní formát logu, prefixem je jméno VirtualHosta
LogFormat "%{Host}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" cplus
CustomLog /home/www/logs/server.log cplus
V případě této konfigurace musíme Awstats říct o novém formátu
logu, což provedeme přímo v konfiguraci awstats.conf úpravou
řádky LogFormat:
LogFormat="%virtualname %host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"
Další nastavení
Alias /awstats-icon/ /usr/share/awstats/icon/
<Directory /usr/share/awstats/icon>
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Namapuje adresář s obrázky Awstats do URL adresy
/awstats-icon/.
Zpracování
K periodické aktualizaci dat nastavíme cron (pokud již tak distributor neudělal):
*/15 * * * * root /home/bin/awstats_updateall.pl now --excludeconf=awstats.conf > /dev/null 2>&1
Skript awstats_updateall.pl a dalších pár šikovných
skriptů nalezneme v adresáři /usr/share/doc/awstats/examples.
Tento skript zpracovává všechny konfigurační soubory,
takže aktualizuje všechny domény.
Máme-li správně nastavené CGI, což ve výchozí konfiguraci obvykle
bývá, nalezneme webový frontend awstats na adrese
http:domain.tld/cgi-bin/awstats.pl?config=domain.tld//. Kromě
řešení na bázi Perl frontendu a awstats_updateall.pl skriptu je
však možné využít awstats_buildstaticpages.pl, který přímo
vygeneruje HTML soubory do adresáře zadaného v parametru. Toto řešení
převážně využívám na webhostingách, má však tu nevýhodu, že není
možné zobrazit statistiky za jiná období a zákazník vždy vidí pouze
aktuální měsíc.
Vylepšení
Napsal jsem rewrite, který podstatně zkrášluje adresu a parametr
předávaný skriptu /cgi-bin/awstats.pl na webu:
RewriteEngine On
RewriteRule ^/?([^/]+)/$ /cgi-bin/awstats.pl?config=$1 [PT,L,QSA]
Výše zmíněný kód je vhodné aplikovat na určitou subdoménu, např.
stats. Statistiky pak nalezneme na adrese
http://stats.anotherdomain.tld/domain.tld/.
Statistiky subdomén
Awstats se samozřejmě dá nastavit tak, aby u určité domény logoval i každou subdoménu. Tento přístup kombinuje a upravuje formáty logů popsané výše. Každá subdoména musí mít svůj VirtualHost a definovaný log, v optimálním případě budou logy pro každou doménu zvlášť a v nich spojené logy subdomén s upraveným formátem (viz. jeden log pro celý server).
Štítky: Řešení problému
Komentáře
Komentáře jsou uzavřeny