Teljes virtuális levelezőszerver/awstats

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Complete Virtual Mail Server/awstats and the translation is 100% complete.
Other languages:
Note
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:

CODE Apache naplóformátuma
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:

FILE /etc/awstats/awstats.example.com.confLogFormat igazítása az Apache beállításaihoz
LogFormat = "%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:

FILE /etc/awstats/awstats.example.com.confAWStats beállítása úgy, hogy figyeljen a doménekre
SiteDomain="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.

FILE /etc/awstats/awstats.example.com.confAWStats adatbázis elhelyezése
DirData="/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.

FILE /etc/cron.hourly/awstatsAz 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ó:

FILE /etc/logrotate.d/apache2Diff 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:

FILE /etc/apache2/vhosts.d/stats.example.comAliasok az awstats számára
Alias /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.

FILE /etc/apache2/vhosts.d/stats.example.comAliases 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:

FILE /etc/awstats.mail.example.com.confA 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:

FILE /etc/cron.hourly/awstatsE-mail naplóelemzés hozzáadása
awstats.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:

FILE /etc/logrotate.d/syslog-ngLevé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 &gt; /dev/null 2&gt;&1 || true
    endscript
}
Note
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.