質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Dovecot

Dovecotとは、POPやIMAPサーバーを提供するMDA(メール配送エージェント)の一つです。

Q&A

1回答

2191閲覧

dovecot(Dsync)でレプリケーションが完了できない。

roff01

総合スコア10

Dovecot

Dovecotとは、POPやIMAPサーバーを提供するMDA(メール配送エージェント)の一つです。

0グッド

0クリップ

投稿2019/03/08 09:59

編集2022/01/12 10:55

前提・実現したいこと

dovecotのDsyncを使ってメールサーバの冗長構成を実現させたいと考えています。

冗長構成は、Dovecotの2台で片側をMasterとして普段使用し、もう片側へDsyncを使って常時レプリケートさせます。

レプリケートはできているもののエラー表示され、処理が完了できず困っております。

解決へ導いていただける方を探しております。よろしくお願いいたします。

発生している問題

以下のエラーが発生し5分おきの余計なレプリケートのリトライが走ります。
なお、片側への接続はあらかじめ作成したRSAキーでの認証とし、ssh接続出来るようにしております。

エラーメッセージ

Mar 8 18:27:38 testmail1 dovecot: dsync-local(testuser@test.com): Error: read(root@xxx.xxx.xxx.xxx) failed: EOF (version not received)

レプリケート完了ステータスに推移させるための「version(EOF)」が取得できず、完了できないと推察しています。
この「version(EOF)」をどのようにすれば取得できるのかと言うのが鍵になりそうな気がしています。

該当のソースコード

30-dsync.conf

service replicator {
process_min_avail = 1
unix_listener replicator-doveadm {
mode = 0600
}
unix_listener replicator {
mode = 0600
}
}

dsync_remote_cmd = doveadm -D sync -u %u ssh -i /usr/local/etc/ssh/testmail2_key -l %{login} %{host} doveadm dsync-server -u %u

plugin {
mail_replica = remote:root@xxx.xxx.xxx.xxx
}

service aggregator {
fifo_listener replication-notify-fifo {
user = mail
}
unix_listener replication-notify {
user = mail
}
}

replication_max_conns = 10

補足情報(FW/ツールのバージョンなど)

レプリケートは以下の通りできております。またThunderbirdで、2号機へアクセスして
レプリケートされたメールが開けることも確認済みです。

<Master機>
$xxxx/xxxx/Maildir/cur# ls -la
合計 44
drwx------ 2 mail mail 4096 3月 7 18:14 .
drwx------ 7 mail mail 4096 3月 8 18:17 ..
-rw------- 1 mail mail 807 3月 7 12:15 1551928501.V802I162828M317966.testmail1:2,S
-rw------- 1 mail mail 807 3月 7 12:15 1551928542.V802I16282aM748656.testmail1:2,S
-rw------- 1 mail mail 806 3月 7 12:28 1551929303.V802I16282bM157112.testmail1:2,S
-rw------- 1 mail mail 807 3月 7 12:59 1551931165.V802I16282dM498341.testmail1:2,S
-rw------- 1 mail mail 807 3月 7 13:13 1551932018.V802I16282fM660001.testmail1:2,S
-rw------- 1 mail mail 807 3月 7 13:14 1551932092.V802I162830M512362.testmail1:2,S
-rw------- 1 mail mail 806 3月 7 14:31 1551936714.V802I161996M542768.testmail1:2,S
-rw------- 1 mail mail 804 3月 7 15:55 1551941718.V802I1619aaM263073.testmail1:2,S
-rw------- 1 mail mail 807 3月 7 18:14 1551950059.V802I162829M814267.testmail1:2,S

<2号機>
$xxxx/xxxx/Maildir/cur# ls -la
合計 44
drwx------ 2 mail mail 4096 3月 7 18:14 .
drwx------ 7 mail mail 4096 3月 7 18:14 ..
-rw------- 1 mail mail 807 3月 7 12:15 '1551928544.M99697P24384.testmail2,S=807,W=828:2,S'
-rw------- 1 mail mail 807 3月 7 12:15 '1551928544.M99699P24384.testmail2,S=807,W=828:2,S'
-rw------- 1 mail mail 806 3月 7 12:28 '1551929304.M613911P28956.testmail2,S=806,W=827:2,S'
-rw------- 1 mail mail 807 3月 7 12:59 '1551931167.M279604P7122.testmail2,S=807,W=828:2,S'
-rw------- 1 mail mail 807 3月 7 13:13 '1551932023.M337119P12130.testmail2,S=807,W=828:2,S'
-rw------- 1 mail mail 807 3月 7 13:14 '1551932098.M315571P12756.testmail2,S=807,W=828:2,S'
-rw------- 1 mail mail 806 3月 7 14:31 '1551936715.M229640P6219.testmail2,S=806,W=826:2,S'
-rw------- 1 mail mail 804 3月 7 15:55 '1551941720.M506807P3350.testmail2,S=804,W=825:2,S'
-rw------- 1 mail mail 807 3月 7 18:14 '1551950067.M133148P21257.testmailx2,S=807,W=828:2,S'

Dovecotのバージョンは以下を使用しています。
2.2.33.2 (d6601f4ec)

現状のDsyncステータス表示は以下の通りです。

$ doveadm replicator status @
username priority fast sync full sync success sync failed
testuser@test.com none 00:00:08 02:41:10 - y
testuser@test2.com none 00:00:08 01:56:10 - y

$ doveadm replicator status
Queued 'sync' requests 0
Queued 'high' requests 0
Queued 'low' requests 0
Queued 'failed' requests 0
Queued 'full resync' requests 0
Waiting 'failed' requests 2
Total number of known users 2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

https://wiki.dovecot.org/Replication のとおりに設定するのであれば、dsync_remote_cmd の設定は以下のようになるのではないでしょうか。

dsync_remote_cmd = ssh -i /usr/local/etc/ssh/testmail2_key -l%{login} %{host} doveadm dsync-server -u%u

ssh でうまくいかないのであれば、後半の「dsync over TCP connections (v2.2+)」の方法を使用するといいと思います。

投稿2019/03/08 15:15

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問