Windows

2014年12月8日 at 7:09 PM

Windowsサーバーの特定のイベントログが出力されたらGoogle Gmailメール送信で管理者に通知したい

以下Windows Server 2008の場合の設定を例に挙げます。

 

 

Windows Serverにて、特定のイベントログが出力されたら管理者に発報したい場合は、タスクスケジューラを利用し以下手順で行います。

 

 

1.サーバーマネージャにて、左ペインから「構成」 – 「タスクスケジューラ」を選択します。

 

2.左ペインの「タスクスケジューラ」を右クリック – 「基本タスクの作成」を選択し、「基本タスクの作成ウィザード」を起動します。

 

3.「基本タスクの作成」画面では、タスクの名前と説明を入力します。入力し終えたら「次へ」を選択します。

 

4.「タスクトリガー」画面にでは、「特定イベントのログへの記録時」を選択し、「次へ」を押します。

 

5.「特定イベントのログへの記録時」画面にて、以下を選択します。

 

・ログ:イベントログであれば、「アプリケーション」「システム」「セキュリティー」から監視したいものを選択します

・ソース:空(入力なし)で構いません

・イベントID:監視したい対象のイベントIDを入力します。

 

 

6.「操作」画面では、「電子メールの送信」を選択します。

 

 

7.電子メールの送信先では、以下を入力します。

 

・差出人:任意で入力します。空(入力しない)はNGです

・送信先:送信先のメールアドレスを入力します。

・件名:任意で入力します。空(入力しない)はNGです

・テキスト:任意で入力します。空(入力しない)はNGです

・添付ファイル:省略して構いません

 

 

・SMTPサーバー:メールの送信に使用する送信サーバーを入力します。完全修飾ドメイン名(FQDN名)で入力する必要があります。

会社であれば、セキュリティーの観点から通常社内LAN上に自分でメールサーバーを用意します。

あまり気を使わないでよければ、対象のサーバーがネットに接続されている環境であれば、インターネット上のメールサーバーを使う手もあります。つまり、Google GmailやYahoo!メール、自分で借用しているレンタルサーバーなどです。

 

 

Gmailの場合は、サーバアドレスには smtp.gmail.com を、ポート番号には465 (SSL)または 587(TLS)を指定します。

yahoo!メールの場合は、 サーバアドレスには smtp.mail.yahoo.co.jp を、ポート番号は465 (SSL)または 587(TLS)を指定します。

 

 

 

通常のSMTPポートは25番ですが、TLS暗号化が主流となっているので、587番が標準になります。

 

 

8.「完了」ボタンを押すと、スケジュール(対象のイベント発生時に発報)が登録されます。

 

 

9.ちゃんと動くかテストを行います。

任意のイベントIDでテストのイベントログを出力させるには、MS-DOSプロンプトより以下コマンドを実行します。

 

> EVENTCREATE /ID 100 /L APPLICATION /T ERROR /D “テスト用のイベント”

 

 

上述例であれば、エラーレベルで、イベントID100のアプリケーションログを出力します。

 

イベントログ

 

 



◆gmailやYahoo!メールのSMTPサーバーを利用する場合、上述だけではダメ

Google Gmailなどを使用する場合において、上述では多分失敗したかと思います。

 

GmailはSMTP認証が必要なので、ユーザーアカウントとパスワードの指定が必要ですが、上述の「特定イベントのログへの記録時」の設定では、ID/Passが設定できません。

 

ですので上記4の手順にて、「特定イベントのログへの記録時」ではなく「プログラムの開始」を選択し、以下のPower Shellスクリプトをキックするようにします。

2013/12/12 替え玉バリカタでお願いします WindowsをタスクスケジューラとPowerShellでお手軽に監視する方法

 

 

 
項目 設定
SMTPサーバ smtp.gmail.com
認証の使用 有効
TLS/SSL 有効
ポート番号 465 または 587
アカウント名 Gmailユーザー名@gmail.com
電子メールアドレス Gmailのメールアドレス
パスワード Gmailのパスワード
 

 

 

 

$username = “?????@gmail.com”
$password = “P@ssWord1234″
$myhost = “smtp.gmail.com”
$port = 587 

 

$from = “?????@gmail.com”
$recipients = “yamada@example.com”
$subject = “[サーバ監視] Server0Aのバックアップが失敗しました”
$body = “イベントビューアでアプリケーションログを確認してください。”

 

$sc = New-Object Net.Mail.SmtpClient

$sc.Host = $myhost

$sc.Port = $port

 

$sc.Credentials = New-Object Net.NetworkCredential

$sc.Credentials.UserName = $username

$sc.Credentials.password = $password

  

$sc.send($from, $recipients, $subject, $body)

 

 

 

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



こちらの関連記事もオススメ!