Replicationsproblem Sieve Scripte
wenger at unifox.at
wenger at unifox.at
Mi Sep 19 16:27:35 CEST 2018
Hallo Dovecot-Users!
Ich habe bei mir einen Dovecot Active-Active Mailcluster installiert.
Ich habe mich dabei an das Dovecot-Buch von Peer Heinlein gehalten.
Die Replication der E-Mails funktioniert super, aber die SIEVE-Scripts
werden nicht repliziert:
Genauer gesagt werden die symlinks .dovecot.sieve ->
sieve/roundcube.sieve im UserHomeDir angelegt oder synchronisiert und
das Verzeichnis sieve auch angelegt, aber deren Inhalt bleibt
unverändert...
root at dovecot2:/srv/vmail/domain.at/user# ls sieve/
roundcube.sieve tmp
root at dovecot1:/srv/vmail/domain.at/user# ls sieve/
tmp
mit mail_debug = yes sehe ich folgende Zeilen im Log
Sep 19 16:00:46 dovecot2 dovecot:
managesieve(user at domain.at)<28623><k1pE1Tl2RpkKFAEE>: Debug: sieve:
Pigeonhole version 0.5.2 (5d6d7c92) initializing
Sep 19 16:00:46 dovecot2 dovecot:
managesieve(user at domain.at)<28623><k1pE1Tl2RpkKFAEE>: Debug: sieve:
include: sieve_global is not set; it is currently not possible to
include `:global' scripts.
Sep 19 16:00:46 dovecot2 dovecot:
managesieve(user at domain.at)<28623><k1pE1Tl2RpkKFAEE>: Debug: sieve: file
storage: Using active Sieve script path:
/srv/vmail/domain.at/user/.dovecot.sieve
Sep 19 16:00:46 dovecot2 dovecot:
managesieve(user at domain.at)<28623><k1pE1Tl2RpkKFAEE>: Debug: sieve: file
storage: Using script storage path: /srv/vmail/domain.at/user/sieve
Sep 19 16:00:46 dovecot2 dovecot:
managesieve(user at domain.at)<28623><k1pE1Tl2RpkKFAEE>: Debug: sieve: file
storage: Using permissions from /srv/vmail/domain.at/user/sieve:
mode=0700 gid=-1
Sep 19 16:00:46 dovecot2 dovecot:
managesieve(user at domain.at)<28623><k1pE1Tl2RpkKFAEE>: Debug: sieve: file
storage: Relative path to sieve storage in active link: sieve/
Sep 19 16:00:46 dovecot2 dovecot:
managesieve(user at domain.at)<28623><k1pE1Tl2RpkKFAEE>: Debug: sieve: file
storage: sync: Synchronization active
Sep 19 16:00:46 dovecot2 dovecot:
managesieve(user at domain.at)<28623><k1pE1Tl2RpkKFAEE>: Debug: sieve: file
script: Opened script `roundcube' from
`/srv/vmail/domain.at/user/sieve/roundcube.sieve'
Sep 19 16:00:46 dovecot2 dovecot:
managesieve(user at domain.at)<28623><k1pE1Tl2RpkKFAEE>: Debug: sieve: file
storage: Using Sieve script path:
/srv/vmail/domain.at/user/sieve/tmp/roundcube_1537365646.M862270P28623.dovecot2.sieve
Sep 19 16:00:46 dovecot2 dovecot:
managesieve(user at domain.at)<28623><k1pE1Tl2RpkKFAEE>: Debug: sieve: file
script: Opened script `roundcube' from
`/srv/vmail/domain.at/user/sieve/tmp/roundcube_1537365646.M862270P28623.dovecot2.sieve'
Sep 19 16:00:46 dovecot2 dovecot:
managesieve(user at domain.at)<28623><k1pE1Tl2RpkKFAEE>: Debug:
replication: Replication requested by
'sieve_storage_sync_transaction_begin', priority=1
Ich kann aber nichts von einem Replications-Problem erkennen...
Ich habe schon gelesen, dass andere Anwender auch Probleme mit der
Replication der Sieve-Scripte hatten/haben.
Hat jemand dafür eine idee, wie die Sieve - Scripte sauber repliziert
werden können?
Gibt es dafür eigene replication_dsync_parameters?
Oder ist es am besten, wenn ich mir die Sieve-Scripte via RSYNC
herumschubse? (das würde ich eigentlich gerne vermeiden)
Vielleicht hat jemand Ideen, wie man das lösen könnte, oder kann seine
Erfahrungen mir mitteilen.
Leider verstehe ich nicht so viel vom Programmieren, daher kann ich
nicht wirklich Patches einreichen;
Aber testen könnte ich solche schon.
Noch ein paar Infos zu meinem Setup.
2 Dovecot Mailbox-Server (active-active replicator)
Authentifizierung via LDAP - Bind, aber Userdb via MySQL (dann muss ich
das AD-LDAP-Schema nicht um ggf. Quota - Felder erweitern)
Davor sitzt ein Dovecotdirector der die Verbindungen an die 2
Mailbox-Server weiterleitet.
Hier noch meine Dovecot - Konfiguration (
# 2.3.2.1 (0719df592): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.2 (5d6d7c92)
# OS: Linux 4.9.0-8-amd64 x86_64 Debian 9.5
# Hostname: dovecot2.domain.local
auth_master_user_separator = *
dict {
acl = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
disable_plaintext_auth = no
doveadm_password = # hidden, use -P to show it
doveadm_port = 12345
mail_debug = yes
mail_location = mdbox:~/mdbox
mail_plugins = zlib acl quota notify replication
mail_server_admin = mailto:postmaster at example.com
mail_server_comment = Dovecot-Mailbox-Server2 Company
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope
encoded-character vacation subaddress comparator-i;ascii-numeric
relational regex imap4flags copy include variables body enotify
environment mailbox date index ihave duplicate mime foreverypart
extracttext
mdbox_rotate_size = 20 M
namespace {
hidden = no
ignore_on_failure = no
inbox = no
list = children
location = mdbox:%%h/mdbox:INDEXPVT=%h/mdbox/shared
prefix = INBOX/_shared/%%u/
separator = /
subscriptions = yes
type = shared
}
namespace inbox {
hidden = no
inbox = yes
list = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix = INBOX/
separator = /
subscriptions = yes
type = private
}
passdb {
args = /etc/dovecot/master-users
driver = passwd-file
master = yes
pass = yes
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
plugin {
acl = vfile
acl_shared_dict = proxy::acl
mail_replica = tcp:10.20.1.6:12345
quota = dict:User quota::file:%h/dovecot-quota
quota_exceeded_message = Quota exceeded, please go to
https://example.org/it-infos/imap/over_quota_help
quota_rule = *:bytes=1G
quota_rule1 = INBOX/Trash:bytes=+100M
quota_rule2 = INBOX/Sent:bytes=+100M
quota_rule3 = INBOX/Archiv:bytes=+10%%
quota_status_nouser = DUNNO
quota_status_overquota = 552 5.2.2 Mailbox is full / Mailbox ist voll
quota_status_success = DUNNO
quota_warning = storage=95%% quota-warning 95 %u
quota_warning2 = storage=80%% quota-warning 80 %u
sieve = file:~/sieve;active=~/.dovecot.sieve
zlib_save = gz
zlib_save_level = 6
}
protocols = " imap lmtp sieve"
replication_dsync_parameters = -d -l 30 -U
service aggregator {
fifo_listener replication-notify-fifo {
user = vmail
}
unix_listener replication-notify {
user = vmail
}
}
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
}
unix_listener auth-userdb {
group = vmail
user = vmail
}
}
service dict {
unix_listener dict {
group = vmail
mode = 0600
user = vmail
}
}
service doveadm {
inet_listener {
port = 12345
}
}
service lmtp {
inet_listener lmtp {
port = 24
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
service quota-status {
client_limit = 1
executable = quota-status -p postfix
inet_listener {
port = 12340
}
}
service quota-warning {
executable = script /usr/local/bin/quota-warning.sh
unix_listener quota-warning {
user = vmail
}
user = vmail
}
service replicator {
process_min_avail = 1
unix_listener replicator-doveadm {
mode = 0600
user = vmail
}
}
ssl = required
ssl_cert = </etc/certs/dovecot-certs.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
userdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
verbose_proctitle = yes
protocol lmtp {
mail_plugins = zlib acl quota notify replication sieve
}
protocol imap {
mail_plugins = zlib acl quota notify replication imap_zlib imap_acl
imap_quota
}
Die Konfiguration des zweiten Servers Unterscheidet sich nur durch einen
anderen Replicationspartner
mail_replica = tcp:10.20.1.7:12345
Mehr Informationen über die Mailingliste Dovecot