Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision | ||
centos:mail_c7:mta_13 [03.03.2015 15:08. ] – django | centos:mail_c7:mta_13 [06.03.2015 12:00. ] – [Apache VHost anlegen] django | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Mailserver - Logfileauswertungen unter CentOS 7.x ====== | ====== Mailserver - Logfileauswertungen unter CentOS 7.x ====== | ||
Oft werden vom Management hübsche bunte Auswertungsgraphiken gewünscht, um sich so mehr oder weniger ein Bild davon zu machen, ob und wie der/die Mailserver mit der anfallenden Menge an elektronischer Post umgehen können. | Oft werden vom Management hübsche bunte Auswertungsgraphiken gewünscht, um sich so mehr oder weniger ein Bild davon zu machen, ob und wie der/die Mailserver mit der anfallenden Menge an elektronischer Post umgehen können. | ||
- | Auch als Postmaster und Admin können wir uns so einen kurzen Überblick verschaffen, | + | Auch als Postmaster und Admin können wir uns so einen kurzen Überblick verschaffen, |
Im Detail wollen wir uns nun drei der Varianten genauer ansehen. | Im Detail wollen wir uns nun drei der Varianten genauer ansehen. | ||
- **[[centos: | - **[[centos: | ||
- | - **WEB-GUIs** Graphisch sehr ansprechende | + | - **WEB-GUIs** Graphisch sehr ansprechende |
- **[[centos: | - **[[centos: | ||
- **[[centos: | - **[[centos: | ||
Zeile 878: | Zeile 878: | ||
AddHandler cgi-script .cgi | AddHandler cgi-script .cgi | ||
- | < | + | < |
- | AllowOverride None | + | AllowOverride None |
- | Options +ExecCGI | + | Options +ExecCGI |
- | DirectoryIndex mailgraph.cgi | + | DirectoryIndex mailgraph.cgi |
- | Order deny, | + | Order deny, |
- | require IP 10.0. | + | |
</ | </ | ||
ErrorLog logs/ | ErrorLog logs/ | ||
Zeile 3807: | Zeile 3807: | ||
So lassen sich z.B. auch die Reports zu **SPF**, **DKIM** und **DMARC** ausblenden, wenn man diese (aktuell noch) nicht haben möchte. Will man später die Graphen wieder sehen, reicht das Entfernen des Kommentarzeichens **#** am Anfang der betreffenden Zeilen. | So lassen sich z.B. auch die Reports zu **SPF**, **DKIM** und **DMARC** ausblenden, wenn man diese (aktuell noch) nicht haben möchte. Will man später die Graphen wieder sehen, reicht das Entfernen des Kommentarzeichens **#** am Anfang der betreffenden Zeilen. | ||
- | ==== (Summen-) Ausgabe | + | ===== Mailgraph-NG für mehrere Mailserver |
Betreibt man mehrere Mailserver will man neben den Einzelstatistiken der einzelnen Mailserver oft auch einen Überblick über den gesamten Mail-Server-Verkehr haben. | Betreibt man mehrere Mailserver will man neben den Einzelstatistiken der einzelnen Mailserver oft auch einen Überblick über den gesamten Mail-Server-Verkehr haben. | ||
Auch das lässt sich mit einem überschaubaren Aufwand realisieren. Hierzu gehen wir wie folgt vor. | Auch das lässt sich mit einem überschaubaren Aufwand realisieren. Hierzu gehen wir wie folgt vor. | ||
Zeile 3817: | Zeile 3817: | ||
Auf diese drei Schritte gehen wir nun im Detail noch ein. | Auf diese drei Schritte gehen wir nun im Detail noch ein. | ||
- | === 1. Daten einsammeln === | + | ==== RRD-Dateien |
Die einzelnen RRD-Dateien unserer Mailserver kopieren wir mit scp in ein temporäres Arbeitsverzeichnis unseres WEB-Servers. Hierzu legen wir uns erst einmal einen eigenen User an. | Die einzelnen RRD-Dateien unserer Mailserver kopieren wir mit scp in ein temporäres Arbeitsverzeichnis unseres WEB-Servers. Hierzu legen wir uns erst einmal einen eigenen User an. | ||
# groupadd -g 1100 mx-transfer && useradd -c "MX Transfer User" -d / | # groupadd -g 1100 mx-transfer && useradd -c "MX Transfer User" -d / | ||
Zeile 3961: | Zeile 3961: | ||
- | === 2. Daten bereitstellen | + | ==== Datenbereitstellung ==== |
Das CGI-Script, welches wir zum dynamischen Generieren der Statistikgraphen verwenden, bekommt im Verzeichnis // | Das CGI-Script, welches wir zum dynamischen Generieren der Statistikgraphen verwenden, bekommt im Verzeichnis // | ||
# mkdir -p / | # mkdir -p / | ||
- | Die Befüllung dieser Zeilverzeichnisse nehmen wir jeweils mit Hilfe eines **rsync**-Aufrufes | + | Die Befüllung dieser Zeilverzeichnisse nehmen wir jeweils mit Hilfe eines **rsync**-Aufrufs |
# vim / | # vim / | ||
Zeile 3985: | Zeile 3985: | ||
# Django : 2015-02-26 | # Django : 2015-02-26 | ||
- | # alles 5 Minuten die RRD-Files vom TRansfer-Verzeichnis | + | # alles 5 Minuten die RRD-Files vom Transfer-Verzeichnis |
*/5 * * * * root / | */5 * * * * root / | ||
*/5 * * * * root / | */5 * * * * root / | ||
Zeile 3994: | Zeile 3994: | ||
Nach wenigen Minuten stehen die Statistikdaten, | Nach wenigen Minuten stehen die Statistikdaten, | ||
- | === 3. Statistikgraphen und Webseite | + | ==== Generierung |
Zur Präsentation unserer Statistikdaten benötigen wir nun noch einen Webserver, der die aufbereiteten Daten bereitstellt. Hierzu legen wir uns folgende Verzeichnisstruktur an. | Zur Präsentation unserer Statistikdaten benötigen wir nun noch einen Webserver, der die aufbereiteten Daten bereitstellt. Hierzu legen wir uns folgende Verzeichnisstruktur an. | ||
< | < | ||
Zeile 4237: | Zeile 4237: | ||
</ | </ | ||
- | Somit ergeben sich folgende | + | ==== CGI-Scripte für die Einzelsysteme ==== |
+ | Für die vier Mailserver | ||
- | == / | + | === / |
# vim / | # vim / | ||
Zeile 5203: | Zeile 5204: | ||
</ | </ | ||
- | == / | + | === / |
# vim / | # vim / | ||
Zeile 6167: | Zeile 6168: | ||
</ | </ | ||
- | == / | + | === / |
# vim / | # vim / | ||
Zeile 7131: | Zeile 7132: | ||
</ | </ | ||
- | == / | + | === / |
# vim / | # vim / | ||
<file perl / | <file perl / | ||
Zeile 8094: | Zeile 8095: | ||
</ | </ | ||
- | Die wesentlichen Änderungen/ | + | ==== CGI-Erweiterung |
- | * Änderungen des Verzeichnisses | + | Wie auch schon bei den Einzelstatistiken sind bei der Σ-Seite, die die kumulierten Einzelgraphen enthält, umfangreichere Änderungen/ |
+ | |||
+ | === Datenquellen === | ||
+ | Da wir bei der Gesamtstatistik die Summe der einzelnen Mailserver zur Anzeige bringen wollen, benötigen wir daher auch alle Datenquellen. Die Anzahl der Variablen **$rrd_* ** erhöht sich daher entsprechend! | ||
+ | <code perl>... | ||
my $rrd_11 | my $rrd_11 | ||
Zeile 8132: | Zeile 8137: | ||
... | ... | ||
</ | </ | ||
- | * Einfügen der Variablen **url** | + | |
+ | === URL-Definitionen === | ||
+ | Damit die Seite bei Portierungen ohne große Änderungen im Code realisiert werden können, wird für die Querverweise | ||
+ | |||
+ | <code perl>... | ||
my $url = " | my $url = " | ||
Zeile 8148: | Zeile 8157: | ||
... | ... | ||
</ | </ | ||
- | | + | |
- | " | + | === Unterprogramme graph_xxx - kumulierte Werte für die Generierung der RRD-Graphiken === |
- | " | + | Bei der Generierung der kumulierten Graphiken stellt sich grundsätzlich die Frage, wie führt man den Inhalt mehrerer RRD-Dateien zusammen um einen Summengraph zu erstellen. Anstatt nun einen neue RRD-Datei mit dem Inhalt der vier einzelnen RRD-Dateien zu erstellen um daraus dann den Graphen zu generieren, wählen wir einen anderen Weg. Bei der Erstellung eines Summengraphen mit Hilfe von **RRD_GRAPH** bedienen wir uns nicht nur einer Quelle (RRD-Datei), |
- | " | + | |
- | " | + | Dazu müssen |
- | " | + | " |
- | " | + | " |
- | " | + | </ |
- | " | + | entsprechend **acht Zeilen** |
- | | + | < |
- | " | + | " |
- | " | + | " |
- | | + | " |
- | * Erweiterung des Unterprogramms | + | " |
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | </ | ||
+ | |||
+ | Bei der Generierung der eigentlichen Graphen | ||
+ | |||
+ | Hierzu verwenden wir die //RRD_GRAPH | ||
+ | |||
+ | Im Falle unseres Graphen über die Abgelehneten Nachrichten (**rejected**) | ||
+ | |||
+ | Daraus | ||
+ | ∑=rejected_11, | ||
+ | |||
+ | Anstatt der ursprünglichen **CDEF**-Definitionen | ||
+ | < | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | </ | ||
+ | verwenden | ||
+ | |||
+ | < | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | </ | ||
+ | |||
+ | Diese Änderungen tragen wir nun bei den Unterprogrammen | ||
+ | |||
+ | === Unterprogramm print_html | ||
+ | Wie auch schon bei den [[centos: | ||
+ | <code perl> | ||
sub print_html() | sub print_html() | ||
Zeile 8223: | Zeile 8266: | ||
print "< | print "< | ||
- | | + | print "< |
- | | + | print "< |
- | | + | print "<a href=' |
- | | + | print "<a href=' |
- | | + | print "<a href=' |
- | | + | print "< |
- | | + | print "< |
- | | + | print "< |
- | | + | print "<a href=' |
- | | + | print "<a href=' |
- | | + | print "<a href=' |
- | | + | print "< |
print "< | print "< | ||
Zeile 8258: | Zeile 8301: | ||
print "< | print "< | ||
- | | + | print "< |
- | | + | print "< |
- | | + | print "<a href=' |
- | | + | print "<a href=' |
- | | + | print "<a href=' |
- | | + | print "< |
- | | + | print "< |
- | | + | print "< |
- | | + | print "<a href=' |
- | | + | print "<a href=' |
- | | + | print "<a href=' |
- | | + | print "< |
- | | + | print "< |
- | | + | print "< |
- | | + | print "<a href=' |
- | | + | print "<a href=' |
- | | + | print "<a href=' |
- | | + | print "< |
} | } | ||
Zeile 8321: | Zeile 8364: | ||
</ | </ | ||
+ | |||
+ | === CGI-Script für die ∑-Auswertung === | ||
Mit allen Änderungen und Erweiterungen ergibt sich dann folgendes Gesamt-CGI-Script: | Mit allen Änderungen und Erweiterungen ergibt sich dann folgendes Gesamt-CGI-Script: | ||
# vim / | # vim / | ||
Zeile 9564: | Zeile 9609: | ||
</ | </ | ||
+ | ==== Apache VHost anlegen ==== | ||
+ | Damit wir bequem von unserem Browser aus, die aktuellen Graphiken abfragen können, bearbeiten wir entweder die aus dem RPM stammende Konfigurationsdatei oder legen wir nun einen passenden VHost an. | ||
+ | # vim / | ||
+ | <file apache / | ||
+ | # | ||
+ | # mailgraph.nausch.org | ||
+ | # | ||
+ | < | ||
+ | ServerAdmin webmaster@nausch.org | ||
+ | ServerName mailgraph.nausch.org | ||
+ | ServerAlias www.mailgraph.nausch.org | ||
+ | ServerPath / | ||
+ | DocumentRoot "/ | ||
+ | AddHandler cgi-script .cgi | ||
+ | |||
+ | < | ||
+ | AllowOverride None | ||
+ | Options +ExecCGI | ||
+ | DirectoryIndex mailgraph.cgi | ||
+ | require IP 10.0. | ||
+ | </ | ||
+ | < | ||
+ | AllowOverride None | ||
+ | Options +ExecCGI | ||
+ | DirectoryIndex mailgraph.cgi | ||
+ | require IP 10.0. | ||
+ | </ | ||
+ | < | ||
+ | AllowOverride None | ||
+ | Options +ExecCGI | ||
+ | DirectoryIndex mailgraph.cgi | ||
+ | require IP 10.0. | ||
+ | </ | ||
+ | < | ||
+ | AllowOverride None | ||
+ | Options +ExecCGI | ||
+ | DirectoryIndex mailgraph.cgi | ||
+ | require IP 10.0. | ||
+ | </ | ||
+ | < | ||
+ | AllowOverride None | ||
+ | Options +ExecCGI | ||
+ | DirectoryIndex mailgraph.cgi | ||
+ | require IP 10.0. | ||
+ | </ | ||
+ | |||
+ | ErrorLog logs/ | ||
+ | CustomLog logs/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | Bevor wir bei unserem Webserver eine Reload der Konfiguration vornehmen, testen wir unsere neue Konfigurationsdatei auf syntaktische Fehler. | ||
+ | # apachectl -t | ||
+ | |||
+ | | ||
+ | |||
+ | Da keine Fehler aufgetreten sind, aktivieren wir die neue Konfiguration durch einen Reload des Webserver-Daemon. | ||
+ | # systemctl reload postfix | ||
+ | |||
+ | ==== NGiNX VHost anlegen ==== | ||
+ | |||
+ | ==== Webaufruf ==== | ||
+ | Rufen wir nun die definierte Webseite unserer Gesamtstatistikübersicht auf, erhalten wir nachfolgende Ansicht. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Hier können wir nun gezielt einzelne Systeme auswählen, bzw. bei einer ausgewählten Detailstatistikseite zur Summenseite hin und her wechseln. | ||
===== AWStats ===== | ===== AWStats ===== | ||
Auch mit Hilfe des Projektes/ | Auch mit Hilfe des Projektes/ |