Monitoring Casual Talk in Kyoto @はてなさん 2013/11/30(土)

Mail queue monitoring
メールキューの監視、主にSendmailの。

@azumakuniyuki

Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

2

自己紹介
@azumakuniyuki
あずま(猫)@京都
別のあずまさんと識別の為、最近+=(猫)。

主にサーバ管理者
プログラム書く時は/bin/sh or Perl

bouncehammer,Haineko

主にメール関係の何かを開発することが多いです。

Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

3

Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

4

Mail queue Monitoring
だいたい異常はメールキューに現れる

Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

5

What MTA do you use?
どのMTA使ってはります?

Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

6

Major MTAs
- 歴史と伝統・信頼と実績の Sendmail
- 西暦2000年代の主流MTA Postfix
- 堅牢性と安全、信者の為の qmail
- Exim
- Courier MTA
- OpenSMTPD

Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

7

現在の状況と背景
- 前職の時はラック10本ぐらい
- 現職は他社(顧客)のサーバ監視をすることが殆ど
- エージェントを必要とする監視ソフトウェア=NG
- L8? L9? 政治層の問題で...
- 監視サーバを顧客ネットワークだけに置くならOK
- 死活監視はNagios
- リソース監視はMunin or CloudForecast
-  監視ページ・サーバが複数個所に散らばってる

Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

8

うちは主にSendmail
- 構築するMTAは原則としてSendmail
- Maildir/とMilter対応でソースビルドして構築
- 標準的な内容から不要なもの削ったsendmail.cf
- 自分が一番慣れてるし
- 必要ならルールセットも書く
- Mailboxがいる場合はDovecotも構築
- それとMDAとしてprocmail,maildropも
- ルールセット書かないならSendmailは難しくない
- 正しくチューニングすれば遅くない
Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

9

普通の監視しかやってない
- MTAが複数台あるネットワークはMuninを設置
- Muninの標準プラグインの
- Sendmail email traffic
- Sendmail email volumes
- Sendmail queued mails
- 追加で
- Sendmail quarantined mails ←隔離キュー数
- plugins/sendmail_mailqueueをコピーして作成

Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

10

普通のキュー数観測

Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

11

隔離したキュー数観測

Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

12

キューを隔離する
- # sendmail -QSEND_20131201 -qRdocomo.ne.jp -v
- 隔離するキュー(いつ届いても良い系)
- 夜中に流れると苦情が来る(携帯電話宛とか)
- 21時過ぎたら残ってるのは隔離、朝9時に復帰。
- # sendmail -QGOMI -qSinfo@example.jp -v
- 隔離するキュー(もう捨てても良い系)
- ドメイン打ち間違い(DNS引けずに滞留、邪魔)
- 期限内に送れなかった(短期間キャンペーンとか)
Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

13

キューの急激な増加
- 大きめの配信が始まると急増
- 負荷対策(こっちとあっち)の為、一旦キューに入れる
- 配送に失敗したら勝手に別MTAに流れて行く
- Nagiosでのキュー数監視
- 大きめの閾値・滅多にアラートは来ない
- だいたいディスクIOで負荷が上がる
- /var/spoolをioDriveにすれば解決
- やってみたい

Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

14

キューがたまりすぎ
- だいたいネットワーク系の障害(こっちかあっちか)
- 相手側MTAからブロックされてる?
- そもそも普段の行いが悪い
- 死んでるアドレス管理とか行儀の悪い配信とか
- とりあえずキューにあるメールを全部隔離
- ログ見る・手動接続 telnet 25
- あかんとこ以外を復帰させてキュー処理
- あかんとこは個別対処(別MTAとか明日送るとか)
- アプリ側でSMTP接続失敗例外処理あるならMTA停止可
Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

15

全体のキュー数見たい
- # imomushi -cC queues.cf ⏎
mta01 ------------- 1/10000 キュー数/閾値
mta02 ----------- 314/ 1000
mta03 ------------- 0/

500

mx1 --------------- 4/

20

mx2 --------------- 2/

10

bulk1 --------- 44551/50000 50%超でアラート来る
bulk2 ---------- 3334/50000

Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
Monitoring Casual Talk in Kyoto@はてなさん 2013/11/30(土)

16

まとめ
- 大きめの配信では必ずキューが急増
- グラフの変化を見ると異常な感じがするけど...
- 万単位の配信なら普通
- Disk I/O対策で一旦キューに保存してあとで配信
- メモリがあるなら/dev/shmとかmfsとか使う
- 消えないように!
- 恒常的に残ってるキュー数の方が問題
- MTAを沢山用意して負荷が急上昇しにくい対策を
- 自分やチームが慣れているMTAが一番
Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
17

終

