Bevezető
Mostanában eléggé bele kellett merülnöm a linuxos webszerverek témakörébe, így felmerült, hogy az apache site-okat monitorozni is jó lenne statisztikai szempontból. Ugyebár a nézettségért folyik a harc az interneten is, legalább tudjam hányadán állok...
Telepítési előfeltételek:
- Telepített operációs rendszer (Ubuntu 12.04 alatt tesztelve)
- Apache2, külön logfájlokkal minden monitorozni kívánt sitenak (a cikk végén ki tudod puskázni a mintából)
Az AWStats egy perl alapú logfájl analizátor. Beolvassa a logfájljainkat, amit aztán különböző grafikonokba, statisztikákba rendez (pl egyéni látogatók, oldalletöltések, hibakódok... stb.)
Awstats
Először is telepítenünk kell az AWStats nevű hasznos programot. Ezt megtehetjük kézzel, de a repo-ban is benne van.
Én repoból telepítettem:
sudo apt-get install awstats
A fenti paranccsal a szükséges többi programot (pl perl) is letölti és telepíti a rendszer.
Nálam az Apache2 több VirtualHost-ot kezel (mindegyiknek megvan a saját access és error logja) és a statisztikákat domainonként szeretném megjeleníteni.
Lépjünk be a config fájlokat tartalmazó könyvtárba és hozzuk létre a siteonkénti config fájlokat.
cd /etc/awstats
cp /etc/awstats/awstats.conf /etc/awstats/awstats.domain.hu.conf --- Az alap configot átmásoljuk és azt módosítjuk a siteunkhoz.
Itt az alábbi paramétereket kell elsődlegesen módosítani:
LogFile = ”/var/www/vhosts/domain.hu/logs/access.log” --- Itt található a log az adott sitehoz.
LogFormat = 1 --- Apache-hoz ez kell.
SiteDomain = ”domain.hu”
HostAliases = ”localhost 127.0.0.1 domain.hu”
Ezután az awstats.conf fájl végére be kell írni:
Include ”/etc/awstats/awstats.domain.hu.conf”
Az adatbázis frissítése:
/usr/lib/cgi-bin/awstats.pl -config=domain.hu -update
Figyelni kell arra, hogy a -config kapcsoló után nem a teljes config fájl név kell, csak az awstats. és a .conf közötti rész!
Most meg kell mondanunk az Apachenak, hogy siteonként hol találja a statisztikát
cd /etc/apache2/sites-availible
A site configjába irjuk be ezt:
Alias /awstatsclasses "/usr/share/awstats/lib/"
Alias /awstats-icon/ "/usr/share/awstats/icon/"
Alias /awstatscss "/usr/share/doc/awstats/examples/css"
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
ScriptAlias /awstats/ /usr/lib/cgi-bin/
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Ezután:
service apache2 reload
Ha megvagyunk, akkor az elkészült statisztikát a http://domain.hu/awstats/awstats.pl címen érhetjük el. A nagyobb biztonság érdekében rakhatunk rá authentikációt is, akkor viszont a következő értékek kellenek a configba:
awstats.domain.hu.conf
AllowAccessFromWebToAuthenticatedUsersOnly=1
AllowAccessFromWebToFollowingAuthenticatedUsers="user1 user2 user3"
/etc/apache2/sites-available/domain.hu így kell kinéznie:
Alias /awstatsclasses "/usr/share/awstats/lib/"
Alias /awstats-icon/ "/usr/share/awstats/icon/"
Alias /awstatscss "/usr/share/doc/awstats/examples/css"
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory /usr/lib/cgi-bin/>
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AuthName "AWStats Authentication"
AuthType Basic
AuthUserFile /etc/apache2/auth/awstats
Require valid-user
</Directory>
Generálhatunk CLI-ből (htpasswd awstats username) jelszót, vagy online, pl.: http://www.htaccesstools.com/htpasswd-generator/ vagy http://aspirine.org/htpasswd_en.html
A jelszavakat én a /etc/apache2/auth mappában tartom a könnyebb átláthatóság végett
htpasswd /etc/apache2/auth/awstats <username>
A statisztika nem dinamikusan frissül, csak akkor ha lefuttatjuk a fent már említett parancsot. Szerencsére van megoldás rá, hogy ne kelljen kézzel, alapértelmezésben, ha repoból telepítettük, akkor 10 percenként lefut az/usr/share/awstats/tools/update.sh fájl. Ezt kézzel át tudjuk ütemezni cronban.
Ezzel el is készültünk a statisztikai oldalunkkal, amit a http://domain.hu/awstats/awstats.pl vagy a http://domain.hu/awstats/awstats.pl?config=domain.hu linken keresztül érhetünk el. Ha beállítottunk authentikációt, akkor fel fog jönni az ablak, ahol bejelentkezhetünk.
A végére a teljes /etc/apache2/sites-available/domain.hu fájl
<VirtualHost *:80>
ServerAdmin admin@domain.hu
ServerName domain.hu
ServerAlias *.domain.hu
DocumentRoot /var/www/vhosts/domain.hu/www
ErrorLog /var/www/vhosts/domain.hu/logs/error.log
CustomLog /var/www/vhosts/domain.hu/logs/access.log combined
Alias /awstatsclasses "/usr/share/awstats/lib/"
Alias /awstats-icon/ "/usr/share/awstats/icon/"
Alias /awstatscss "/usr/share/doc/awstats/examples/css"
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
ScriptAlias /awstats/ /usr/lib/cgi-bin/
<Directory /usr/lib/cgi-bin/>
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AuthName "AWStats Authentication"
AuthType Basic
AuthUserFile /etc/apache2/auth/awstats
Require valid-user
</Directory>
</VirtualHost>
Remélem segítettem, jó elemezgetést! Kérdés esetén állok rendelkezésetekre.