Windows TIPS
[Management]
Tips   Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

NotifEventLogを使ってイベント・ログをトリガーにしてメールを送信する(基本編)

解説をスキップして操作方法を読む

デジタルアドバンテージ 島田 広道
2010/03/05
対象OS
Windows XP
Windows Server 2003
Windows OSのイベント・ログは、トラブルの検知と解消などに役立つ重要なログ・システムである。
Windows Vistaより前のOSには、イベント・ログをメールで通知する機能が標準装備されておらず、重要なログの確認が遅れたり見落としたりする危険性がある。
フリーウェアの「NotifEventLog」を利用すれば、旧来のOSでもイベント・ログのメール送信ができるようになる。送信するイベントの絞り込みも可能だ。

解説

 イベント・ログはWindows OSにとって基本的かつ重要なログ・システムであり、OSはもちろんアプリケーションやハードウェアなどで生じるさまざまな事象が集約・記録される。Windowsシステムで何かトラブルが発生した場合、管理者はまずイベント・ログの内容を確認し、トラブルの痕跡がないか探すことになる。

TIPS「イベント・ログをトリガーにしてメールを送信する(基本編)

 しかし、トラブルが発覚してからイベント・ログを閲覧するのでは、対策が遅れる危険性がある。またイベント・ログには無視してよいイベントも多く記録されるため、トラブルの手がかりのログを見落とす恐れもある。もしイベント・ログにエラーなど重要なイベントが記録されたらすぐにメールで管理者に通知するようにしておけば、迅速かつ見落としも少ない対策ができるだろう。実際、Windows Vista以降のWindows OSには、特定のイベント・ログが記録されるとメールで送信する機能が装備されている(詳細は関連記事を参照)。一方、Windows XPやWindows Server 2003にはこの機能は標準では実装されておらず、外部ツールで実現せざるを得ない。

 本稿で紹介する「NotifEventLog」(Kosuke氏作)は、Windows XP/Windows Server 2003でイベント・ログのメール送信を実現するツールの1つだ。一定間隔(デフォルトでは1分)でイベント・ログを監視し、あらかじめ設定しておいた特定条件に合致するイベントが記録されたらメールで通知する。.NET Framework 2.0さえ先にインストールしておけば、インストールも特に難しくなく、イベントの絞り込み(フィルタリング)も単純であれば設定も容易だ。またサービス・プログラムとして実装されているため、ローカル・ログオンなしで運用できる。

 本稿ではNotifEventLogで「エラー」「失敗の監査」という種類のイベント・ログをメールで送信可能にするまでの手順を解説する。より複雑なイベント・ログの絞り込み方法については、別のTIPSで今後解説する予定だ。

操作方法

NotifEventLogのインストール

.NET Framework 2.0のインストール(Windows Update編)
.NET Framework 2.0のインストール(ネットワーク共有フォルダ編)

 NotifEventLogを利用するには.NET Framework 2.0(3.0や3.5も可)が必要なので、事前に.NET Framework 2.0とそのセキュリティ・パッチをインストールしておく。その手順については関連記事を参照していただきたい。またインストール済みの.NET Frameworkのバージョンは、TIPS「.NET Frameworkのバージョンを確認する方法」で確認できる。

 NotifEventLogをインストールするには、まず次の作者のWebページにある「ダウンロード(バージョン〜)」からたどってインストール・パッケージ(ZIPファイル)をダウンロードする。

 ダウンロードしたファイル(NotifEventLog.zip)を解凍したら、プラットフォームごとに次のファイルを実行してセットアップを開始する。

  • 32bit(x86)版OS: setup.exe
  • 64bit(x64)版OS: NotifEventLogInstall.msi

 インストール・ウィザードでは特に難しい選択肢はなく、[次へ]ボタンをクリックしていけばインストールは完了する。必要ならインストール先フォルダなどを変更できる。

 インストールが完了すると、イベント・ログの監視とメール送信のためのサービス「NotifEventLog」が自動的に登録される。管理ツールの[サービス]を開いて当該サービスの登録を確認しておこう。

