Analisando LOGs do Zimbra com o Awstats.

O Awstats é um analisador de log muito conhecido do meio web, vou mostrar como usa-lo com o Zimbra.

Ambiente.
Zimbra 6.0.6 + CentOS 5.4

1) Instalando

O Zimbra já vem com um apache usado para o aspell, vamos instalar um da distro para o Awstats e alterar a porta.

# yum install httpd awstats

2) Configurando

Agora vamos configurar o Apache para ouvir em outra porta.

edite o arquivo /etc/httpd/httpd.conf e atere o
Listen 80
para
Listen 8080
( ou algum porta que voce preferir )

Adicione tambem essa linha:
AddHandler cgi-script .cgi .pl

:wq! ( Saia salvando. )

Agora vamos editar o arquivo de conf do awstats

Acesse /etc/httpd/conf.d/
e altere o awstas.conf conforme o exemplo abaixo.

Alias /awstats/icon/ /var/www/awstats/icon/

ScriptAlias /awstats/ /var/www/awstats/

DirectoryIndex awstats.pl
Options ExecCGI
AddHandler cgi-script .pl
order deny,allow
allow from all

#Alias /css/ /var/www/awstats/css/
#Alias /js/ /var/www/awstats/js/

Agora vamos configurar os arquivos de conf para cada dominio. ( o zimbra contem apenas 1 dominio, mas como vamos tratar logs do mesmo dominio, vou chamar cada um por um hostname diferente. )
webmail.zimbra.local e mail.zimbra.local

Vamos começar pelo mail.zimbra.local

Acesse /etc/awstats, crie um novo aquivo com o nome de awstats.mail.zimbra.local.conf e nele coloque o seguinte conteúdo.

