Email Konten Speicherplatzberechnung

Morgen,

ich habe die meisten meiner Mail Konten auf 1GB beschränkt.
Ich habe ein paar Konten, welche im 10 Minuten Takt von einem Exchange Server abgeholt werden. Die Nachrichten werden dann gleich vom Webserver gelöscht. Sehe ich über Roundcube ins Postfach, klappt das einwandfrei.

Allerdings stimmen im ISPConfig die Werte für den "verbrauchten Speicherplatz" nicht. Irgendwie bekommt der wohl von den Löschaktionen nichts mit, sodass die Postfächer wachsen und wachsen bis die Überschreitungsmails kommen.

Gestern das Szenario, dass ein Konto bereits überschritten war. (~1.050MB) Ein Login über Roundcube zeigte sämtliche Ordner ohne Inhalt an. Speicherverbrauch im Roundcube 0%. Auch keine weiteren Ordner vorhanden.
Im ISPConfig war dann auch plötzlich der Speicherverbrauch bei 0?

Wie und wann werden die Statistiken berechnet?
Kann das so jemand reproduzieren?
Mögliche Lösungen?

LG
 

Till

Administrator
Bist Du sicher, dass die Emails nicht da sind? Outlook markiert Emails als gelöscht, entfernt sie aber nicht. Vielleicht macht exchange das auch so. wenn roundcube sich an das löschen flag hält, zeigt er sie nicht an, das heißt aber nicht dass sie nicht mehr vorhanden sind und auch keinen speicher belegen. Schau bitte mal auf der shell nach, z.B. so:

du -h --max-depth=1 /var/vmail/domain.tld

das sollte Dir die Speichernutzung für alle Postfächer von domain.tld ausgeben.
 
Hi,

die Ausgabe deines Befehls weicht gut von dem angezeigten Speicherplatz im ISPConfig ab.
Konto | Speicherplatz ISPConfig | Speicherplatz Konsole
1 | 3,5566KB | 232KB
2 | 2,2238MB | 216KB
3 | 40,8447KB | 196KB
4 | 1,8627MB | 252KB
Für mich stimmen die Konsolenwerte. Auch wird mir das bestätigt wenn ich in Roundcube sehe.

Die Einstellung welche du in Roundcube meinst ist vermutlich unter Einstellungen -> Server-Einstellungen der Punkt "Zeige keine gelöschten Nachrichten an" Dieser ist standard deaktiviert. So oder so. Die Postfächer werden sauber vom Exchange alle 10 Minuten geleert.

LG
 

florian030

Well-Known Member
Es kann sein, dass das der Grund für die falsche quota-Angabe ist. Ist die Datei vorhanden, wird diese nämlich verwendet.
 
Hi,

also aktuell zeigt mir ISPConfig ein Konto mit knapp 10MB an.
Webmailer ist leer.
Konsole zeigt 224KB.
Die .quotausage:
Code:
storage = 0
messages = 0

LG
 

Till

Administrator
ISPConfig zeigt die Daten nicht realtime an sondern aktualisiert nur von Zeit zu Zeit, d.h. es waren 10 MB in der Mailbox zu dem Zeitpunkt zu dem ISPConfig den Speicherplatzverbrauch gemessen hat und jetzt ist das Postfach halt wieder leer.
 

Till

Administrator
Nach Zeit, größe würde ja ekinen Sinn machen denn die weiß man ja erst nachdem man sie bestimmt hat. Wann genau kann ich aus dem Kopf nicht sagen, könntest Du im monitor core module code nachsehen.
 

Kaimane

Member
Emailquota wird laut monitor_core_module.inc.php "nur" alle 15 Minuten neu berechnet, da die Erhebung der Daten recht rechenintensiv ist / sein kann. Daher können die Angaben in der Übersicht vom momentanen Ist-Wert einer E-Mail-Kontos um max. 15 Minuten abweichen.
 

florian030

Well-Known Member
Hast Du evtl. in der Tabelle monitor_data mehrere Einträge für den Type mail_data für den gleichen Server? Via phpmyadmin z.B. mit
Code:
SELECT * FROM `monitor_data` WHERE `type`="email_quota" ORDER BY `monitor_data`.`server_id` ASC
 
Hallo,

nein mit dem Befehl erhalte ich nur 1 Ergebnis, betrifft aber ein anderes Konto.