NotifEventLogインストール直後の[サービス]の画面
NotifEventLogをインストールすると、自動的にサービス・プログラムが登録される。
NotifEventLogのサービス・プログラム。これがイベント・ログを監視し、メールで送信する役割を担っている。インストール直後、このサービスは停止しているので、この後で説明するNotifEventLogの設定を済ませたら手動で起動する必要がある。[スタートアップの種類]は「自動」のままでよい。

NotifEventLogの設定

 インストールが済んだら[スタート]ボタンからプログラム・メニューを開き、[NotifEventLog]−[NotifEventLogUI]をクリックするとNotifEventLogの設定画面が表示される。最初は[メールサーバ設定]にて、イベント・ログを送信するのに用いるSMTPサーバや送信元メール・アドレス、サブジェクト名などを次のように設定する。

SMTPサーバや送信元メール・アドレス、サブジェクト名などの設定画面
この画面ではメール送信先を除くメール関連の設定を行う。メール送信先だけは別のタブで設定する(すぐ後に説明する)。
最初にこれを選ぶ。
メールを送信するためのSMTPサーバをホスト名またはIPアドレスで指定する。このSMTPサーバに対して直接メールが送信される。
で指定したSMTPサーバの待ち受けポート番号を記入する。一般的には25/465/587のいずれかだが、SMTPサーバによって異なるので、その仕様を確認して指定する。
メール送信路を暗号化する必要がある場合は、このチェックをオンにする。で465を指定した場合、TIPS「メールの送受信を暗号化するPOP3s/IMAP4s/SMTPs(over SSL)とは」で説明した「over SSL」方式が自動的に選択される。逆にが465以外の場合は「STARTTLS」方式で送信される。
で指定したSMTPサーバが認証を要求する場合、ユーザー名(アカウント名)を記入する。認証が不要なら空欄にする。
と同様に、認証が必要ならパスワードを記入し、不要なら空欄にする。
送信元(送信者)のメール・アドレスを記入する。
メーラなどでの代わりに表示される名称を記入する。
送信されるメールのサブジェクト名を指定する。サブジェクトだけで送信元を識別できるよう、サーバ名(ここでは「Server1」)を加えておくと便利だろう。日本語も使用できる。
までの設定が済んだら、これをクリックするとメール送信をテストできる。ダイアログが表示されるので、送信先メール・アドレスを指定してから送信する。送信に失敗したら、エラー・メッセージが表示されるまでに時間がかかる場合は特にを、逆にすぐエラー・メッセージが表示される場合は特にを再確認する。

 上記画面で一通り設定を済ませたら、[メールテスト送信]ボタンをクリックして、テスト・メールが正しく送信されるか確認しておく(テスト・メールの送信先は、このボタンをクリックして表示されるダイアログで指定できる)。これに失敗する場合、イベント・ログはまったく送信されないので、送信に成功するまで設定を見直す。

 次に[送信先設定]タブで送信先メール・アドレスを指定する。複数の送信先が指定可能だが、例えばイベント・ログの種類ごとに別々の送信先を指定する、といったことはできず、どの送信先にも同一の内容が配信される。

送信先メール・アドレスの設定画面
この画面で設定したメール・アドレスにイベント・ログのメールが送信される。複数のメール・アドレスが指定可能だ。
最初にこれを選ぶ。
送信先メール・アドレスを記入する。
メーラなどでの代わりに表示される名称を記入する。
これをクリックするとの内容が実際に追加され、の欄に表示される。
登録済みの送信先メール・アドレスと表示名。ここに表示されているすべての送信先メール・アドレスに対して、同一のイベント・ログが送信される。

 次に[フィルター]タブで、送信するイベント・ログを絞り込むための条件を設定する。NotifEventLogは、ここに設定された条件に合致するイベントだけを抽出してメールで送信する。条件には、イベント・ログの「種類」「分類(NotifEventLogでは「カテゴリー」)」といった各項目が取り得る値の範囲を指定する。例えば、

  • 「種類」が「エラー」に「一致」する、「OR(または)」「種類」が「失敗の監査」に「一致する」
  • 「ユーザー」が「Administrator」「以外」で、「AND(かつ)」「イベントID」が「123」に「一致する」

