Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:mail_c7:mta_13 [04.03.2015 15:03. ] – [test] djangocentos:mail_c7:mta_13 [22.07.2019 15:05. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 878: Zeile 878:
  AddHandler cgi-script .cgi  AddHandler cgi-script .cgi
  
- <Directory "/usr/share/mailgraph"> +    <Directory "/usr/share/mailgraph"> 
-    AllowOverride None +            AllowOverride None 
-    Options +ExecCGI +            Options +ExecCGI 
-    DirectoryIndex mailgraph.cgi +            DirectoryIndex mailgraph.cgi 
- Order deny,allow +            Order deny,allow 
- require IP 10.0.+     require IP 10.0.
  </Directory>  </Directory>
  ErrorLog logs/mailgraph_error.log  ErrorLog logs/mailgraph_error.log
Zeile 4004: Zeile 4004:
 </code> </code>
  
-   # mkdir -p /usr/share/mailgraph-ng{mx,mx11,mx12,mx13,mx14}+   # mkdir -p /usr/share/mailgraph-ng/{mx,mx11,mx12,mx13,mx14}
  
-Bei der **[[centos:mail_c7:mta_13?&#rpm-installation|RPM-Installation]]** von mailgraph wurden das Logo **///usr/share/mailgraph/rrdtool-3dlogo.png//** wie auch die CSS-Datei //**/usr/share/mailgraph/mailgraph.css**// bereits auf unseren Server kopiert. Fehlen diese beiden Dateien, kann man diese hier aus Django'WIKI herunterladen.+Bei der **[[centos:mail_c7:mta_13?&#rpm-installation|RPM-Installation]]** von mailgraph wurden das Logo **///usr/share/mailgraph/rrdtool-3dlogo.png//** wie auch die CSS-Datei //**/usr/share/mailgraph/mailgraph.css**// bereits auf unseren Server kopiert. Fehlen diese beiden Dateien, kann man diese hier aus Djangos WIKI herunterladen.
 {{ :centos:mail_c7:rrdtool-3dlogo.png?direct |Bild: RRDTOOL 3D Logo}} <file css /usr/share/mailgraph/mailgraph.css>    { margin: 0; padding: 0 } {{ :centos:mail_c7:rrdtool-3dlogo.png?direct |Bild: RRDTOOL 3D Logo}} <file css /usr/share/mailgraph/mailgraph.css>    { margin: 0; padding: 0 }
 body  { width: 900px; background-color: white; body  { width: 900px; background-color: white;
Zeile 8141: Zeile 8141:
 Damit die Seite bei Portierungen ohne große Änderungen im Code realisiert werden können, wird für die Querverweise jeweils zugehörige URL's definiert.  Damit die Seite bei Portierungen ohne große Änderungen im Code realisiert werden können, wird für die Querverweise jeweils zugehörige URL's definiert. 
  
-**Bsp. MX11:** <code perl>...+<code perl>...
  
 my $url   = "http://mailgraph-ng.nausch.org/mx/"; my $url   = "http://mailgraph-ng.nausch.org/mx/";
Zeile 8158: Zeile 8158:
 </code> </code>
  
-=== kumulierte Werte für die Generierung der RRD-Graphiken ===+=== 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), sondern wir lassen **RRD_GRAPH** die Daten aus den einzelnen RRD-Dateien zusammenrechnen und erstellen dann den Graphen.
  
-  Berücksichtigung **aller Datenquellen** bei der Generierung der einzelnen Graphiken. Hierzu geben wir bei den RRD_GRAPH Parameter **DEF** immer alle Datenquellen an! Somit wird z.B. beim Graphen mit den nicht angenommenen Nachrichten **Rejected** statt der **beiden Zeilen** <code>                "DEF:rejected=$rrd:rejected:AVERAGE", +Dazu müssen wir im ersten Schritt **alle Datenquellen** beim RRD_GRAPH Parameter **DEF** benennen. Somit wird z.B. beim Graphen mit den nicht angenommenen Nachrichten **Rejected** statt der **beiden Zeilen** <code> 
-                "DEF:mrejected=$rrd:rejected:MAX",</code> entsprechend **acht Zeilen**<code>"DEF:rejected_11=$rrd_11:rejected:AVERAGE", +"DEF:rejected=$rrd:rejected:AVERAGE", 
-                "DEF:mrejected_11=$rrd_11:rejected:MAX", +"DEF:mrejected=$rrd:rejected:MAX", 
-                "DEF:rejected_12=$rrd_12:rejected:AVERAGE", +</code>  
-                "DEF:mrejected_12=$rrd_12:rejected:MAX", +entsprechend **acht Zeilen** 
-                "DEF:rejected_13=$rrd_13:rejected:AVERAGE", +<code> 
-                "DEF:mrejected_13=$rrd_13:rejected:MAX", +"DEF:rejected_11=$rrd_11:rejected:AVERAGE", 
-                "DEF:rejected_14=$rrd_14:rejected:AVERAGE", +"DEF:mrejected_11=$rrd_11:rejected:MAX", 
-                "DEF:mrejected_14=$rrd_14:rejected:MAX",</code> +"DEF:rejected_12=$rrd_12:rejected:AVERAGE", 
-  Bei der Generierung der eigentlichen Graphen, egal ob nun eine einfache Fläche, ein gestapelter Bereich oder ein Liniengraph erzeugt werden soll, ziehen wir die **Summe der vier RRD-Dateien** heran. Beim RRD_GRAPH Parameter **CDEF** bilden wir die Summe aus den Variablen <code>rejected_11, rejected_12, rejected_13 und rejected_14</code>. RRD_GRAPH berechnet die Summe dieser Werte wir folgt: <code> (((rejected_11 + rejected_12) + rejected_13) + rejected_14)</code>. In der RRD_GRAPH Notation wird daraus dann: <code>rrejected=rejected_11,rejected_12,+,rejected_13,+,rejected_14,+,</code>. Am Beispiel der **Rejected*Nachrichten erhalten wir somit folgende **CDEF**-Definition:<code>                "CDEF:rrejected=rejected_11,rejected_12,+,rejected_13,+,rejected_14,+,60,*", +"DEF:mrejected_12=$rrd_12:rejected:MAX", 
-                "CDEF:drejected=rejected_11,rejected_12,+,rejected_13,+,rejected_14,+,UN,0,rejected_11,rejected_12,+,rejected_13,+,rejected_14,+,IF,$step,*", +"DEF:rejected_13=$rrd_13:rejected:AVERAGE", 
-                "CDEF:srejected=PREV,UN,drejected,PREV,IF,drejected,+", +"DEF:mrejected_13=$rrd_13:rejected:MAX", 
-                "CDEF:rmrejected=mrejected_11,mrejected_12,+,mrejected_13,+,mrejected_14,+,60,*",</code> +"DEF:rejected_14=$rrd_14:rejected:AVERAGE", 
-  Erweiterung des Unterprogramms **print_html** um die links zu den verweisenden Statistikseiten.<code perl>... +"DEF:mrejected_14=$rrd_14:rejected:MAX", 
 +</code> 
 + 
 +Bei der Generierung der eigentlichen Graphen ziehen wir die **Summe der vier RRD-Dateien** heran, egal ob eine einfache Fläche, ein gestapelter Bereich oder ein Liniengraph erzeugt werden soll. Beim RRD_GRAPH Parameter **CDEF** lassen wir daher die Summe aus den Variablen //**rejected_11**////**rejected_12**////**rejected_13**// und //**rejected_14**// berechnen. 
 + 
 +Hierzu verwenden wir die //RRD_GRAPH eigene Berechnungssyntax// : ''∑ = %%((%%(A + B) + C) + D)''.  
 + 
 +Im Falle unseres Graphen über die Abgelehneten Nachrichten (**rejected**) berechnet sich die Gesamtsumme also wie folgt: \\ <code>∑ = (((rejected_11 + rejected_12) + rejected_13) + rejected_14)</code> 
 + 
 +Daraus wird dann in der //RRD_GRAPH eigenen Berechnungssyntax//: 
 +   ∑=rejected_11,rejected_12,+,rejected_13,+,rejected_14,+, 
 + 
 +Anstatt der ursprünglichen **CDEF**-Definitionen  
 +<code> 
 +"CDEF:rrejected=rejected,60,*", 
 +"CDEF:drejected=rejected,UN,0,rejected,IF,$step,*", 
 +"CDEF:rmrejected=mrejected,60,*", 
 +</code> 
 +verwenden wir also nachfolgende **CDEF**-Definitionen: 
 + 
 +<code> 
 +"CDEF:rrejected=rejected_11,rejected_12,+,rejected_13,+,rejected_14,+,60,*", 
 +"CDEF:drejected=rejected_11,rejected_12,+,rejected_13,+,rejected_14,+,UN,0,rejected_11,rejected_12,+,rejected_13,+,rejected_14,+,IF,$step,*", 
 +"CDEF:rmrejected=mrejected_11,mrejected_12,+,mrejected_13,+,mrejected_14,+,60,*", 
 +</code> 
 + 
 +Diese Änderungen tragen wir nun bei den Unterprogrammen **graph_xxx** nach. 
 + 
 +=== Unterprogramm print_html  === 
 +Wie auch schon bei den [[centos:mail_c7:mta_13?&#cgi-scripte_fuer_die_einzelsysteme|Unterprogrammen print_html der Einzelsysteme]], erweitern wir nun noch das Unterprogramm **print_html** um die links zu den verweisenden Statistikseiten. 
 +<code perl>... 
  
 sub print_html() sub print_html()
Zeile 8235: Zeile 8266:
                 print "<p><img src=\"$scriptname?${n}-d\" alt=\"mailgraph - greystats\"/></p>\n";                 print "<p><img src=\"$scriptname?${n}-d\" alt=\"mailgraph - greystats\"/></p>\n";
  
-                #print "<h4><center>Postscreen (positive) &Uuml;bersicht</center></h4>\n"; +                print "<h4><center>Postscreen (positive) &Uuml;bersicht</center></h4>\n"; 
-                #print "<h5><center>( <a href='$url11$n'>MX11</a>\n"; +                print "<h5><center>( <a href='$url11$n'>MX11</a>\n"; 
-                #print "<a href='$url12$n'>MX12</a>\n"; +                print "<a href='$url12$n'>MX12</a>\n"; 
-                #print "<a href='$url13$n'>MX13</a>\n"; +                print "<a href='$url13$n'>MX13</a>\n"; 
-                #print "<a href='$url14$n'>MX14</a> )</center></h5>\n"; +                print "<a href='$url14$n'>MX14</a> )</center></h5>\n"; 
-                #print "<p><img src=\"$scriptname?${n}-v\" alt=\"mailgraph - postscreen\"/></p>\n";+                print "<p><img src=\"$scriptname?${n}-v\" alt=\"mailgraph - postscreen\"/></p>\n";
  
-                #print "<h4><center>Postscreen Detailansicht</center></h4>\n"; +                print "<h4><center>Postscreen Detailansicht</center></h4>\n"; 
-                #print "<h5><center>( <a href='$url11$n'>MX11</a>\n"; +                print "<h5><center>( <a href='$url11$n'>MX11</a>\n"; 
-                #print "<a href='$url12$n'>MX12</a>\n"; +                print "<a href='$url12$n'>MX12</a>\n"; 
-                #print "<a href='$url13$n'>MX13</a>\n"; +                print "<a href='$url13$n'>MX13</a>\n"; 
-                #print "<a href='$url14$n'>MX14</a> )</center></h5>\n"; +                print "<a href='$url14$n'>MX14</a> )</center></h5>\n"; 
-                #print "<p><img src=\"$scriptname?${n}-w\" alt=\"mailgraph - postscreenstats\"/></p>\n";+                print "<p><img src=\"$scriptname?${n}-w\" alt=\"mailgraph - postscreenstats\"/></p>\n";
  
                 print "<h4><center>&Uuml;bersicht Mail-Queues</center></h4>\n";                 print "<h4><center>&Uuml;bersicht Mail-Queues</center></h4>\n";
Zeile 8270: Zeile 8301:
                 print "<p><img src=\"$scriptname?${n}-i\" alt=\"mailgraph - smtpd details\"/></p>\n";                 print "<p><img src=\"$scriptname?${n}-i\" alt=\"mailgraph - smtpd details\"/></p>\n";
  
-                #print "<h4><center>Sender policy Framework - SPF-Pr&uuml;fungen</center></h4>\n"; +                print "<h4><center>Sender policy Framework - SPF-Pr&uuml;fungen</center></h4>\n"; 
-                #print "<h5><center>( <a href='$url11$n'>MX11</a>\n"; +                print "<h5><center>( <a href='$url11$n'>MX11</a>\n"; 
-                #print "<a href='$url12$n'>MX12</a>\n"; +                print "<a href='$url12$n'>MX12</a>\n"; 
-                #print "<a href='$url13$n'>MX13</a>\n"; +                print "<a href='$url13$n'>MX13</a>\n"; 
-                #print "<a href='$url14$n'>MX14</a> )</center></h5>\n"; +                print "<a href='$url14$n'>MX14</a> )</center></h5>\n"; 
-                #print "<p><img src=\"$scriptname?${n}-f\" alt=\"mailgraph - spf checked\"/></p>\n";     +                print "<p><img src=\"$scriptname?${n}-f\" alt=\"mailgraph - spf checked\"/></p>\n";     
  
-                #print "<h4><center>DomainKeys Identified Mail - DKIM-Pr&uuml;fungen</center></h4>\n"; +                print "<h4><center>DomainKeys Identified Mail - DKIM-Pr&uuml;fungen</center></h4>\n"; 
-                #print "<h5><center>( <a href='$url11$n'>MX11</a>\n"; +                print "<h5><center>( <a href='$url11$n'>MX11</a>\n"; 
-                #print "<a href='$url12$n'>MX12</a>\n"; +                print "<a href='$url12$n'>MX12</a>\n"; 
-                #print "<a href='$url13$n'>MX13</a>\n"; +                print "<a href='$url13$n'>MX13</a>\n"; 
-                #print "<a href='$url14$n'>MX14</a> )</center></h5>\n"; +                print "<a href='$url14$n'>MX14</a> )</center></h5>\n"; 
-                #print "<p><img src=\"$scriptname?${n}-m\" alt=\"mailgraph - dkim checked\"/></p>\n";+                print "<p><img src=\"$scriptname?${n}-m\" alt=\"mailgraph - dkim checked\"/></p>\n";
  
-                #print "<h4><center>Domain-based Message Authentication, Reporting & Conformance - DMARC-Pr&uuml;fungen</center></h4>\n"; +                print "<h4><center>Domain-based Message Authentication, Reporting & Conformance - DMARC-Pr&uuml;fungen</center></h4>\n"; 
-                #print "<h5><center>( <a href='$url11$n'>MX11</a>\n"; +                print "<h5><center>( <a href='$url11$n'>MX11</a>\n"; 
-                #print "<a href='$url12$n'>MX12</a>\n"; +                print "<a href='$url12$n'>MX12</a>\n"; 
-                #print "<a href='$url13$n'>MX13</a>\n"; +                print "<a href='$url13$n'>MX13</a>\n"; 
-                #print "<a href='$url14$n'>MX14</a> )</center></h5>\n"; +                print "<a href='$url14$n'>MX14</a> )</center></h5>\n"; 
-                #print "<p><img src=\"$scriptname?${n}-c\" alt=\"mailgraph - dmarc checked\"/></p>\n";   +                print "<p><img src=\"$scriptname?${n}-c\" alt=\"mailgraph - dmarc checked\"/></p>\n";   
  
         }         }
Zeile 9578: Zeile 9609:
 </file> </file>
  
-==== TEST/DEMO ==== +==== Apache VHost anlegen ==== 
-FIXME+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 /etc/httpd/conf.d/vhosts.conf 
 +<file apache /etc/httpd/conf.d/vhosts.conf> 
 +
 +# mailgraph.nausch.org 
 +
 +<VirtualHost *:80> 
 + ServerAdmin webmaster@nausch.org 
 + ServerName mailgraph.nausch.org 
 + ServerAlias www.mailgraph.nausch.org 
 + ServerPath / 
 + DocumentRoot "/usr/share/mailgraph-ng/mx" 
 + AddHandler cgi-script .cgi 
 + 
 + <Directory "/usr/share/mailgraph/mx"> 
 +            AllowOverride None 
 +            Options +ExecCGI 
 +            DirectoryIndex mailgraph.cgi 
 +            require IP 10.0. 
 + </Directory> 
 + <Directory "/usr/share/mailgraph/mx11"> 
 +            AllowOverride None 
 +            Options +ExecCGI 
 +            DirectoryIndex mailgraph.cgi 
 +            require IP 10.0. 
 + </Directory> 
 + <Directory "/usr/share/mailgraph/mx12"> 
 +            AllowOverride None 
 +            Options +ExecCGI 
 +            DirectoryIndex mailgraph.cgi 
 +            require IP 10.0. 
 + </Directory> 
 + <Directory "/usr/share/mailgraph/mx13"> 
 +            AllowOverride None 
 +            Options +ExecCGI 
 +            DirectoryIndex mailgraph.cgi 
 +            require IP 10.0. 
 + </Directory 
 + <Directory "/usr/share/mailgraph/mx14"> 
 +            AllowOverride None 
 +            Options +ExecCGI 
 +            DirectoryIndex mailgraph.cgi 
 +            require IP 10.0. 
 + </Directory 
 + 
 + ErrorLog logs/mailgraph_error.log 
 + CustomLog logs/mailgraph_access.log combined 
 +</VirtualHost> 
 + 
 + 
 +</file> 
 + 
 +Bevor wir bei unserem Webserver eine Reload der Konfiguration vornehmen, testen wir unsere neue Konfigurationsdatei auf syntaktische Fehler.  
 +   # apachectl -t 
 + 
 +   Syntax OK 
 + 
 +Da keine Fehler aufgetreten sind, aktivieren wir die neue Konfiguration durch einen Reload des Webserver-Daemon. 
 +   # systemctl reload postfix 
 + 
 +==== NGiNX vHost anlegen ==== 
 +Nutzen wir als Webserver **[[centos:web_c7:nginx_1|NGiNX]]** können wir auch hier schnell und einfach einen passenden vHOST anlegen. 
 +  # vim /etc/nginx/conf.d/vhosts.conf 
 +<file http /etc/nginx/conf.d/vhosts.conf>server { 
 +        listen          80; 
 +        server_name     mailgraph.nausch.org; 
 +        access_log      /var/log/nginx/mailgraph_access.log; 
 +        error_log       /var/log/nginx/mailgraph_errors.log; 
 +  
 +        root /usr/share/mailgraph-ng/; 
 +        index mailgraph.cgi; 
 +  
 +       location ~ \.php { 
 +                fastcgi_split_path_info ^(.+\.cgi)(/.+)$; 
 +                fastcgi_index mailgraph.cgi; 
 +                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
 +                include fastcgi_params; 
 +        } 
 +
 +</file> 
 + 
 +Den Parameter **fastcgi_pass** setzen wir im übrigen auf den Wert aus der Konfigurationsdatei //**/etc/php-fpm.d/www.conf**// des PHP FastCGI Process Manager-Daemon **php-fpm**. 
 + 
 +Haben wir die Konfigurationsdatei vervollständigt, prüfen wir diese noch auf syntaktische Fehler. 
 +   # nginx -t 
 + 
 +   nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 
 +   nginx: configuration file /etc/nginx/nginx.conf test is successful 
 + 
 +Somit können wir unsere Konfiguration nun noch aktivieren. 
 +   # systemctl reload nginx 
 + 
 +==== Webaufruf ==== 
 +Rufen wir nun die definierte Webseite unserer Gesamtstatistikübersicht auf, erhalten wir nachfolgende Ansicht. 
 + 
 +{{ :centos:mail_c7:mailgraph-ng_summe.png?direct&800 |Bild: Mailgraph Statistiken (Summe mehrerer Einzelsysteme) }} 
 + 
 +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/Paketes **AWStats** kann man das Maillog unseres Mailserver auswerten. 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. :) Auch mit Hilfe des Projektes/Paketes **AWStats** kann man das Maillog unseres Mailserver auswerten. 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. :)
Zeile 11431: Zeile 11559:
   * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**   * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**
   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
- 
- 
- 
- 
  
  
  • centos/mail_c7/mta_13.1425481409.txt.gz
  • Zuletzt geändert: 04.03.2015 15:03.
  • (Externe Bearbeitung)