Teljes virtuális levelezőszerver/awstats
Ez a cikk a Teljes virtuális levelezőszerver sorozat része, és szükség lehet arra, hogy az előző részeket elolvassuk.
Annak ellenére, hogy a Postfix biztosít naplókat, azok grafikus megjelenítése és elemzése sokkal mélyebb betekintést nyújthat. A www-misc/awstats szoftvercsomag egy népszerű naplóelemző, amely képes naplókat feldolgozni és megfelelő eredményeket biztosítani számunkra.
Telepítés
Az AWStats egy webalkalmazás, de már nem támaszkodik a webapp-configra. Ha még nincs telepítve, akkor telepíteni kell:
root #
emerge --ask www-misc/awstats
A telepítés után létre kell hozni egy beállításfájlt, amely lehet doménenként különálló, vagy egyetlen fájl, amely minden domént kezel:
root #
cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.example.com.conf
Az AWStats telepítése nem a webapp-config segítségével történik, hanem egy egyszerű szimbolikus hivatkozást (symlink) használunk:
root #
ln -s /usr/share/awstats/wwwroot /var/www/mail.example.com/htdocs/awstats
Beállítás
AWStats
Az AWStats észszerű alapértelmezésekkel érkezik, azonban néhányat mindenképpen módosítani kell.
Először is, az AWStats feltételezi, hogy nincsenek használatban vhost számítógépek. Például, ha az Apache alapértelmezett kombinált vhost naplóit használja, akkor az AWStats nem fog működni.
Tegyük fel, hogy az Apache kombinált LogFormat beállítása a következőképpen néz ki:
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" VLOG=%{VLOG}e" vhost
A következő módosításokat kell elvégezni:
/etc/awstats/awstats.example.com.conf
LogFormat igazítása az Apache beállításaihozLogFormat = "%virtualname %host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"
Ezt követően az AWStats-nak tudnia kell a naplófájlból kiszűrendő doménekről és aliasokról:
/etc/awstats/awstats.example.com.conf
AWStats beállítása úgy, hogy figyeljen a doménekreSiteDomain="example.com"
HostAliases="localhost 127.0.0.1 REGEX[example\.com$] REGEX[example\.(org|net)$]
Az AWStats-nak el kell helyeznie az adatbázisát valahol. A Gentoo létrehozta a /var/lib/awstats könyvtárat erre a célra, de az adatbázis bárhol tárolható. Győződjön meg róla, hogy a jogosultságok megfelelőek, és az Apache felhasználó írhat a könyvtárba.
/etc/awstats/awstats.example.com.conf
AWStats adatbázis elhelyezéseDirData="/var/lib/awstats"
Bármilyen egyéb módosítás a beállításfájlban opcionális, de érdemes megvizsgálni őket.
Naplózás
Az AWStats-nak fel kell dolgoznia az Apache naplófájlt az adatbázisának felépítéséhez. Miután megbizonyosodott róla, hogy manuálisan működik, automatizálható.
Manuális út
Először az AWStats-t a konzolról kell futtatni, hogy észlelje az esetleges kezdeti hibákat:
user $
awstats.pl -config=stats.example.com -update -showdropped
Ez meg kell hogy jelenítse az esetleges problémákat és a beállításból hiányzó doménneveket.
Cron
Ha minden tökéletesen működik, akkor hozzáadható a cron.hourly könyvtárhoz.
/etc/cron.hourly/awstats
Az AWstat cronjob-ja#!/bin/sh
awstats.pl -config=stats.example.com -update > /dev/null 2>&1
Ne feledje el, hogy szükség esetén a szkriptet végrehajthatóvá kell tenni.
Logrotate
Az AWStats óránként feldolgozza a naplófájlt, de amikor a logrotate forgatja az Apache naplóját, előfordulhat, hogy néhány bejegyzés hiányzik. Ez azonban könnyen megoldható:
/etc/logrotate.d/apache2
Diff a pre-init szkript számára# Apache2 logrotate snipet for Gentoo Linux
# Contributes by Chuck Short
#
/var/log/apache2/*log {
missingok
notifempty
sharedscripts
+ prerotate
+ /etc/cron.hourly/awstats > /dev/null 2>&1
+ endscript
postrotate
/etc/init.d/apache2 reload > /dev/null 2>&1 || true
endscript
}
Apache
Ahhoz, hogy az AWStats az Apache-ból használható legyen, a webhelyet megfelelően kell beállítani. Az alias szekcióban a következőket kell hozzáadni:
/etc/apache2/vhosts.d/stats.example.com
Aliasok az awstats számáraAlias /awstats/classes "/usr/share/awstats/wwwroot/classes"
Alias /awstats/css "/usr/share/awstats/wwwroot/css"
Alias /awstats/icon "/usr/share/awstats/wwwroot/icon"
Alias /awstats/js "/usr/share/awstats/wwwroot/js"
ScriptAlias /awstats/ "/usr/share/awstats/wwwroot/cgi-bin/"
Végül, az AWStats számára meg kell adni a megfelelő jogosultságokat, hogy hozzáférhető legyen.
/etc/apache2/vhosts.d/stats.example.com
Aliases az awstats számára<Directory "/usr/share/awstats/wwwroot">
Options None
Require all granted
</Directory>
Az Apache újraindítása után az AWStats elérhetőnek kell lennie a következő címen: http://stats.example.com/awstats/awstats.pl?config=stats.example.com. Ha az AWStats-hoz nem adnak meg beállításopciót, akkor a jelenlegi host számítógépnevet használja, ami azt jelenti, hogy ebben az esetben elhagyható lett volna.
AWStats mail naplóhoz
Az AWStats elsősorban az Apache naplóinak elemzőjeként ismert. Azonban mail naplók elemzésére is használható.
Beállítás
Miután awstats.stats.example.com.conf fájlt átmásolta awstats.mail.example.com.conf néven, számos módosításra van szükség ahhoz, hogy az AWStats mail naplóelemzővé váljon:
/etc/awstats.mail.example.com.conf
A mail.log fájl naplózása az access.log helyett (diff -u, csak hozzáadások és törlések)-LogFile="/var/log/apache2/access_log"
+LogFile="perl /usr/bin/awstats_maillogconvert.pl standard < /var/log/mail.log |"
-LogType=W
+LogType=M
-LogFormat=1
+LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd"
-SiteDomain="localhost"
+SiteDomain="example.com"
-HostAliases="localhost 127.0.0.1 REGEX[myserver\.com$]"
+HostAliases="localhost 127.0.0.1 REGEX[example\.(net|org)$]"
-DirData="."
+DirData="/var/lib/awstats"
-LevelForBrowsersDetection=2 # 0 disables Browsers detection.
+LevelForBrowsersDetection=0 # 0 disables Browsers detection.
# 2 reduces AWStats speed by 2%
# allphones reduces AWStats speed by 5%
-LevelForOSDetection=2 # 0 disables OS detection.
+LevelForOSDetection=0 # 0 disables OS detection.
# 2 reduces AWStats speed by 3%
-LevelForRefererAnalyze=2 # 0 disables Origin detection.
+LevelForRefererAnalyze=0 # 0 disables Origin detection.
# 2 reduces AWStats speed by 14%
-LevelForRobotsDetection=2 # 0 disables Robots detection.
+LevelForRobotsDetection=0 # 0 disables Robots detection.
# 2 reduces AWStats speed by 2.5%
-LevelForSearchEnginesDetection=2 # 0 disables Search engines detection.
+LevelForSearchEnginesDetection=0 # 0 disables Search engines detection.
# 2 reduces AWStats speed by 9%
-LevelForKeywordsDetection=2 # 0 disables Keyphrases/Keywords detection.
+LevelForKeywordsDetection=0 # 0 disables Keyphrases/Keywords detection.
# 2 reduces AWStats speed by 1%
-LevelForFileTypesDetection=2 # 0 disables File types detection.
+LevelForFileTypesDetection=0 # 0 disables File types detection.
# 2 reduces AWStats speed by 1%
LevelForWormsDetection=0 # 0 disables Worms detection.
# 2 reduces AWStats speed by 15%
-ShowRobotsStats=HBL
+ShowRobotsStats=0
-ShowEMailSenders=0
+ShowEMailSenders=HBML
-ShowEMailReceivers=0
+ShowEMailReceivers=HBML
-ShowSessionsStats=1
+ShowSessionsStats=0
-ShowPagesStats=PBEX
+ShowPagesStats=0
-ShowFileTypesStats=HB
+ShowFileTypesStats=0
-ShowFileSizesStats=0
+ShowFileSizesStats=1
-ShowDownloadsStats=HB
+ShowDownloadsStats=0
-ShowOSStats=1
+ShowOSStats=0
-ShowBrowsersStats=1
+ShowBrowsersStats=0
-ShowOriginStats=PH
+ShowOriginStats=0
-ShowKeyphrasesStats=1
+ShowKeyphrasesStats=0
-ShowKeywordsStats=1
+ShowKeywordsStats=0
-ShowMiscStats=a
+ShowMiscStats=0
-ShowHTTPErrorsStats=1
+ShowHTTPErrorsStats=0
-ShowSMTPErrorsStats=0
+ShowSMTPErrorsStats=1
Ezekkel a módosításokkal a kézi futtatásnak problémamentesen kell működnie.
user $
awstats.pl -config=mail.example.com -showcorrupted -showdropped
Naplózás
Az e-mail napló óránkénti vizsgálatához a meglévő AWStats szkriptet a cron.hourly könyvtárban a következőkkel lehet kiegészíteni:
/etc/cron.hourly/awstats
E-mail naplóelemzés hozzáadásaawstats.pl -config=mail.example.com -update > /dev/null 2>&1
Továbbá a syslog forgatása zajlik, ezért az awstats-nek elemeznie kell a levelezési naplófájlt, mielőtt a levelezési napló forgatása megtörténne:
/etc/logrotate.d/syslog-ng
Levélnapló bejegyzés módosítása a syslogban# Mail system
/var/log/mail.log /var/log/mail.info /var/log/mail.err /var/log/mail.warn {
sharedscripts
missingok
prerotate
/etc/cron.hourly/awstats
endscript
postrotate
/etc/init.d/syslog-ng reload > /dev/null 2>&1 || true
endscript
}
A /var/log/mail.log fájlnak nem kell ugyanazon a kiszolgálón lennie. Az AWStats-nak hozzá kell férnie. Ez történhet NFS-en keresztül, vagy úgy, hogy a syslog távoli naplózást végez.
Ha az apache fájlok naplózása nem kívánatos, vagy a webmail egy másik kiszolgálón található, akkor a webszerver naplóelemzése eltávolítható a cron feladatok közül.