Dovecot Replication не уведомляет

У меня dovecot v2.2.33.2 установлен на Ubuntu 18.04.1 . Я настроил репликатор Dovecot так же, как я обычно это делаю для серверов высокой доступности, но по какой-то причине он не синхронизирует новые электронные письма, поступающие в mx1, на mx2. Если я открываю письмо и читаю его на mx1, оно синхронизируется с mx2. Или, если я удалю его, то же самое.

Если на mx2 я напишу новое электронное письмо и отправлю, оно мгновенно синхронизируется с mx1.

Это похоже на то, что mx1 не отправляет новые уведомления на mx2 для новых писем, но синхронизация работает хорошо, как только я открою письмо.

Я настраивал репликацию несколько раз, но никогда не сталкивался с этой проблемой, не уверен, в чем проблема.

Конфигурации на mx1 и 2 одинаковы, за исключением, конечно, IP-адресов каждого из них.

Вот файл dovecot.conf :

listen = *,[::]
protocols = imap pop3
auth_mechanisms = plain login
disable_plaintext_auth = no
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_privileged_group = vmail
postmaster_address = postmaster@mx1.domain.com
ssl_cert = </etc/postfix/smtpd.cert
ssl_key = </etc/postfix/smtpd.key
ssl_protocols =  !SSLv3
mail_max_userip_connections = 100
passdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
userdb {
  driver = prefetch
}
userdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
plugin {
  quota = dict:user::file:/var/vmail/%d/%n/.quotausage
  sieve=/var/vmail/%d/%n/.sieve
  sieve_max_redirects = 25
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-userdb {
    group = vmail
    mode = 0600
    user = vmail
  }
  user = root
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
   group = postfix
   mode = 0600
   user = postfix
  }
}
service imap-login {
  client_limit = 1000
  process_limit = 512
}
protocol imap {
  mail_plugins = quota imap_quota
}
protocol pop3 {
  pop3_uidl_format = %08Xu%08Xv
  mail_plugins = quota
}
protocol lda {
postmaster_address = postmaster@mx1.domain.com
  mail_plugins = sieve quota
}
protocol lmtp {
postmaster_address = postmaster@mx1.domain.com
  mail_plugins = quota sieve
}
mail_plugins = $mail_plugins quota

# Enable the replication plugin globally
mail_plugins = $mail_plugins notify replication quota

# Both the client and the server need to have a shared secret
doveadm_password = pass_word

# configure how many dsyncs can be run in parallel (10 by default)
replication_max_conns = 10

service aggregator {
        fifo_listener replication-notify-fifo {
                user = vmail
                mode = 0666
        }

        unix_listener replication-notify {
                user = vmail
                mode = 0666
        }
}

service replicator {
        unix_listener replicator-doveadm {
                mode = 0666
        }
}

service doveadm {
        user = vmail
        inet_listener {
                port = 4711
        }
}

service config {
        unix_listener config {
                user = vmail
        }
}

# use tcp:ip as the dsync target
plugin {
        replication_full_sync_interval = 1 hours
        mail_replica = tcp:0.0.0.0:4711
}

protocol imap {
        mail_plugins = quota imap_quota notify replication
}

Кроме того, если я запускаю doveadm replicator replicate '*' , чтобы принудительно выполнить репликацию, он мгновенно отправляет ожидающие сообщения электронной почты на mx2. Но без этого не будет. Во время моего тестирования я получил его для автоматической отправки в mx2 один раз, это заняло около 20 минут.

С тех пор он больше не делал этого автоматически. Статус показывает, что время последней синхронизации продолжает расти, и если я не запустил форсировку или не открою электронное письмо, оно не вернется к нулю.

0
задан 19 September 2018 в 23:00
1 ответ

Вы забыли плагины в блоках протокола:

protocol imap {
  mail_plugins = notify replication quota imap_quota
}
protocol pop3 {
  pop3_uidl_format = %08Xu%08Xv
  mail_plugins = notify replication quota
}

После того, как вы добавите их, после изменения вашего почтового ящика он отобразится в статусе репликации:

# doveadm replicator status '*'
username               priority fast sync full sync success sync failed
test@xxx.tld           none     00:00:03  00:33:57  00:00:03     -
0
ответ дан 5 December 2019 в 05:17

Теги

Похожие вопросы