2013/08/27

[Windows]監視スクリプトを書いてみた(2/5) メール送信

ApacheやらMySQLのサービスが落ちてないかなどを監視するのを自分でチェックして異常があったら発報する仕組みが必要だと思ってました。
サードパーティに頼らず、WindowsOSの機能だけで作ってみたかったので、ほぼVBScriptだけでくみ上げてみました。

そんなマゾヒズム感全開なエントリがこちらです。

今回は第2回です。
  1. 処理フロー
  2. メール送信(今回)
  3. サービス監視
  4. ポート監視
  5. MySQLレプリケーション監視




.

必要性

「発報」はMSのIMEの漢字変換で出てこないんですが、多分業界では一般的な言葉だと思います。
無人で監視しているシステムで異常が起こって、その監視しているPCや監視対象のサーバー上でエラーダイアログが出ても、気づくことはできませんので、異常を検知したらメールでお知らせしてくれるようにします。
24時間の監視をするなら、携帯メールも送信先に入れておく必要もあるかもしれませんね。

コード

「VBScript+メール送信」で検索すればコードはごろごろ転がってるんで、それを参考に書き直してみました。
このシリーズではメール送信単体で使うことはなく、「異常を検知したらそれを知らせる」必要があり、それに適した形に書いています。

ポイントはこのスクリプトを単体のファイルとして保存し、外部ファイルから呼び出せるようにすること。
呼び出すときに件名と本文を指定できるよう、引数を受け入れること。
自らがSMTPサーバー機能を持っていなくてもよいように、外部のSMTPサーバーに接続するパターンにしています。


例えば社内ネットワークの中にあるSMTPサーバーなど、自由に接続できる場合はよいのですが、接続するのにユーザー名/パスワードが必要になるなら25,26,82,83,84行目のコメントアウトを外して適宜変更してください。

本文エンコードは一応「ISO-2022-JP」にしていて、ほとんどのメールクライアントはこの文字コードに対応していると思っていますが、文字化けして読めないようなら変えてください。
(iPhoneのメールとWindows版Outlook2003,2010では読めることを確認しています。)


次回はVBScriptでサービス監視をします。

.

0 件のコメント:

コメントを投稿