イベントビューアのエラーイベントを特定のサーバーに集めたい。WinRMのポートの違いに気をつけろ

今日はイベントビューアのお話。

たくさんのサーバーのある環境で各サーバーのエラーログだけでも1つのサーバーにまとめて確認したい事ってありませんか?

そんな時にイベントビューアのサブスクリプションを利用すれば実現できます。

 

 

イベント サブスクリプション

 

イベントを転送して収集するようコンピューターを構成する

 

今回試したのはWindows Server 2008Windows Server 2008 R2の混在環境。

サイトにある手順の通り

1.ソースサーバー(エラーイベントを送るサーバー)で管理者にてコマンドを実行する。

winrm quickconfig

 f:id:tetsunari_jp:20150728155534p:plain

2.コレクタサーバー(エラーイベントを集めるサーバー)で管理者にてコマンドを実行する。

winrm qc

f:id:tetsunari_jp:20150728155658p:plain

 

3.コレクタサーバーでサブスクリプションの設定を設定する。

コンピュータを選択し

f:id:tetsunari_jp:20150728155740p:plain

イベントを選んで

f:id:tetsunari_jp:20150728155809p:plain

どのアカウントでどう受け取る(配信)かを設定します。

配信方法で多少設定が変わるので注意(ここ重要なので後述)

f:id:tetsunari_jp:20150728155824p:plain

 

手順はこれくらいですが。。。

設定する際にコンピュータを選択しますがその時に実行するテストが通らない。。。

テストが通らないんだから設定しても当然コレクタサーバー側ではイベントを取得できません。

 

サブスクリプションのランタイムの状態を確認するとこんな状態です。

f:id:tetsunari_jp:20150728143411p:plain

 

なぜでしょう。

よく見るとエラーになっているサーバーはWindows Server 2008でした。

Windows Server 2008 R2はテスト成功、アクティブになっています。

ちなみにコレクタサーバーはWindows Server 2008 R2です。

 

これで答えがわかった人はさすがです。私は悩みましたよ。。。;

その理由は後述するとして。

調べてみると。。。

どうやらWindows Server 2008 R2Windows 7)からWinrm(WS-Managegment)で使用するポートが変わったのですね。

Windows Server 2008までは80番。Windows Server 2008 R2からは5985番。

詳しく書きますとWindows Server 2008はWinRM1.1を使用しているがWindows Server 2008 R2からはWinRM2.0を使用しています。WinRM2.0から使っているポートが変わったんですね。

なのでコレクタがWindows Server 2008 R2であれば5985を開けてあげないとテストは通らない訳です。

えっ、だってコマンド叩いたら自動設定してくれるんでしょ?

だから、コマンドをたたくのは各ソースサーバーなので各ソースサーバーが2008であればWinRM1.1なので80番で設定されるんですね。2008R2であればWinRM2.0なので5985番で設定してくれるのでテストは通る訳です。

 

その証拠がこれ。この画像はWindows Server 2008のコマンドの画像です。

ソースサーバー(送る側)がWindows 2008でWinRMでwinrm quickconfigをたたいた後の状態です。

状態の確認はこちらのコマンドにて

winrm enumerate winrm/config/lestener

f:id:tetsunari_jp:20150728160113p:plain

 

ファイアウォールのポートを見てみましょう。

f:id:tetsunari_jp:20150728160702p:plain

 

80番ポートを使っていますね。

コレクタサーバー側が2008R2だの場合、これではテストは通りません。

 

 

では、どうするか。

Windows Server 2008Windows Updateのオプションを適用しましょう。

KB968930、これでWinRM2.0がインストールされます

f:id:tetsunari_jp:20150728160756p:plain

 

ただし、これで終わりではありません。

Windows Updateを適用した後に再度ソースコンピュータ側で winrm quickconfigコマンドを実行する必要があります。そうしないと5985が空きません。

 

上に書いたWindows Server 2008でもテストが通ったサーバーととおらないサーバーがあった原因は実はWindows Updateの適用状況が違ったため;

テストが通ったサーバーはオプションまで適用をしていたためWinRM2.0がインストールされていたので成功していたのですね;

 

無事5985番があきました。

f:id:tetsunari_jp:20150728162352p:plain

ファイアウォールを見てみると。

f:id:tetsunari_jp:20150728162419p:plain

テストも成功しています。

f:id:tetsunari_jp:20150728162436p:plain

 

ここで突っ込み、、、気づいた人はさすがです。

80空いたままですよ。。。;使わないなら閉じときましょうね。。。

今回は先に80で開けてしまったので;

 

最後にイベント配信の最適化の設定の違いについて。

こちらは引用にて失礼しますが、モードで動作が違うんですね。

確かにプッシュかプルかは大きな違いです。

[サブスクリプションの詳細設定] で [HTTPS] オプションを使用して、サブスクリプションHTTPS プロトコルを使用するように構成する場合、ポート 443 の対応する Windows ファイアウォールの例外も設定する必要があります。[標準] (プル モード) の配信最適化を使用するサブスクリプションについては、ソース コンピューターでのみ例外を設定する必要があります。[帯域幅の最小化] または [潜在期間の最小化] (プッシュ モード) の配信最適化を使用するサブスクリプションについては、ソース コンピューターとコレクター コンピューターの両方で例外を設定する必要があります。

 

 

詳しくはこちらにものっています。 

Ws-management では、Windows 7 と Windows サーバー 2008 R2 のセキュリティで保護されたポートの構成の詳細について

 

尚、もしもセキュリティログを配信したい場合には、もう一つ設定が必要になるのでこちらを参考にしていただくと詳しくのっていました。

アカウントの設定も必要なんですね。

イベントサブスクリプションに関して | MCTの憂鬱