# Email Konten Speicherplatzberechnung



## shadowcast (18. Juni 2015)

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 (18. Juni 2015)

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.


----------



## shadowcast (18. Juni 2015)

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 (18. Juni 2015)

Hast Du evtl. im Maildir ein quota-File .quotausage?


----------



## shadowcast (18. Juni 2015)

Ja so eine Datei ist in jedem Konto vorhanden???


----------



## florian030 (18. Juni 2015)

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


----------



## shadowcast (19. Juni 2015)

Hi,

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

```
storage = 0
messages = 0
```
LG


----------



## Till (19. Juni 2015)

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.


----------



## shadowcast (19. Juni 2015)

Wann werden denn die Daten aktualisiert? Bestimmte Zeit oder ab einer gewissen Größe?


----------



## Till (19. Juni 2015)

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 (20. Juni 2015)

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 (20. Juni 2015)

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 
	
	



```
SELECT * FROM `monitor_data` WHERE `type`="email_quota" ORDER BY `monitor_data`.`server_id` ASC
```


----------



## shadowcast (9. Juli 2015)

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


----------



## florian030 (9. Juli 2015)

Zitat von shadowcast:


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


Und was passt da jetzt nicht? Das ist kein realtime-Monitoring.


----------



## shadowcast (10. Juli 2015)

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 (10. Juli 2015)

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.


----------



## shadowcast (10. Juli 2015)

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 (10. Juli 2015)

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):

```
/*
                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);
//              }
```


----------



## shadowcast (12. Juli 2015)

Morgen,
es ist eine Single-Server Konfiguration mit Dovecot.
LG


----------



## florian030 (12. Juli 2015)

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.


----------



## shadowcast (6. Aug. 2016)

Hallo,

ich befass mich heute endlich mal wieder mit dem Thema, nachdem erneut Postfächer voll sind, die es aber nicht sind.
Ausschließlich Roundcube aktualisiert mir den belegten Speicher.

In einem Postfach welches mit POP3 abgerufen wird enthält die .quotausage eine Belegung von 780MB
Der obige Befehle "du -h --max-depth=1 Domain" liefert gerade mal 5,6MB
Nachdem ich mich mit Roundcube eingeloggt hab, zeigt auch die .quotausage den korrekten Wert an.

Wie Till geschrieben hab ich die genannte Abfrage manipuliert, jedoch hab ich nur die vorherige Variable $filename auskommentiert, was zu gleichem Ergebnis führen sollte, dass ELSE ausgeführt wird.
Nun ca. 10 Minuten später zeigt auch ISPConfig hier die korrekten Werte an, ich sehe auch, ups. sehr viele Konten sind plötzliche orange oder rot und somit überlaufen.
Sollten nun nicht an die Postfächer Hinweise geschickt werden?
Ich kann nach wie vor mit einem Tief roten Postfach senden wie empfangen.

LG


----------



## shadowcast (11. Aug. 2016)

Hallo,

heute neue Erkenntnisse aber nach wie vor kein Ansatz einer Lösung.

du -h --max-depth=1 /var/vmail/MEINEDOMAIN.DE 
sehe ich bei meinem Postfach 1,3G belegt.
Durch die obige Änderung von Till wird mir in der ISPConfig Liste auch 1,242G angezeigt was passt.

Roundcube zeigt mir plötlich a, dass das Postfach zu 77% belegt ist, obwohl das Postfach auf 1G steht und im ISPConfig auf 124% rot.
Ich bekomm auch wie eingstellt Nachrichten vom Server, kann das Postfach aber unverändert nutzen.

Obiger Befehl auf die .quotausage des Postfaches:
du -h --max-depth=1 /var/vmail/MEINEDOMAIN.DE/MEINKONTO7.quotausage
zeigt nur noch 4k???

Ein mcedit /var/vmail/MEINEDOMAIN.DE/MEINKONTO7.quotausage
liefert folgenden Inhalt:
priv/quota/storage
806514108
priv/quota/messages
4734

Ich kapiers ned..  :-(
LG


----------



## shadowcast (15. Aug. 2016)

https://www.howtoforge.com/communit...a-failed-to-iterate-through-some-users.65493/

Hier stand meine Lösung. Ich hatte den gleichen Fehler, weshalb wohl die Berechnungen nicht korrekt durchgeführt wurden, aber Roundcube machte dies, natürlich nur, wenn ich angemeldet war und dann auch nur für das jeweilige Postfach.

Meine letzte Frage, berechnet Dovecot die Quotas nun in welcher Zeit X automatisch oder benötigt es hierzu einen Cronjob wie im genannten Thread?
Einen solchen Cronjob kann ich zumindest in cron.d nicht finden, weiß aber auch nicht ob das nicht Dovecot schon selbst von irgendwo handelt?
Oder ISPConfig???


----------



## Till (15. Aug. 2016)

Normalerweise macht Dovecot das selbst bei Zugriffen auf das Postfach, ich musste bei mir da noch nie was manuell anstoßen. Probleme kann es meines Erachtens nur geben, wenn man manuell auf der Shell Email Dateien löschen oder einfügen würde.


----------



## shadowcast (15. Aug. 2016)

Stimmt. Dann ist dieses Thema endlich erledigt.
Dankeschön.


----------



## shadowcast (31. Aug. 2016)

Hallo,
musste heute feststellen, dass das Thema doch noch nicht erledigt ist.

```
doveadm quota recalc -A
```
Berechnet mir alles, wenig später zeigt ISPConfig alles korrekt an.
Aber die letzten Tage geschah nichts. Jegliche Zugriffe auf die Mail-Konten hatten keinerlei neue Berechnungen angestoßen.
Ich hab langsam keinen Durchblick mehr. :-(
LG


----------



## shadowcast (31. Aug. 2016)

Werd den Befehl mal als Cronjob anlegen, aber DIE Lösung wird das sicherlich nicht sein.


----------