というように複数の条件を連ねることで、対象のイベント・ログを絞り込む。

イベント・ログを絞り込む条件を設定する画面
この画面では、メールで送信するイベント・ログを絞り込むための条件を設定する。複数の条件が設定可能だ。
最初にこれを選ぶ。
複数の条件を登録する際、どのように各条件が満たされたときにメールを送信するのかを設定する。「OR」を選ぶと、これからで設定する条件と、で選択中の登録済み条件のどちらか一方でも満たされたときに送信される。「AND」を選ぶと、両方とも条件が満たされたときに送信される。ここでは「OR」を選ぶ。
「ユーザー」や「イベントID」などイベント・ログに記録される各項目から、条件として指定するものを選択する。ここでは「種類」を選ぶ。
条件を満たすの関係を設定する。で選んだ項目によって、この選択肢は変わる。ここでは「一致」を選ぶ。
に対する値を設定する。これもで選んだ項目によって選択肢が変わる。ここでは、1番目の条件で「エラー」を選び、2番目の条件で「失敗の監査」を選んだ(逆順でもよい)。
これをクリックすると、で設定した条件が実際に追加され、の欄に表示される。
登録済みの絞り込み条件。2番目以降の条件を登録する際は、ここで選択している条件との選択によって、メール送信のトリガーが変わるので注意。

 さて、残る[配信項目選択]タブでは、送信するメール本文に記載するイベント・ログの内容を選択する。デフォルトでは各イベント・ログの全項目が記載されるが、携帯電話へ送信するために文字数を少なくしたい場合やセキュリティ・ポリシーの都合などでさらしたくない項目がある場合は、メールに記載しない項目を設定できる。

メール本文に記載するイベント・ログの項目を選択する画面
この画面では、日時や「種類」「コンピュータ」などのイベント・ログの各項目を送信メールに記載するかどうかを選択できる。
チェックが入っている項目はメールに記載される。デフォルトではすべて記載される。不要な項目あるいはセキュリティ・ポリシーの都合などで送信したくない項目は、チェックを外す。

NotifEventLogサービスの開始

 以上でNotifEventLogの設定は完了である。[OK]ボタンをクリックしてNotifEventLogのダイアログを閉じたら、次にNotifEventLogのサービスを開始する。それには管理ツールにある[サービス]を起動し、サービス一覧から「NotifEventLog」を見つけて右クリックして[開始]を選択するか、あるいは次のコマンドラインを実行する。

net start NotifEventLog

NotifEventLogの動作確認

 これでNotifEventLogはイベント発生を待ち受ける状態になったはずだ。その動作を確認するために、設定した条件に合致するイベントを手動で生成してみよう。それにはコマンド・プロンプト上でeventcreateというコマンドを実行し、メールが自動的に送信されることを確認する。次のコマンドラインを実行すると、「種類」が「エラー」のイベント・ログが記録される。

eventcreate /L SYSTEM /T ERROR /ID 1 /D "テスト用エラー・イベントの生成"

 このコマンドの詳細については、TIPS「イベント・ログに任意の文字列を出力する」を参照していただきたい。

 NotifEventLogがイベント・ログの絞り込みとメール送信に成功すると、次のようなメールが送信先メール・アドレスに届くはずだ。

受信したイベント・ログのエラー通知メールの例
これは筆者が管理している実運用のサーバで、FTPサーバへの不正アクセスが拒否されたときに受信したメールだ。設定した条件を満たすイベントが発生し、NotifEventLogのサービスが正常にメールを送信できれば、このようなメールが受信できるはずである。
受信したメールの本文。記載されたイベントの件数と、各イベントの内容(項目)が記載されている。

 以上で、「エラー」または「失敗の監査」のイベントをメールで送信する設定は完了だが、これでも絞り込みが足りず、大量のメールが送信される危険性はある。もともとイベント・ログには、たとえ「エラー」「失敗の監査」であっても無視してもよいものが数多く記録されるからだ。

 実はNotifEventLogでは、もっと複雑な条件を設定することで送信メールをさらに絞り込むことが可能だ。その方法は別のTIPSで説明する予定だ。End of Article

「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間