LogFile=”perl /usr/bin/maillogconvert.pl standard < /var/log/zimbra.log |" LogType=M LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd" LogSeparator=" " SiteDomain="mail.zimbra.local" HostAliases="mail.zimbra.local ip " DNSLookup=2 DirData="/var/www/awstats" DirCgi="/awstats" DirIcons="/awstats/icon" AllowToUpdateStatsFromBrowser=0 AllowFullYearView=2 EnableLockForUpdate=1 DNSStaticCacheFile="dnscache.txt" DNSLastUpdateCacheFile="dnscachelastupdate.txt" SkipDNSLookupFor="" AllowAccessFromWebToAuthenticatedUsersOnly=0 AllowAccessFromWebToFollowingAuthenticatedUsers="" AllowAccessFromWebToFollowingIPAddresses="" CreateDirDataIfNotExists=0 BuildHistoryFormat=text BuildReportFormat=html SaveDatabaseFilesWithPermissionsForEveryone=0 PurgeLogFile=0 ArchiveLogRecords=0 KeepBackupOfHistoricFiles=1 DefaultFile="index.php index.html" SkipUserAgents="" SkipFiles="" SkipReferrersBlackList="" OnlyHosts="" OnlyUserAgents="" OnlyUsers="" OnlyFiles="" NotPageList="css js class gif jpg jpeg png bmp ico rss xml swf" ValidHTTPCodes="200 304" ValidSMTPCodes="1 250" AuthenticatedUsersNotCaseSensitive=0 URLNotCaseSensitive=0 URLWithAnchor=0 URLQuerySeparators="?;" URLWithQuery=0 URLWithQueryWithOnlyFollowingParameters="" URLWithQueryWithoutFollowingParameters="" URLReferrerWithQuery=0 WarningMessages=1 ErrorMessages="" DebugMessages=0 NbOfLinesForCorruptedLog=50 WrapperScript="" DecodeUA=0 MiscTrackerUrl="/js/awstats_misc_tracker.js" LevelForBrowsersDetection=0 LevelForOSDetection=0 LevelForRefererAnalyze=0 LevelForRobotsDetection=0 LevelForSearchEnginesDetection=0 LevelForKeywordsDetection=0 LevelForFileTypesDetection=0 LevelForWormsDetection=0 UseFramesWhenCGI=1 DetailedReportsOnNewWindows=1 Expires=3600 MaxRowsInHTMLOutput=1000 Lang="auto" DirLang="./lang" ShowMenu=1 ShowSummary=HB ShowMonthStats=UHB ShowDaysOfMonthStats=HB ShowDaysOfWeekStats=HB ShowHoursStats=HB ShowDomainsStats=0 ShowHostsStats=HBL ShowAuthenticatedUsers=0 ShowRobotsStats=0 ShowEMailSenders=HBML ShowEMailReceivers=HBML ShowSessionsStats=0 ShowPagesStats=0 ShowFileTypesStats=0 ShowFileSizesStats=0 ShowBrowsersStats=0 ShowOSStats=0 ShowOriginStats=0 ShowKeyphrasesStats=0 ShowKeywordsStats=0 ShowMiscStats=0 ShowHTTPErrorsStats=0 ShowSMTPErrorsStats=1 ShowClusterStats=0 AddDataArrayMonthStats=1 AddDataArrayShowDaysOfMonthStats=1 AddDataArrayShowDaysOfWeekStats=1 AddDataArrayShowHoursStats=1 IncludeInternalLinksInOriginSection=0 MaxNbOfDomain = 10 MinHitDomain = 1 MaxNbOfHostsShown = 10 MinHitHost = 1 MaxNbOfLoginShown = 10 MinHitLogin = 1 MaxNbOfRobotShown = 10 MinHitRobot = 1 MaxNbOfPageShown = 10 MinHitFile = 1 MaxNbOfOsShown = 10 MinHitOs = 1 MaxNbOfBrowsersShown = 10 MinHitBrowser = 1 MaxNbOfScreenSizesShown = 5 MinHitScreenSize = 1 MaxNbOfWindowSizesShown = 5 MinHitWindowSize = 1 MaxNbOfRefererShown = 10 MinHitRefer = 1 MaxNbOfKeyphrasesShown = 10 MinHitKeyphrase = 1 MaxNbOfKeywordsShown = 10 MinHitKeyword = 1 MaxNbOfEMailsShown = 20 MinHitEMail = 1 FirstDayOfWeek=0 ShowFlagLinks="" ShowLinksOnUrl=1 UseHTTPSLinkForUrl="" MaxLengthOfShownURL=64 HTMLHeadSection="" HTMLEndSection="" MetaRobot=0 Logo="awstats_logo6.png" LogoLink="http://awstats.sourceforge.net" BarWidth = 260 BarHeight = 90 StyleSheet="" color_Background="FFFFFF" color_TableBGTitle="CCCCDD" color_TableTitle="000000" color_TableBG="CCCCDD" color_TableRowTitle="FFFFFF" color_TableBGRowTitle="ECECEC" color_TableBorder="ECECEC" color_text="000000" color_textpercent="606060" color_titletext="000000" color_weekend="EAEAEA" color_link="0011BB" color_hover="605040" color_u="FFAA66" color_v="F4F090" color_p="4477DD" color_h="66DDEE" color_k="2EA495" color_s="8888DD" color_e="CEC2E8" color_x="C1B2E2" ExtraTrackedRowsLimit=500 :wq! ( Saia salvando. ) Agora com o webmail.zimbra.local, copie o /etc/awstats/awstats.localhost.localdomain.conf /etc/awstats/awstats.zimbra.local.conf
cp /etc/awstats/awstats.localhost.localdomain.conf /etc/awstats/awstats.zimbra.local.conf

e edite a linha:
LogFile
para
LogFile="/opt/zimbra/jetty-6.1.22.z6/logs/access_log"

ps.: o Arquivo access_log não existe, o que existe são arquivos datados. Para resolver esse problema, vamos criar um script para fazer o link simbólico toda noite

3) Resolvendo problemas.

Crie um arquivo e coloque o seguinte conteudo:

#!/bin/sh
data=$(date "+%Y-%m-%d")
su - zimbra -c "rm /opt/zimbra/jetty/logs/access_log"
su - zimbra -c "ln -s /opt/zimbra/jetty/logs/access_log.$data /opt/zimbra/jetty/logs/access_log"

E no crontab ponha da seguinte forma:

01 1 * * * /root/data.sh&

Adicione tambem no crontab o script para atualizar o awstats no periodo que voce preferir, no meu caso eu pus de 1 em 1 hora.

60 * * * * /usr/bin/awstats_updateall.pl now -confdir="/etc" -awstatsprog="/var/www/awstats/awstats.pl"

Pronto.

4) Testando.

Agore reinicie o seu apache.

# /etc/init.d/httpd restart
e rode o comando:

# /root/data.sh
( so para ele criar o link simbolico para o arquivo )
# /usr/bin/awstats_updateall.pl now -confdir=”/etc” -awstatsprog=”/var/www/awstats/awstats.pl”

Va ate o seu navegador e coloque: http://zimbra.local:8080/awstats/awstats.pl?config=mail.zimbra.local ou webmail.zimbra.local e veja o seu relatorio !!

Leave a Reply