E-Mail Konto Datenverkehr ist 0MB

#1
Hallo,
habe hier eine Maschine mit Debian 7, OpenVZ, Ploop, Ispconfig (alles aktuell) die mir bei den Mailkonten überall 0MB Datentraffic zeigt, obwohl Traffic erzeugt wird. Beim Webtraffic funktioniert die Ausgabe. Habt ihr einen Tipp wo da suchen könnte?
Besten Dank.
 
#5
Hallo,

nach der heutigen Wartung zähle ich inzwischen 6 Server mit dem Problem.
Auch stelle ich erneut fest, dass auf der Startseite die Quoatas nicht korrekt berechnet werden. Hierzu hatte ich schonmal einen Beitrag (https://www.howtoforge.de/forum/threads/email-konten-speicherplatzberechnung.9163/#post-46289) welcher aber anch wie vor ungelöst ist.

Die Postfächer werden immer voller und voller, obwohl z.T. per POP abgeholt wird und auch gelöscht wird. Sehe ich mir ein nahezu volles Postfach z.B. mit 900mB von 1000 im Roundcube an, sind KEINE Mails darin. Erst nachdem ich 1x in Roundcube geöffnet hatte, setzt sich nach einiger Zeit die Startseite von ISPConfig zurück und zeigt mir den korrekten Wert an.

LG
 

Till

Administrator
#6
Erst nachdem ich 1x in Roundcube geöffnet hatte, setzt sich nach einiger Zeit die Startseite von ISPConfig zurück und zeigt mir den korrekten Wert an.
Dann liegt es vermutlich an dovecot, denn ispconfig macht ja nichts anderes als die werte anzuzeigen die dovecot in seine statistik Datei schreibt. Möglicherweise löschst Du Daten aus den dovecot mailboxen in einer art das dovecot es nicht mit bekommt so dass er seine statistik datei nicht aktualisiert. ein aufruf in roundcube stößt dann vermutlich per imap befehl in dovecot eine neuberechnung an die dann auch von ispconfig angezeigt wird solabld dovecot die neuen werte in seine statistik datei geschrieben hat.
 
#8
Hallo,
zurück zum ursprünglichen Thema, ich sehe nach wie vor auf sämtlichen meiner identisch nach dem Perfect Server vorgegangenen Tutorial eingerichteten Server das Problem, dass mir keine Mail-Traffics angezeigt werden.
Auf allen Postfächern, egal ob die mit Smartphone, Thunderbird, Outlook oder anderen Clienten abgerufen werden.
Kämpfe gerade auch mit dem anderen genannten Thema und den Mail Quoatas das sollte aber ein anderes Thema als hier sein.
LG
 
#9
Nachdem ich mein anderes Thema mit den falsch berechneten Quotas gelöst habe, besteht dieses Thema nach wie vor, dass mir keine Traffics bei den Mails angezeigt werden.
Wie im vorherigen Post verwende ich zumindest für meinen Teil Thunderbird.
 

Till

Administrator
#10
Ich hatte das Problem noch nicht, daher kann ich Dir die Ursache nicht nennen. Du kannst höchstens versuchen den Code dafür zu debuggen um zu sehen wo es hakt. Der Traffic wird einmal pro tag ermittelt soweit ich mich erinnere, müsste das server.sh script in 3.0.5 sein bzw. ein cron plugin in 3.1.
 
#11
Hallo,
hatte bei ISPConfig 3.0.5 sowie in 3.1 in die genannten Dateien gesehen, konnte aber nichts finden. Nach wie vor, auch nach dem Update keine Email Traffic Statistiken.
Hab leider keine Ahnung wie ich weiter vorgehen könnte um den Fehler zu finden.
LG
 
#12
Inzwischen sind wir zwar ein paar Schritte weiter, dennoch nach wie vor keine Mail Traffic Statistiken.

Fehler 1 den ich noch nicht gefunden habe, Amavis logt nicht in die /var/log/mail.log
Noch nichtmal wenn ich Amavis neu starte.
Wird in /etc/amavis/50-user~ sowie /etc/amavis/conf.d/50-user das Logging wie folgt geändert:
Code:
$DO_SYSLOG = 0;
$LOGFILE = "/var/log/mail.log";
und der Logdatei den User amavis zugiesen klappt es, dass Amavis ins Log schreibt.

Auf einem lokalen Testserver klappt alles, auch ohne genannte Änderungen?

Meine Server richte ich alle identisch ein, basis sind die Perfect Server Wheezy sowie Jessie (Apache2 + Dovecot) Anleitungen.
Abwandlungen die für dieses Verhalten verantwortlich sein könnten wären, dass ich zusätzlich Greylisting, Policyd Weight, die CSF Firewall und Ossec installiert und eingerichtet hab.

Daraufhin hab ich CSF sowie LFD mal komplett abgeschaltet mit den ursprünglichen Amavis Configs, ohne Erfolg.
Gleiches mit Ossec.
Dann hab ich auf dem Testserver beide Dienste installiert und eingereichtet mit der Annahme, dass es hier dann auch nicht mehr funktionieren sollte. Aber siehe da, auch hier gehts trotz Firewall und Ossec weiterhin ohne Änderung an der Amavis Config.

Das mal zum einen Thema, warum Amavis nicht ins Log schreibt.
Ursache nach wie vor unklar.

Der 2. Fehler, trotz Amavis Logs sowie size Werten in den Logzeilen erhalte ich keine Mail Traffic Statistiken in ISPConfig.

In der Datei /usr/local/ispconfig/server/lib/classes/cron.d/100-mailbox_stats.inc.php steht ab Zeile 113:
Code:
//Oct 31 17:35:48 mx01 amavis[32014]: (32014-05) Passed CLEAN, [IPv6:xxxxx] [IPv6:xxxxx] <xxx@yyyy> -> <aaaa@bbbb>, Message-ID: <xxxx@yyyyy>, mail_id: xxxxxx, Hits: -1.89, size: 1591, queued_as: xxxxxxx, 946 ms
//Oct 29 08:57:43 loc-s1 amavis[7271]: (07271-04) Passed CLEAN {RelayedOutbound}, <info@fritz.box> -> <info@test.de>, Message-ID: <d19636498f607c50668ca6e06c402c22@fritz.box>, mail_id: 2kKERIAmUQHK, Hits: -0.001, size: 156022, queued_as: B34BC41C8C, 780 ms

if(preg_match('/^(\w+\s+\d+\s+\d+:\d+:\d+)\s+[^ ]+\s+amavis.* <([^>]+)>\s+->\s+((<[^>]+>,)+) .*Message-ID:\s+<([^>]+)>.* size:\s+(\d+),.*$/', $line, $matches) == false) return false;
Die 1. Kommentarzeile war bereits enthalten, ebenso die 3. Regex Zeile.
Die 2. Kommentarzeile hab ich von einem aktuellen Logeintrag angehängt, welche mir Unterschiede zu den erwarteten Werten aus Zeile 1 und somit wohl dem Regex zeigt?

Meine bisherige Erkenntnis, mein 1. Fehler, dass mein Amavis mir nicht ins Log schreibt, muss was spezielles bei meinen Serverconfigs sein.
Sollte der 2. Fehler mit dem Regex aber wirklich mit den aktuellen Amavis Logs nicht zurecht kommen, sollten doch deutlich mehr Leute keine Statistiken mehr haben???

Ich bin ja wirklich gespannt wo die Fehler liegen, die eigentlich nur noch gefunden werden wollen.

LG
 
Zuletzt bearbeitet:
#13
Mit folgender Zeile, sollte zumindest der Regex erfolgreich sein, auch die $matches sollten korrekt gefüllt werden:
Code:
if(preg_match('/^(\w+\s+\d+\s+\d+:\d+:\d+).*amavis.* <([^>]+)>\s+->\s+((<[^>]+>,)+) .*Message-ID:\s+<([^>]+)>.* size:\s+(\d+),.*$/', $line, $matches) == false) return false;
Warum sind die Funktionen parse_mail_log_line & add_mailbox_traffic doppelt vorhanden? Einmal ganz unten ab Zeile 278 und dann nochmal in der if($parse_mail_log == true) { wo ich gerade bin?

Aber es landen keine Werte in der Tabelle? Muss hier schon beim Mailbox anlegen eine Zeile mit rein? Die ganze Tabelle ist nämlich leer?

Grad bissl verwirrt?
 
#14
Hallo.

Habe hier ein ähnliches Problem. Gibt es eine Möglichkeit 100-mailbox_stats.inc.php zu debuggen ?
Ich habe die Funktion add_mailbox_traffic im Verdacht.

Konntet Ihr Euer Problem lösen ?
 
#16
Hi Till,

das habe ich schon probiert. Leider hat 100-mailbox_stats.inc.php keinerlei debug code drinnen und es beendet sich mit "Finished".
Ich bastle gerade eine frische Instanz und schaue, ob es da funktioniert, obwohl ich zugeben mss, dass ich eher skeptisch bin.
 
#17
Ein Fehler ist schon mal gefunden:
unter CentOS und wahrscheinlich auch RedHat/Fedora liegt das Logfile von postfix unter /var/log/maillog und nicht unter /var/log/mail.log.

Hier gibt's dann auch eine schöne Ausgabe, wenn man 100-mailbox_stats.inc.php folgendermassen ändert:

if(file_exists('/var/log/maillog')) {
$fp = fopen('/var/log/maillog', 'r');
echo "Parsing maillog...\n";
$l = 0;
while($line = fgets($fp, 8192)) {
$l++;
//if($l % 1000 == 0) echo "\rline $l";
$cur_line = $this->parse_mail_log_line($line);
print_r($cur_line);

Die Ausgabe sieht dann folgendermassen aus:

[line] => Jan 23 16:18:32 hostname amavis[24688]: (24688-01) Passed CLEAN {RelayedInbound}, [aaa.bbb.ccc.ddd]:20924 [aaa.bbb.ccc.ddd] <from@somedomain.com> -> <to@yourdomain.com>, Queue-ID: D80317C0089, Message-ID: <DDAA2F25-CE21-40C1-A5CA-296BA729289F@somedomain.com>, mail_id: PWpWpIv_JV0l, Hits: -0.811, size: 3109, queued_as: 079767C0098, dkim_sd=04042017:somedomain.com, 1515 ms

[timestamp] => 1516720712
[size] => 3109
[from] => from@somedomain.com
[to] => Array
(
[0] => to@yourdomain.com
)

[message-id] => DDAA2F25-CE21-40C1-A5CA-296BA729289F@somedomain.com

Das Parsen funktioniert also.

Allerdings ist das folgende:
$this->add_mailbox_traffic($cur_line['from'], $cur_line['size'],$mail_boxes, $mail_rewrites);
echo "1\n";
print_r($this->mailbox_traffic);

Array ist leer.
1
Array
(
)

Ich bin jetzt mit meinem Latein so ziemlich am Ende und für jede Hilfe dankbar.
 
#18
Ich halte die ganze class für eine mittlere Katastrophe. Wer Zeit hat, kann die ja mal von Grund auf neu schreiben. Damit gibt es immer mal wieder Probleme, dass die Statistiken nicht geschrieben werden. Nachvollziehbar ist mit der momentanen Version aber nciht wirklich.
 
#19
Also ich bin leider kein php-Programmierer. Aber das Fehlverhalten dieser Funktion stört mich ziemlich. Es funktioniert auf KEINEM meiner neu installierten Testsysteme.
Kann sich jemand vom ispconfig.-Team der Sache annehmen ? Ich denke, dass ich hier kein Einzelfall sein kann und wenn man accounting machen will wäre die Funktion schon recht hilfreich.
 
#20
Habe nun mal weiter debugged. Der Fehler liegt wohl in der Übergabe der Parameter an die Funktion $this->add_mailbox_traffic.Die Arrays $mail_boxes und $mail_rewrites sind bei der Verarbeitung der Funktion nämlich leer. Somit findet kein Aufsummieren statt, da in der Funktion "private function add_mailbox_traffic($address, $traffic)" nämlich die Arrays $this->mailboxes sowie $this-mail_rewrites ausgewertet werden sollen, die keine Werte haben. $mailbox_traffic wird innerhalb der Funktion auch zu $this->$mailbox_traffic, das einerseits wieder an den cronjob zurückgegeben werden muss.

Wie schon gesagt: ich bin kein PHP-Programmierer und würde gerne meine fixes, die z. Zt. zu funktionieren scheinen gerne dem Projekt in guter alter Open-Source-Tradition zur Prüfung zur Verfügung stellen. Wohin muss ich mich da wenden ?
 

Werbung