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
Nächste ÜberarbeitungBeide Seiten der Revision
centos:mail_c7:dovecot_1 [12.08.2014 15:26. ] – [Dovecot, "der" IMAP-Server unter CentOS 7.x] erweitertes Logging #CentOS7 #Dovecot #IMAP djangocentos:mail_c7:dovecot_1 [20.04.2018 10:45. ] – Externe Bearbeitung 127.0.0.1
Zeile 601: Zeile 601:
 </WRAP> </WRAP>
   - **[[http://wiki2.dovecot.org/MailboxFormat/dbox|mdbox]]** \\ :NULL::NULL::UP: Properitäres **//"High-End Speicherformat"//** für sehr große Installationen. \\ :NULL::NULL::UP: Viele Nachrichten werden in mehrere größere Dateien geschrieben, daher sind inkrementelle Backups \\ :NULL::NULL::NULL: weiterhin ohne großen Aufwand möglich. \\ :NULL::NULL::DOWN: Ähnlich wie schon beim Cyrus-IMAP-Server wird eine eigene Datenbank zur Informationsspeicherung der \\ :NULL::NULL::NULL: eMails benötigt. Daher können nicht mehr nur auf Dateiebene Nachrichten verarbeitet werden. Änderungen \\ :NULL::NULL::NULL: im mdbox-Speicherbereich müssen ausschließlich über entsprechende **doveadm**-Befehle vorgenommen \\ :NULL::NULL::NULL: werden! Ebenso muss bei Backups/Restores der Nachrichten muß die Datenbank mit ihren Abhängigkeiten \\ :NULL::NULL::NULL: berücksichtigt werden. Entsprechendes //**Knowhow**// auf Seiten des Postmasters und Administrators ist \\ :NULL::NULL::NULL: zwingend gegeben! \\ \\ <WRAP center round info 80%>   - **[[http://wiki2.dovecot.org/MailboxFormat/dbox|mdbox]]** \\ :NULL::NULL::UP: Properitäres **//"High-End Speicherformat"//** für sehr große Installationen. \\ :NULL::NULL::UP: Viele Nachrichten werden in mehrere größere Dateien geschrieben, daher sind inkrementelle Backups \\ :NULL::NULL::NULL: weiterhin ohne großen Aufwand möglich. \\ :NULL::NULL::DOWN: Ähnlich wie schon beim Cyrus-IMAP-Server wird eine eigene Datenbank zur Informationsspeicherung der \\ :NULL::NULL::NULL: eMails benötigt. Daher können nicht mehr nur auf Dateiebene Nachrichten verarbeitet werden. Änderungen \\ :NULL::NULL::NULL: im mdbox-Speicherbereich müssen ausschließlich über entsprechende **doveadm**-Befehle vorgenommen \\ :NULL::NULL::NULL: werden! Ebenso muss bei Backups/Restores der Nachrichten muß die Datenbank mit ihren Abhängigkeiten \\ :NULL::NULL::NULL: berücksichtigt werden. Entsprechendes //**Knowhow**// auf Seiten des Postmasters und Administrators ist \\ :NULL::NULL::NULL: zwingend gegeben! \\ \\ <WRAP center round info 80%>
-**Performantes //"High-End Speicherformat"//** für sehr große Installationen. Hinreichende Kenntnisse übder das **mbox**-Format und die **doveadm**-Kommandos sind Grundvoraussetzung für den Einsatz. Für den Einsteiger und bei überschaubaren Menge an eMails und Postfächern, eher nicht zu empfehlen!+**Performantes //"High-End Speicherformat"//** für sehr große Installationen. Hinreichende Kenntnisse über das **mbox**-Format und die **doveadm**-Kommandos sind Grundvoraussetzung für den Einsatz. Für den Einsteiger und bei überschaubaren Menge an eMails und Postfächern, eher nicht zu empfehlen!
 </WRAP> </WRAP>
  
Zeile 696: Zeile 696:
  
 Fehlt das entsprechende Verzeichnis, ist auch dies kein allzugroßer Act, legen wir bei Bedarf dieses Verzeichnis einfach schnell an. Wir orientieren uns dabei an den **[[http://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard#.2Fsrv_.E2.80.93_Daten.2C_die_von_Diensten_angeboten_werden|FHS]]**((**F**ilesystem **H**ierarchy **S**tandard)), der für den Daten, die von Diensten angeboten werden, das Verzeichnis //**/srv**// vorsieht. Fehlt das entsprechende Verzeichnis, ist auch dies kein allzugroßer Act, legen wir bei Bedarf dieses Verzeichnis einfach schnell an. Wir orientieren uns dabei an den **[[http://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard#.2Fsrv_.E2.80.93_Daten.2C_die_von_Diensten_angeboten_werden|FHS]]**((**F**ilesystem **H**ierarchy **S**tandard)), der für den Daten, die von Diensten angeboten werden, das Verzeichnis //**/srv**// vorsieht.
-   # mkdir --/srv/vmail+   # mkdir -m 770 -/srv/vmail
  
 Für die Berechtigungen wählen wir nun als //**User**// und als //**Gruppe**// jeweils **vmail**. Somit haben wir später keinen Streß wenn dovecot versucht ein Benutzerverzeichnis neu anzulegen! Für die Berechtigungen wählen wir nun als //**User**// und als //**Gruppe**// jeweils **vmail**. Somit haben wir später keinen Streß wenn dovecot versucht ein Benutzerverzeichnis neu anzulegen!
    # chown vmail.vmail /srv/vmail    # chown vmail.vmail /srv/vmail
-   # chmod 770 /srv/vmail 
  
 <WRAP center round important> <WRAP center round important>
Zeile 832: Zeile 831:
  
 Auf Grund der Erfahrungen und der Rückfragen meiner Endkunden, werden fast nur noch ausschließlich die Ordner Unterhalb des **namespaces**. Im Fall vom namespace **INBOX** setzen wir dann den **prefix** auf den Wert **INBOX/**. Auf Grund der Erfahrungen und der Rückfragen meiner Endkunden, werden fast nur noch ausschließlich die Ordner Unterhalb des **namespaces**. Im Fall vom namespace **INBOX** setzen wir dann den **prefix** auf den Wert **INBOX/**.
-   #vim /etc/dovecot/conf.d/10-mail.conf+   # vim /etc/dovecot/conf.d/10-mail.conf
  
 <code bash>... <code bash>...
Zeile 1514: Zeile 1513:
 # Folgende Parameter wurden aktiviert: # Folgende Parameter wurden aktiviert:
 # %u         : User/Login-Namen  # %u         : User/Login-Namen 
-# %m         : Authentication-Pethode+# %m         : Authentication-Methode
 # %r         : Remote IP Adress # %r         : Remote IP Adress
 # %e         : Mail-Process-ID (imap/pop3) der post-login Verbindung # %e         : Mail-Process-ID (imap/pop3) der post-login Verbindung
Zeile 1711: Zeile 1710:
 </code> </code>
  
-==== erweiterte Konfiguration  ====+===== erweiterte Konfiguration(en) ===== 
 +==== nötige Erweiterungen ==== 
 +Für folgende Themen wurden separate WIKI-Seiten erstellt:
   * [[centos:mail_c7:dovecot_6|Dovecot, Authentifizierung(en)]]   * [[centos:mail_c7:dovecot_6|Dovecot, Authentifizierung(en)]]
   * [[centos:mail_c7:dovecot_2|Dovecot, Anbindung an einen Frontend-Mailserver (Postfix-SMTP-Server)]]   * [[centos:mail_c7:dovecot_2|Dovecot, Anbindung an einen Frontend-Mailserver (Postfix-SMTP-Server)]]
Zeile 1718: Zeile 1719:
   * [[centos:mail_c7:dovecot_8|Dovecot, Quotas - Speicherquoten für User]]   * [[centos:mail_c7:dovecot_8|Dovecot, Quotas - Speicherquoten für User]]
   * [[centos:mail_c7:dovecot_7|Dovecot, Shared Folder und Shared Namespace]]   * [[centos:mail_c7:dovecot_7|Dovecot, Shared Folder und Shared Namespace]]
 +
 +==== Lucene Full Text Search Indexing ====
 +Zum Aktivieren der //**[[http://sourceforge.net/projects/clucene/|Lucene]] Full Text Search Indexing**// nutzen wir die Mailplugins **fta** und **fts_lucene**. In der Konfigurationsdatei //**/etc/dovecot/conf.d/10-mail.conf**// tragen wir die nachfolgenden Zeilen nach.
 +   # vim /etc/dovecot/conf.d/10-mail.conf
 +
 +<code bash>...
 +
 +# Space separated list of plugins to load for all services. Plugins specific to
 +# IMAP, LDA, etc. are added to this list in their own .conf files.
 +# Django : 2014-08-05
 +# default: #mail_plugins =
 +#mail_plugins = zlib
 +# Django : 2014-08-06 - Quotaregelung aktiviert
 +# last   : mail_plugins = zlib
 +# mail_plugins = zlib quota
 +# Django : 2014-08-08 - ACL-Plugin für Shared Folders
 +# mail_plugins = zlib quota acl
 +# Django : 2014-08-10 - Loggen der IMAP-Kommandos im Maillog des Servers
 +#mail_plugins = zlib quota acl notify mail_log 
 +# Django : 2014-08-12 - gesperrte Sonderzeichen im Verzeichnisnamen erlauben
 +#mail_plugins = zlib quota acl notify mail_log listescape
 +# Django : 2014-08-14 - Full text search indexing FTS
 +mail_plugins = zlib quota acl notify mail_log listescape fts fts_lucene
 +
 +# Django : 2014-08-12
 +# Mailplugin FS und fts_lucene aktiviert
 +plugin {
 +  fts=lucene
 +  # Lucene-specific settings, good ones are:
 +  fts_lucene = whitespace_chars=@.
 +  # Index new messages immediately after they've been saved/copied. (v2.2.9+)
 +  fts_autoindex = yes
 +  # Skip autoindexing the mailbox if it has more than n \Recent messages (implying 
 +  # that the mailbox is never actually being accessed). (v2.2.9+)
 +  # fts_autoindex_max_recent_msgs = n
 +  # When SEARCH notices that index isn't up to date, it tells indexer to index the 
 +  # mails and waits until it is finished. This setting adds a maximum timeout to 
 +  # this wait. If the timeout is reached, the SEARCH fails with: NO [INUSE] Timeout 
 +  # while waiting for indexing to finish (v2.1+)
 +  # fts_index_timeout = n
 +}
 +
 +...
 +</code>
 +
 +Zum Aktivieren unserer Programmänderung führen wir einen **Reload** des Dovecot-Daemon durch.
 +
 +Der Index wird übrigens automatisch bei jedem Suchvorgang **__auf dem Server__** aktualisiert.
 +
 +Mit der Option **fts_autoindex = yes** werden die Nachrichten automatisch indiziert, wenn diese per **LMTP** eingeliefert werden.
 +
 +Möchte man den Index für einen Benutzer neu anlegen benutzt man folgenden Aufruf:
 +   # doveadm index -u django@nausch.org -q 'INBOX'
 +Mit der Option **-D** kann man sich **Debugmeldungen** mit ausgeben lassen.
 +   # doveadm -D index -u django@nausch.org -q 'INBOX'
 +<code>doveadm(root): Debug: Loading modules from directory: /usr/lib64/dovecot
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib01_acl_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib10_quota_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib15_notify_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib20_fts_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib20_listescape_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib20_mail_log_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib20_zlib_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib21_fts_lucene_plugin.so
 +doveadm(root): Debug: Loading modules from directory: /usr/lib64/dovecot/doveadm
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib10_doveadm_acl_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib10_doveadm_quota_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib10_doveadm_sieve_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib20_doveadm_fts_lucene_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib20_doveadm_fts_plugin.so
 +doveadm(django@nausch.org): Debug: auth input: django@nausch.org home=/srv/vmail/nausch.org/django/ uid=10000 gid=10000 quota_rule=*:bytes=10240000000
 +doveadm(django@nausch.org): Debug: Added userdb setting: plugin/quota_rule=*:bytes=10240000000
 +doveadm(django@nausch.org): Debug: Effective uid=10000, gid=10000, home=/srv/vmail/nausch.org/django/
 +doveadm(django@nausch.org): Debug: Quota root: name=User quota backend=maildir args=ignoreunlimited:noenforcing
 +doveadm(django@nausch.org): Debug: Quota rule: root=User quota mailbox=* bytes=10240000000 messages=0
 +doveadm(django@nausch.org): Debug: Quota rule: root=User quota mailbox=INBOX bytes=0 messages=+10240
 +doveadm(django@nausch.org): Debug: Quota rule: root=User quota mailbox=INBOX/Trash bytes=+131072000 messages=0
 +doveadm(django@nausch.org): Debug: Quota rule: root=User quota mailbox=INBOX/Sent ignored
 +doveadm(django@nausch.org): Debug: Quota rule: root=User quota mailbox=INBOX/Archiv bytes=+2560000000 (25%) messages=0
 +doveadm(django@nausch.org): Debug: Quota warning: bytes=10240000000 (100%) messages=0 reverse=no command=quota-warning 100 django@nausch.org
 +doveadm(django@nausch.org): Debug: Quota warning: bytes=9728000000 (95%) messages=0 reverse=no command=quota-warning 95 django@nausch.org
 +doveadm(django@nausch.org): Debug: Quota warning: bytes=8192000000 (80%) messages=0 reverse=no command=quota-warning 80 django@nausch.org
 +doveadm(django@nausch.org): Debug: Quota grace: root=User quota bytes=1024000000 (10%)
 +doveadm(django@nausch.org): Debug: Namespace inbox: type=private, prefix=INBOX/, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/srv/vmail/nausch.org/django/Maildir
 +doveadm(django@nausch.org): Debug: maildir++: root=/srv/vmail/nausch.org/django/Maildir, index=, indexpvt=, control=, inbox=/srv/vmail/nausch.org/django/Maildir, alt=
 +doveadm(django@nausch.org): Debug: acl: initializing backend with data: vfile
 +doveadm(django@nausch.org): Debug: acl: acl username = django@nausch.org
 +doveadm(django@nausch.org): Debug: acl: owner = 1
 +doveadm(django@nausch.org): Debug: acl vfile: Global ACLs disabled
 +doveadm(django@nausch.org): Debug: Namespace : type=shared, prefix=shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=yes location=maildir:%h/Maildir:INDEX=/srv/vmail/nausch.org/django//shared/%u:CONTROL=/srv/vmail/nausch.org/django//shared/%u
 +doveadm(django@nausch.org): Debug: shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt=
 +doveadm(django@nausch.org): Debug: fts: Indexes disabled for namespace 'shared/%u/'
 +doveadm(django@nausch.org): Debug: acl: initializing backend with data: vfile
 +doveadm(django@nausch.org): Debug: acl: acl username = django@nausch.org
 +doveadm(django@nausch.org): Debug: acl: owner = 0
 +doveadm(django@nausch.org): Debug: acl vfile: Global ACLs disabled
 +doveadm(django@nausch.org): Debug: Namespace : type=private, prefix=, sep=, inbox=no, hidden=yes, list=no, subscriptions=no location=fail::LAYOUT=none
 +doveadm(django@nausch.org): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt=
 +doveadm(django@nausch.org): Debug: fts: Indexes disabled for namespace ''
 +</code>
 +
 +Den Index aller Benutzer würde man mit folgendem Aufruf anstoßen:
 +   # doveadm index -A -q 'INBOX'
 +
 +Mit dem nun vorhandenen Suchindex'n **lucene-indexes** in den Mail-Verzeichen der Nutzer, können nunmehr Volltextsuchen __**auf dem Server**__ wesentlich effizienter und schneller ausgeführt werden.
 ===== Systemstart ===== ===== Systemstart =====
 ==== erster manueller Start ==== ==== erster manueller Start ====
Zeile 1810: Zeile 1916:
 </code> </code>
  
-Im Verzeichnis //**/srv/vmail/**// wurden die zugehörigen Verzeichnisse und die Nachricht selbst, alos die Datei **__1407165099.M887118P3930.vml000070.dmz.nausch.org,S=409,W=422__** angelegt.+Im Verzeichnis //**/srv/vmail/**// wurden die zugehörigen Verzeichnisse und die Nachricht selbst, also die Datei **__1407165099.M887118P3930.vml000070.dmz.nausch.org,S=409,W=422__** angelegt.
 <code># tree /srv/vmail/nausch.org/django/ -alF <code># tree /srv/vmail/nausch.org/django/ -alF
 /srv/vmail/nausch.org/django/ /srv/vmail/nausch.org/django/
Zeile 1825: Zeile 1931:
 </code> </code>
  
-Wir können uns nun auch die Datei/eMAil natürlich auch direkt auf der Konsole ansehen.+Wir können uns nun auch die Datei/eMail natürlich auch direkt auf der Konsole ansehen.
    # cat /srv/vmail/nausch.org/django/Maildir/new/1407165099.M887118P3930.vml000070.dmz.nausch.org\,S\=409\,W\=422     # cat /srv/vmail/nausch.org/django/Maildir/new/1407165099.M887118P3930.vml000070.dmz.nausch.org\,S\=409\,W\=422 
 <code>Return-Path: <michael@nausch.org> <code>Return-Path: <michael@nausch.org>
Zeile 2113: Zeile 2219:
   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  
-~~DISCUSSION~~ +
-~~AUTOTWEET:~~+
  • centos/mail_c7/dovecot_1.txt
  • Zuletzt geändert: 15.10.2020 16:42.
  • von django