2013 11-30-mailqueue-monitoring

  • 1.
    Monitoring Casual Talkin Kyoto @はてなさん 2013/11/30(土) Mail queue monitoring メールキューの監視、主にSendmailの。 @azumakuniyuki Cubicroot Co. Ltd.
  • 2.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 2 自己紹介 @azumakuniyuki あずま(猫)@京都 別のあずまさんと識別の為、最近+=(猫)。 主にサーバ管理者 プログラム書く時は/bin/sh or Perl bouncehammer,Haineko 主にメール関係の何かを開発することが多いです。 Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 3.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 3 Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 4.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 4 Mail queue Monitoring だいたい異常はメールキューに現れる Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 5.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 5 What MTA do you use? どのMTA使ってはります? Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 6.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 6 Major MTAs - 歴史と伝統・信頼と実績の Sendmail - 西暦2000年代の主流MTA Postfix - 堅牢性と安全、信者の為の qmail - Exim - Courier MTA - OpenSMTPD Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 7.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 7 現在の状況と背景 - 前職の時はラック10本ぐらい - 現職は他社(顧客)のサーバ監視をすることが殆ど - エージェントを必要とする監視ソフトウェア=NG - L8? L9? 政治層の問題で... - 監視サーバを顧客ネットワークだけに置くならOK - 死活監視はNagios - リソース監視はMunin or CloudForecast -  監視ページ・サーバが複数個所に散らばってる Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 8.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 8 うちは主にSendmail - 構築するMTAは原則としてSendmail - Maildir/とMilter対応でソースビルドして構築 - 標準的な内容から不要なもの削ったsendmail.cf - 自分が一番慣れてるし - 必要ならルールセットも書く - Mailboxがいる場合はDovecotも構築 - それとMDAとしてprocmail,maildropも - ルールセット書かないならSendmailは難しくない - 正しくチューニングすれば遅くない Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 9.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 9 普通の監視しかやってない - MTAが複数台あるネットワークはMuninを設置 - Muninの標準プラグインの - Sendmail email traffic - Sendmail email volumes - Sendmail queued mails - 追加で - Sendmail quarantined mails ←隔離キュー数 - plugins/sendmail_mailqueueをコピーして作成 Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 10.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 10 普通のキュー数観測 Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 11.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 11 隔離したキュー数観測 Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 12.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 12 キューを隔離する - # sendmail -QSEND_20131201 -qRdocomo.ne.jp -v - 隔離するキュー(いつ届いても良い系) - 夜中に流れると苦情が来る(携帯電話宛とか) - 21時過ぎたら残ってるのは隔離、朝9時に復帰。 - # sendmail -QGOMI -qSinfo@example.jp -v - 隔離するキュー(もう捨てても良い系) - ドメイン打ち間違い(DNS引けずに滞留、邪魔) - 期限内に送れなかった(短期間キャンペーンとか) Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 13.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 13 キューの急激な増加 - 大きめの配信が始まると急増 - 負荷対策(こっちとあっち)の為、一旦キューに入れる - 配送に失敗したら勝手に別MTAに流れて行く - Nagiosでのキュー数監視 - 大きめの閾値・滅多にアラートは来ない - だいたいディスクIOで負荷が上がる - /var/spoolをioDriveにすれば解決 - やってみたい Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 14.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 14 キューがたまりすぎ - だいたいネットワーク系の障害(こっちかあっちか) - 相手側MTAからブロックされてる? - そもそも普段の行いが悪い - 死んでるアドレス管理とか行儀の悪い配信とか - とりあえずキューにあるメールを全部隔離 - ログ見る・手動接続 telnet 25 - あかんとこ以外を復帰させてキュー処理 - あかんとこは個別対処(別MTAとか明日送るとか) - アプリ側でSMTP接続失敗例外処理あるならMTA停止可 Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 15.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 15 全体のキュー数見たい - # imomushi -cC queues.cf ⏎ mta01 ------------- 1/10000 キュー数/閾値 mta02 ----------- 314/ 1000 mta03 ------------- 0/ 500 mx1 --------------- 4/ 20 mx2 --------------- 2/ 10 bulk1 --------- 44551/50000 50%超でアラート来る bulk2 ---------- 3334/50000 Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 16.
    Monitoring Casual Talkin Kyoto@はてなさん 2013/11/30(土) 16 まとめ - 大きめの配信では必ずキューが急増 - グラフの変化を見ると異常な感じがするけど... - 万単位の配信なら普通 - Disk I/O対策で一旦キューに保存してあとで配信 - メモリがあるなら/dev/shmとかmfsとか使う - 消えないように! - 恒常的に残ってるキュー数の方が問題 - MTAを沢山用意して負荷が急上昇しにくい対策を - 自分やチームが慣れているMTAが一番 Mail queue monitoring @azumakuniyuki / Cubicroot Co. Ltd.
  • 17.