Cyrus IMAPd監視ツール

社内メールサーバに障害が起こっていたが、Cyrus IMAPdのDBのログのownerがrootになっていて書けないという原因だった。

/etc/init.d/cyrus-imapd stop
chown cyrus.imap /var/lib/imap/db/*
/etc/init.d/cyrus-imapd start

とやって、 再びstartさせたら治ったが、ログを見る限りでは、DBのログローテーションタイミングで、ctl_cyrusdbが新たに作成したログへの書き込みに失敗しているという感じ。

Web検索すると、Macの事例がちょこっと読めたりするのだが、英語のメーリングリストまで当たってみても、具体的にどういう対策を採れば解決するのかという情報は皆無で、バージョンは今2.2.12だが、2.3.xに上げたとしても直る保証がない。

何しろ、DBのログローテーションのタイミングで起こるので、よっぽど大量のメールを処理してても滅多に起こるものでもない。しかし、休日に呼び出されるのも嫌なので、ログを監視して自動復旧するツールを作った。

昔、perlでpppのログ監視して、pppが切断されたら再upとか、PCMCIAのAirH”カードを再初期化するツールを作っていたので、その応用で、maillogを監視し、ctl_cyrusdb\[\d+\]:.*DBERROR.*Permission denied ってのに反応するようにした。

Cyrus のdeliverはIMAPdでスプールできないと/var/spool/mailに落としてくれるので、

formail -d -s sendmail hoge</var/spool/mail/hoge

とかやると、落っことしたメールを再配送できる。

監視ツールでは、この再配送までを自動でやるようにしてはいるが、実際に障害が起こらないとうまく動くかは分からないんだなこれが(笑)

ruyandirect.com

メールで問い合わせしたら返事来たが、どうやらわしのリキッドは液体爆弾と判定されたようだ。

再度送るとの事だが、在庫無いから5〜7日待ってもらうよって話で、ひょっとしてリキッドは上海空港で没収か?

電子タバコ屋もリスク高えなあ。

【追加】
実は、来たメールは、「金返すか再送するかどっちにする?」ってメールだったので、「再送にしてくれ」って書いたのだが、その返事が来た。

それによると、荷物は没収されなかったようだ。しかし、返送された荷物を受け取って、すぐに再送し、発送情報を再び伝えるとの事なので、また一週間くらいかかるのかな。

あ、そうそう、最初のメールに伝票の写しが添付されてきて、よーく見てみると、
20090415.JPG

そりゃ、Toy Gift Box じゃ通らんだろう…。