Soeben habe ich die Sache nochmal angesehen. Wie erwähnt, der Exchange läuft korrekt und holt die Daten zuverlässig alle 10 Minuten ab und löscht sie auch.
Nun sehe ich mir die Konten gerade an. Alle sind kurz vor dem 3 stelligen Megabyte Bereich.
Kann ned sein! Der Blick in Roundcube bestätigt, alles leer. (Hab jetzt nur bei einem Konto ins Roundcube gesehen!)

Ein Blick in die E-Mail Konto Speichernutzung im ISPConfig, unveränderter Wert. Einige Minuten späten war dann exakt dieses Konto bei 0.

Für mich passt da was an der Berechnung nicht.

LG
 
Das Problem wie schon geschildert ist, dass die Konten alle 10 Minuten vom Exchange geleert werden.
Dies bekommt der Zähler aber aus irgendeinem Grund nicht mit, sodass er ständig weiter hoch zählt, bis das Kontenlimit erreicht ist.
Sehe ich auf der Konsole, sowie im Roundcube arbeitet der Exchange korrekt. Aber erst nach Login im Roundcube wird, warum auch immer, eine Funktion angestoßen, welche auch wieder die Statistiken im ISPConfig korrigiert.

Mir ist klar, dass hier kein Echtzeit-Monitoring stattfindet. Aber ein Konto welches in der Realität leer ist, sollte doch nicht als voll angezeigt werden.

Über Fernwartung könnte ich einem Entwickler Einsicht gewähren. In meinen Augen handelt es sich um einen Fehler, der schlichtweg bei der Entwicklung nicht mit eingerechnet bzw. eingedacht wurde.

Aktueller Stand:
Konto ISPConfig Konsole
1 600K 236K
2 220K 264K
3 7M 180K
4 6M 208K
5 70M 196K
Das Konto 2 wurde gestern mit Roundcube geöffnet!

LG
 

florian030

Well-Known Member
Ich würde mal behaupten, dass ggf. der Exchange einfach falsch konfiguriert ist. Man kann z.B. per IMAP Mails tatsächloch löschen oder schlicht als deleted flaggen. Ich habe keine Ahnung welche Version Du benutzt, aber man könnte auch im Monitoring-Plugin ein "du" als default setzen und damit .quotausage umgehen. Das produziert mitunter aber gut Last, gibt dafür aber den tatsächlichen Platz aus.

Ich habe das Problem weder auf meinen Server noch auf Kundenservern. Aber wenn sich das jemand angesehen hat, kann dieser Jemand sicherlich mehr dazu sagen.
 
Naja definitiv passt irgendwo irgendetwas ned. ;-)
Für mein Verständnis? Sollte der Exchange die Mail nur als deleted markieren, sprich keinen expunge durchführen, müsste doch die Mail definitiv im Postfach sein. Dies sollte dann auch die Konsolenausgabe anzeigen? Wie in meinem letzten Post zeigt die Konsole aber dass alles passt und leer ist.

*verwirrt*
 

florian030

Well-Known Member
Ist das eigentlich Single-Server oder Multi-Server? Courier oder Dovecot?

Du kannst ja testweise den Loglevel auf Debug setzen (dann solltest Du Einträge ala "Mail storage $email:" im Log finden) oder in /usr/local/ispconfig/server/lib/classes/monitor_tools.inc.php ein paar Zeilen so abändern (ab Zeile 270):
Code:
/*
                if(file_exists($filename) && !is_link($filename)) {
                    $quotafile = file($filename);
                    preg_match('/storage.*?([0-9]+)/s', implode('',$quotafile), $storage_value);
                    $data[$email]['used'] = $storage_value[1];
                    $app->log("Mail storage $email: " . $storage_value[1], LOGLEVEL_DEBUG);
                    unset($quotafile);
                } else {
*/
                    exec('du -s '.escapeshellcmd($mb['maildir']), $out);
                    $parts = explode(' ', $out[0]);
                    $data[$email]['used'] = intval($parts[0])*1024;
                    unset($out);
                    unset($parts);
//              }
 

florian030

Well-Known Member
Ok. Solange Du nicht den Source aus #18 anpast, werden die quotas nicht von ISPConfig, sondern von Dovecot berechnet.
Hast Du bei mail_plugins in /etc/dovecot/dovecot.conf auch quota eingetragen?
doveadm quota get -A zeigt Dir die aktuellen quotas von Dovecot und doveadm quota recalc -A berechnet sie neu.
 

Werbung

Top