centos:mailserver:logfileauswertung_en

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
centos:mailserver:logfileauswertung_en [09.06.2011 11:25. ]
django [Webaufruf]
centos:mailserver:logfileauswertung_en [09.06.2011 11:30. ] (aktuell)
django [manueller Start des Dämon]
Zeile 1: Zeile 1:
 +====== Logfileauswertungen ======
 +Damit wir uns im laufenden Betrieb regelmäßigen über den aktuellen Status ein Bildmachen können - und das ohne langwierig im Logfile des Postfix herumzusuchen - stehen uns mehrere Hilfsprogramme zur Verfügung.\\
 +\\
 +Im Detail wollen wir uns nun zwei der Varianten genauer ansehen.
 +  - **pflogsumm** Logfilezusammenfassung generieren und via eMail dem postmaster zur Verfügung stellen.
 +  - **Awstats** Logfilezusammenfassung generieren und zum Abrufen via Browser anbieten
 +  - **mailgraph** Graphisch sehr ansprechende Logfilezusammenfassung generieren und zum Abrufen via Browser anbieten
  
 +===== pflogsumm =====
 +Mit Hilfe dieses kleinen Perlscriptes erstellen wir nun täglich einen Statusbericht über das was unserem MX widerfahren ist. :)
 +==== Installation ====
 +Die Installation des Perlscriptes gestaltet sich im gewohnten Maße sehr einfach über **YUM**.
 +  # yum install postfix-pflogsumm
 +Anschließend finden wir in **// /usr/sbin/pflogsumm //** das besagte Perl-Script. 
 +==== manueller Programmaufruf ====
 +Ein **man pflogsumm** bzw. **pflogsumm --?** verrät uns im Detail, welche Programmoptioonen zur Verfügung stehen.
 +\\
 +Wollen wir uns einen Bericht des heutigen Tages ansehen, so generieren wir diesen on-the-fly mit:
 +  # /usr/sbin/pflogsumm -d today /var/log/maillog
 +Interessiert uns was gestern los war, so lautet der Aufgruf ganz einfach:
 +  # /usr/sbin/pflogsumm -d yesterday /var/log/maillog
 +==== automatischer Programmaufruf ====
 +Für die tägliche Erstellung unserer Mailserverstatistik bemühen wir nun ganz einfach unseres cron-deamon.
 +\\
 +Hierzu legen wir mit dem Editor unserer Wahl eine betreffende Konfigurationsdate :
 +  # vim /etc/crontab
 +<code>#täglicher Statusbericht unseres Mailservers postfix
 +10 0 * * * root /usr/sbin/pflogsumm -d yesterday /var/log/maillog 2>&1 | /bin/mailx -s "‘uname -n‘ daily mail stats" postmaster</code>
 +Täglich um 10 Minuten nach 12:00 Uhr p.m., wird die Statistik des letzten Tages erstellt und mittels **mailx** als eMail an den postmaster verschickt.
 +\\
 +<code>Date: Mon, 13 Oct 2008 00:10:03 +0200 (CEST)
 +From: root <root@nausch.org>
 +To: postmaster@nausch.org
 +Subject: ‘uname -n‘ daily mail stats
 +
 +Postfix log summaries for Oct 12
 +
 +Grand Totals
 +------------
 +messages
 +
 +     31   received
 +     27   delivered
 +      0   forwarded
 +      0   deferred
 +      0   bounced
 +    339   rejected (92%)
 +      0   reject warnings
 +      0   held
 +      0   discarded (0%)
 +
 + 353252   bytes received
 + 353252   bytes delivered
 +     16   senders
 +     16   sending hosts/domains
 +      4   recipients
 +      1   recipient hosts/domains
 +
 +
 +Per-Hour Traffic Summary
 +    time          received  delivered   deferred    bounced     rejected
 +    --------------------------------------------------------------------
 +    0000-0100                    0          0          0          0 
 +    0100-0200                    0          0          0          0 
 +    0200-0300                    0          0          0          0 
 +    0300-0400                    0          0          0          0 
 +    0400-0500                    0          0          0          3 
 +    0500-0600                    1          0          0         24 
 +    0600-0700                    0          0          0         10 
 +    0700-0800                    0          0          0          2 
 +    0800-0900                    3          0          0          7 
 +    0900-1000                    3          0          0         18 
 +    1000-1100                    2          0          0         18 
 +    1100-1200                    2          0          0         29 
 +    1200-1300                    2          0          0         25 
 +    1300-1400                    1          0          0         20 
 +    1400-1500                    0          0          0         37 
 +    1500-1600                    0          0          0         22 
 +    1600-1700                    0          0          0         24 
 +    1700-1800                    2          0          0         31 
 +    1800-1900                    3          0          0         12 
 +    1900-2000                    3          0          0         10 
 +    2000-2100                    4          0          0         19 
 +    2100-2200                    1          0          0          2 
 +    2200-2300                    0          0          0         19 
 +    2300-2400                    0          0          0          7 
 +
 +Host/Domain Summary: Message Delivery 
 + sent cnt  bytes   defers   avg dly max dly host/domain
 + -------- -------  -------  ------- ------- -----------
 +     27   353252        0     1.3 s    3.6 s  nausch.org
 +
 +...
 +
 +... 
 +
 +Fatal Errors: none
 +
 +Panics: none
 +
 +Master daemon messages
 +----------------------
 +      1   reload configuration /etc/postfix
 +</code>
 +===== AWStats =====
 +Mit Hilfe zweier Perlscripte erstellen wir nun täglich einen Statusbericht über das was unserem MX widerfahren ist, und rufen später diese Information via Firefox/Konqueror ab. :)
 +==== Installation ====
 +Die Installation von **//AWStats//** ist [[centos:logfileanalyse_mit_awstats]] ausfürlich beschrieben.
 +==== Konfiguration ====
 +Zur eigentlichen Logfileauswertung legen wir uns nun eine eigene Konfigurationdatei für **//AWStats//** an:
 +  # /etc/awstats/awstats.postfix.nausch.org.conf
 +Darinpassen wir nun alle Konfigurationsoptionen, die für das **maillog** von Postfix relevant sind, an. Zusammengefasst sieht dann unsere Konfigurationdatei entsprechend wie folgt aus:
 +  # egrep -v '(^#|^$)' /etc/awstats/awstats.postfix.nausch.org.conf 
 +<code>
 +LogFile="perl /usr/bin/maillogconvert.pl standard < /var/log/maillog |"
 +LogType=M
 +LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd"
 +LogSeparator=" "
 +SiteDomain="mx1.nausch.org"
 +HostAliases=„localhost 127.0.0.1 REGEX[nausch\.org$] REGEX[www\.nausch\.org$]“
 +DNSLookup=2
 +DirData="."
 +DirCgi="/cgi-bin"
 +DirIcons="/icon"
 +AllowToUpdateStatsFromBrowser=0
 +AllowFullYearView=3
 +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=0
 +DefaultFile="index.html"
 +SkipHosts=""
 +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         # 0 disables Browsers detection.
 +                                    # 2 reduces AWStats speed by 2%
 +                                    # allphones reduces AWStats speed by 5%
 +LevelForOSDetection=0               # 0 disables OS detection.
 +                                    # 2 reduces AWStats speed by 3%
 +LevelForRefererAnalyze=0            # 0 disables Origin detection.
 +                                    # 2 reduces AWStats speed by 14%
 +LevelForRobotsDetection=0           # 0 disables Robots detection.
 +                                    # 2 reduces AWStats speed by 2.5%
 +LevelForSearchEnginesDetection=0    # 0 disables Search engines detection.
 +                                    # 2 reduces AWStats speed by 9%
 +LevelForKeywordsDetection=0         # 0 disables Keyphrases/Keywords detection.
 +                                    # 2 reduces AWStats speed by 1%
 +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%
 +UseFramesWhenCGI=1
 +DetailedReportsOnNewWindows=1
 +Expires=0
 +MaxRowsInHTMLOutput=1000
 +Lang="de"
 +DirLang="./lang"
 +ShowMenu=1
 +ShowSummary=HB
 +ShowMonthStats=HB
 +ShowDaysOfMonthStats=HB
 +ShowDaysOfWeekStats=HB
 +ShowHoursStats=HB
 +ShowDomainsStats=0
 +ShowHostsStats=HBL
 +ShowAuthenticatedUsers=0
 +ShowRobotsStats=0
 +ShowWormsStats=0
 +ShowEMailSenders=HBML
 +ShowEMailReceivers=HBML
 +ShowSessionsStats=0
 +ShowPagesStats=0
 +ShowFileTypesStats=0
 +ShowFileSizesStats=0
 +ShowOSStats=0
 +ShowBrowsersStats=0
 +ShowScreenSizeStats=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=1
 +ShowFlagLinks=""
 +ShowLinksOnUrl=1
 +UseHTTPSLinkForUrl=""
 +MaxLengthOfShownURL=64
 +HTMLHeadSection=""
 +HTMLEndSection=""
 +Logo="awstats_logo6.png"
 +LogoLink="http://awstats.sourceforge.net"
 +BarWidth   = 260
 +BarHeight  = 90
 +StyleSheet=""
 +color_Background="FFFFFF"               # Background color for main page (Default = "FFFFFF")
 +color_TableBGTitle="CCCCDD"             # Background color for table title (Default = "CCCCDD")
 +color_TableTitle="000000"               # Table title font color (Default = "000000")
 +color_TableBG="CCCCDD"                  # Background color for table (Default = "CCCCDD")
 +color_TableRowTitle="FFFFFF"    # Table row title font color (Default = "FFFFFF")
 +color_TableBGRowTitle="ECECEC"  # Background color for row title (Default = "ECECEC")
 +color_TableBorder="ECECEC"              # Table border color (Default = "ECECEC")
 +color_text="000000"                             # Color of text (Default = "000000")
 +color_textpercent="606060"              # Color of text for percent values (Default = "606060")
 +color_titletext="000000"                # Color of text title within colored Title Rows (Default = "000000")
 +color_weekend="EAEAEA"                  # Color for week-end days (Default = "EAEAEA")
 +color_link="0011BB"                             # Color of HTML links (Default = "0011BB")
 +color_hover="605040"                    # Color of HTML on-mouseover links (Default = "605040"
 +color_u="FFAA66"                                # Background color for number of unique visitors (Default = "FFAA66")
 +color_v="F4F090"                                # Background color for number of visites (Default = "F4F090")
 +color_p="4477DD"                                # Background color for number of pages (Default = "4477DD")
 +color_h="66DDEE"                                # Background color for number of hits (Default = "66DDEE")
 +color_k="2EA495"                                # Background color for number of bytes (Default = "2EA495")
 +color_s="8888DD"                                # Background color for number of search (Default = "8888DD")
 +color_e="CEC2E8"                                # Background color for number of entry pages (Default = "CEC2E8")
 +color_x="C1B2E2"                                # Background color for number of exit pages (Default = "C1B2E2")
 +ExtraTrackedRowsLimit=500
 +</code>
 +==== Logrotate anpassen ====
 +In regelmäßigen Abständen werden die Logfiles unseres Webserver rotiert, d.h. es werden die Alten Daten gapackt und eine neue Logdatei angelegt.\\
 +AWStats kann jedoch nur auf das aktuelle Logfile zugreifen, nicht aber auf die bereits archivierten. Damit nun keine Statistik-Daten //verloren// gehen, müsssen wir noch sicherstellen, dass vor dem Archivierungsintervall von **logrotate**, AWStats einen Update seiner Statistikfiles machen kann.\\
 +
 +Hierzu tragen wir nachfolgende Zeilen in die zentrale "syslog-logrotate-Konfogurationsdatei" **/etc/logrotate.d/syslog** ein:
 +  # vim /etc/logrotate.d/syslog
 +<code bash syslog>
 +
 +/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
 +    sharedscripts
 +    prerotate
 +        /usr/bin/awstats_updateall.pl now -configdir=/etc/awstats/ --awstatsprog=/var/www/awstats/awstats.pl >/dev/null
 +    endscript
 +    postrotate
 +        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
 +        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
 +    endscript
 +}
 +</code>
 +===== mailgraph =====
 +Eine weitere graphisch ansprechende Übersicht kann mittels [[http://mailgraph.schweikert.ch/|Mailgraph]] erstellt werden.
 +==== Paketinstalltion(en) ====
 +Die von mailgraph benötigten Pakete **rrdtool**, **perl-Time-HiRes-Value** und **perl-File-Tail** installieren wir über unseren bewährten Mechanismus **yum**
 +  # yum install rrdtool perl-Time-HiRes-Value perl-File-Tail
 +==== Download ====
 +Das Programm-Archiv **mailgraph** holen wir uns direkt von [[http://mailgraph.schweikert.ch/pub/|David Schweikert's Homepage]] via **wget**.
 +  # cd /usr/local/src
 +
 +  # wget http://mailgraph.schweikert.ch/pub/mailgraph-1.14.tar.gz
 +<code>
 +--11:31:12--  http://mailgraph.schweikert.ch/pub/mailgraph-1.14.tar.gz
 +Auflösen des Rechnernamens »mailgraph.schweikert.ch«.... 88.198.52.145
 +Verbindungsaufbau mit mailgraph.schweikert.ch[88.198.52.145]:80... verbunden.
 +HTTP-Anfrage gesendet, warte auf Antwort... 200 OK
 +Länge: 22014 (21K) [application/x-gzip]
 +Speichere nach: »mailgraph-1.14.tar.gz«
 +
 +100%[===========================================================================================================================================>] 22.014      --.-K/  in 0,06s  
 +
 +11:31:12 (374 KB/s) - »mailgraph-1.14.tar.gz« gespeichert [22014/22014]
 +</code>
 +==== Installation ====
 +Anschließend entpacken wir das Archiv und verlinken auf die aktuelle Version.
 +  # tar zxvf mailgraph-1.14.tar.gz
 +<code>
 +mailgraph-1.14/
 +mailgraph-1.14/mailgraph-init
 +mailgraph-1.14/mailgraph.cgi
 +mailgraph-1.14/mailgraph.pl
 +mailgraph-1.14/mailgraph.css
 +mailgraph-1.14/COPYING
 +mailgraph-1.14/CHANGES
 +mailgraph-1.14/README
 +</code>
 +  # ln -s mailgraph-1.14 mailgraph
 +==== Konfiguration ====
 +Entsprechend unserer Installationsumgebung passen wir die Pfadangaben in dem Programm **mailgraph.cgi** an
 +  # vim mailgraph.cgi
 +<code bash mailgraph.cgi>
 +
 +#!/usr/bin/perl -w
 +
 +# mailgraph -- postfix mail traffic statistics
 +# copyright (c) 2000-2007 ETH Zurich
 +# copyright (c) 2000-2007 David Schweikert <david@schweikert.ch>
 +# released under the GNU General Public License
 +
 +use RRDs;
 +use POSIX qw(uname);
 +
 +my $VERSION = "1.14";
 +
 +my $host = (POSIX::uname())[1];
 +my $scriptname = 'mailgraph.cgi';
 +my $xpoints = 540;
 +my $points_per_sample = 3;
 +my $ypoints = 160;
 +my $ypoints_err = 96;
 +my $rrd = '/var/log/mailgraph.rrd'; # path to where the RRD database is
 +my $rrd_virus = '/var/log/mailgraph_virus.rrd'; # path to where the Virus RRD database is
 +my $tmp_dir = '/tmp/mailgraph'; # temporary directory where to store the images
 +</code>
 +Das Verzeichnis für die temporär erstellen Graphiken legen wir noch an:
 +  # mkdir /tmp/mailgraph
 +und passen die Berechtigung an.
 +  # chown apache:apache /tmp/mailgraph/
 +==== Apache VHost anlegen ====
 +Damit wir bequem von unserem Browser aus, die aktuellen Graphiken abfragen können, legen wir nun einen passenden VHost an.
 +  # vim /etc/httpd/conf.d/vhosts.conf
 +<code apache vhosts.conf>
 +#
 +# mailgraph.nausch.org
 +#
 +<VirtualHost *:80>
 +    ServerAdmin webmaster@nausch.org
 +    ServerName mailgraph.nausch.org:80
 +    ServerAlias www.mailgraph.nausch.org
 +    ServerPath /
 +    DocumentRoot "/usr/local/src/mailgraph"
 +    AddHandler cgi-script .cgi
 +    <Directory "/usr/local/src/mailgraph">
 +        Options ExecCGI
 +        AllowOverride AuthConfig
 +        Order allow,deny
 +    </Directory>
 +    DirectoryIndex mailgraph.cgi
 +    ErrorLog logs/mailgraph_error.log
 +    CustomLog logs/mailgraph_access.log combined
 +</VirtualHost>
 +</code>
 +und starten anschließend unseren Webserver einmal durch, damit er den weiteren VHost auch verwenden kann.
 +  # service postfix restart
 +  httpd beenden:                                              OK  ]
 +  httpd starten:                                              OK  ]
 +==== Programmaufruf ====
 +=== manueller Start des Dämon ===
 +Damit das Maillogfile forlaufend ausgelesen wird, starten wir unserem im Dämonmodus. Über die Option **--ignore-localhost** weisen wir mailgraph an, die Mails von unserem amavis nicht "doppelt" zu zählen. Ferner werden auch die Informationen zu //Spam-// und //Virusmeldungen// aus dem MAillog in den Graphiken berücksichtigt.
 +   # /usr/local/src/mailgraph/mailgraph.pl -d -l /var/log/maillog --ignore-localhost
 +Über unseren definierten VHost können wir nun mit Hilfe des CGI-Sriptes **mailgraph.cgi** auf unsere [[https://mailgraph.nausch.org|Loggraphiken]] zugreifen.
 +=== automatischer Start des Dämon ===
 +Damit beim Systemstart der mailgraph-Dämon richtig gestartet wird, passen wir das mitgelieferte init-script unseren Gegebenheiten an.
 +  # vim /usr/local/src/mailgraph/mailgraph-init
 +<code bash mailgraph-init>
 +
 +#!/bin/sh
 +
 +# $Id: mailgraph-init 19 2005-06-13 11:23:22Z dws $
 +# example init script for mailgraph
 +#
 +# chkconfig: 2345 82 28
 +# description: mailgraph postfix log grapher.
 +#
 +# processname: mailgraph.pl
 +# pidfile: /var/run/mailgraph.pid
 +
 +PATH=/bin:/usr/bin
 +MAILGRAPH_PL=/usr/local/src/mailgraph/mailgraph.pl
 +MAIL_LOG=/var/log/maillog
 +PID_FILE=/var/run/mailgraph.pid
 +RRD_DIR=/var/log
 +
 +case "$1" in
 +'start')
 +        echo "Starting mail statistics grapher: mailgraph";
 +        nice -19 $MAILGRAPH_PL -l $MAIL_LOG -d \
 +                --daemon-pid=$PID_FILE --daemon-rrd=$RRD_DIR \
 +                --ignore-localhost
 +        ;;
 +
 +'stop')
 +        echo "Stopping mail statistics grapher: mailgraph";
 +        if [ -f $PID_FILE ]; then
 +                kill `cat $PID_FILE`
 +                rm $PID_FILE
 +        else
 +                echo "mailgraph not running";
 +        fi
 +        ;;
 +
 +*)
 +        echo "Usage: $0 { start | stop }"
 +        exit 1
 +</code>
 +Anschließend "machen" wir das Script noch ausführbar,
 +  # chmod 755 vim /usr/local/src/mailgraph/mailgraph-init
 +kopieren es an nach **/etc/int.d/**
 +  # cp vim /usr/local/src/mailgraph/mailgraph-init /etc/init.d/
 +und starten den daemon mit
 +  # service mailgraph-init start
 +Damit der Start nun auch bei einem reboot automatisch erfolgt, setzen wir die nötigen symlinks automatisch mit
 +  # chkconfig mailgraph-init on
 +Das Ganze überprüfen wir dann noch mittels
 +  # chkconfig --list | grep mailgraph
 +   mailgraph-init  0:Aus   1:Aus   2:Ein   3:Ein   4:Ein   5:Ein   6:Aus
 +
 +==== Webaufruf ====
 +Über unseren [[https://mailgraph.nausch.org|Vhost]] erhalten wir nun optisch schön ansprechende Übersichten über den Mailverkehr unseres MX.
 +{{ :centos:mailgraph.png?400 }}
  • centos/mailserver/logfileauswertung_en.txt
  • Zuletzt geändert: 09.06.2011 11:30.
  • von django