WSFC / MSFC のログについて調べたことをまとめてみました。
久しぶりのクラスタ関連の投稿です。
検証環境が 2008 無印のものしか用意できていなかったため Windows Server 2008 SP1 で確認しています。
そろそろ R2 のクラスタ検証環境も構築しておきたいと思います。
WSFC のログ (状態を把握する情報) は以下の種類があります。
- イベントビューア
- Cluster.log
- Event Tracing for Windows (ETW)
まずはイベントビューアのログから。
[イベントビューア]
以下の 2 個所からクラスタ関連のイベントビューアのログを確認することができます。
- システムログ
- アプリケーションとサービスログ
それぞれのログの表示の仕方は以下の通りです。
システムログ
- サーバー マネージャを実行します。
- [診断] → [イベント ビューア] → [Windows ログ] → [システム] を開きます。
?
- WSFC のログのみを表示するにはソースを [FailoverClustering] でログをフィルタリングします。
フィルタリングは [操作] の [現在のログをフィルタ] で行います。
- [フェールオーバー クラスタ管理] の [クラスタ イベント] で表示される内容もイベントビューアと同様の内容のようですね。
こちらは直近 24 時間以内の内容でフィルタリングされています。
?
アプリケーションとサービスログ
- サーバー マネージャを実行します。
- [診断] → [アプリケーションとサービス ログ] → [Microsoft] → [Windows] → [FailoverClustering] → [Operational] を開きます。
こちらのログはクラスタの操作ログが出力されるようですね。
細かな動作の内容に関しては [Windows ログ] ではなく、こちらのログを確認したほうがよいかと思います。
[Cluster.log]
Windows Server 2003 まではデフォルトで出力されていたログですね。
Windows Server 2008 ではこのログはデフォルトでは出力されていません。
以下のコマンドを実行して、必要に応じて都度出力する必要があります。
cluster log /generate または cluster log /g |
?
このコマンドを実行すると [Cluster.log] が [C:WindowsClusterReports] に出力されます。
[/node:] オプションを指定しない場合は、クラスタを構成する各ノード上にログが出力されています。
このファイルは以前からクラスタを触られている方であれば馴染みのある形式ですよね。
クラスタのログは Tech Center の以下の投稿がとても参考になります。
Cluster Log Level
クラスタのログのレベルは 1 ~ 5 までの 5 段階で設定ができ、デフォルトでは 3 となっています。
Level |
Error |
Warning |
Info |
Verbose |
Debug |
0 |
? |
? |
? |
? |
? |
1 |
○ |
? |
? |
? |
? |
2 |
○ |
○ |
? |
? |
? |
3 |
○ |
○ |
○ |
? |
? |
4 |
○ |
○ |
○ |
○ |
? |
5 |
○ |
○ |
○ |
○ |
○ |
?
以下は [Cluster log] コマンドのヘルプになります。
[/LEVEL] は [0 ~ 10] となっていますが、6 以上は将来の予約値となっているようで現在はまだ使われていないようです。
# R2 になって使用されるようになっているかまではまだ調べられていません。
>cluster log /? このコマンドの構文は次のとおりです:
CLUSTER [[/CLUSTER:]クラスタ名] LOG <オプション> <オプション> = ? /G[EN[ERATE]] [/COPY[:"ディレクトリ"]] [/NODE:"ノード名"] ? [/SPAN[MIN[UTE[S]]]:分] ] ? /SIZE:MB 単位のログ サイズ ? /LEVEL:ログ レベル
注意: ? /SIZE は 8 ~ 1024 MB の間である必要があります。 ? /LEVEL は 0 ~ 10 の間である必要があります。
CLUSTER LOG /? CLUSTER LOG /HELP
|
ログのレベルを変更したいときは、[Cluster log /LEVEL:<レベル>] で変更します。
サイズはデフォルトでは [100 MB] になっていますので変更したい場合は [Cluster log /LEVEL:<サイズ>] で変更します。
現在の設定値を確認したい場合は、[Cluster prop] コマンドで確認することができます。
以下は、コマンドの出力結果です。
[ClusterLogLevel] [ClusterLogSize] が現在の設定値になります。
T? クラスタ???????????? 名前?????????????????????????? 値 — ——————– —————————— ———————– M? 2008-wsfc-01???????? AdminExtensions D? 2008-wsfc-01???????? DefaultNetworkRole???????????? 2 (0x2) S? 2008-wsfc-01???????? Description B? 2008-wsfc-01???????? Security Descriptor??????????? 01 00 14 80 … (288 バイト) M? 2008-wsfc-01???????? GroupsAdminExtensions M? 2008-wsfc-01???????? NetworksAdminExtensions M? 2008-wsfc-01???????? NetworkInterfacesAdminExtensions M? 2008-wsfc-01???????? NodesAdminExtensions M? 2008-wsfc-01???????? ResourcesAdminExtensions M? 2008-wsfc-01???????? ResourceTypesAdminExtensions D? 2008-wsfc-01???????? QuorumArbitrationTimeMax?????? 20 (0x14) D? 2008-wsfc-01???????? QuorumArbitrationTimeMin?????? 7 (0x7) D? 2008-wsfc-01???????? DisableGroupPreferredOwnerRandomization 0 (0x0) D? 2008-wsfc-01???????? ClusSvcHangTimeout???????????? 60 (0x3c) D? 2008-wsfc-01???????? ClusSvcRegroupStageTimeout???? 7 (0x7) D? 2008-wsfc-01???????? ClusSvcRegroupOpeningTimeout?? 5 (0x5) D? 2008-wsfc-01???????? ClusSvcRegroupPruningTimeout?? 5 (0x5) D? 2008-wsfc-01???????? ClusSvcRegroupTickInMilliseconds 300 (0x12c) D? 2008-wsfc-01???????? HangRecoveryAction???????????? 3 (0x3) D? 2008-wsfc-01???????? SameSubnetDelay??????????????? 1000 (0x3e8) D? 2008-wsfc-01???????? CrossSubnetDelay?????????????? 1000 (0x3e8) D? 2008-wsfc-01???????? SameSubnetThreshold??????????? 5 (0x5) D? 2008-wsfc-01???????? PlumbAllCrossSubnetRoutes????? 0 (0x0) D? 2008-wsfc-01???????? CrossSubnetThreshold?????????? 5 (0x5) D? 2008-wsfc-01???????? BackupInProgress?????????????? 0 (0x0) D? 2008-wsfc-01???????? RequestReplyTimeout??????????? 60 (0x3c) D? 2008-wsfc-01???????? WitnessRestartInterval???????? 15 (0xf) D? 2008-wsfc-01???????? SecurityLevel????????????????? 1 (0x1) D? 2008-wsfc-01???????? ClusterLogLevel??????????????? 3 (0x3) D? 2008-wsfc-01???????? ClusterLogSize???????????????? 100 (0x64) D? 2008-wsfc-01???????? WitnessDatabaseWriteTimeout??? 300 (0x12c)
|
[Cluster.log] はコマンドの実行の都度、生成されますがその情報は Event Tracing for Windows (ETW) で出力された
情報がベースになっているようです。
[Cluster log /g] コマンドを実行すると、[CPrepSrv.exe] が [C:WindowsSystem32winevtLogs] ディレクトリにある、
[ClusterLog.etl.001] [ClusterLog.etl.002] [ClusterLog.etl.003] を読み込み、[Cluster.log] を生成しています。
[Event Tracing for Windows (ETW) ]
最後に ETW のログです。
ETW は Event Tracing for Windows の略で、OS で提供されている汎用トレース機能になります。
この機能により、クラスタの状態が ETL ファイルに出力がされています。
ETW は OS の内部状態を確認するために使用することがあるようなのですが、私は全然詳しくありません・・・。
IT Pro 向けの ETW / XPerf 関連の情報を集めたいなと思っているのですが手付かずです。
ETW によりデバッグおよびパフォーマンス調整を改善する
クラスタの ETW はイベントトレースセッションで自動的に実行されるようになっています。
イベントトレースセッションの設定は以下から確認することができます。
- サーバー マネージャを実行します。
- [診断] → [信頼性とパフォーマンス] → [データ コレクタ セット] → [イベント トレース セッション] を開きます。
?
[FailoverClustering] がクラスタのイベントトレースセッションの設定になります。
自動的に実行されているのは [スタートアップ イベント トレース] で [FailoverClustering] が [自動] で設定されているからのようですね。
この機能で出力されているのが、[Cluster.log] のベースになっている、[C:WindowsSystem32winevtLogs] に出力さている、
[ClusterLog.etl.xxx] ファイルになります。
このファイルを直接開いて内容を確認することはできないのですが、[tracerpt] というコマンドを使用すると、CSV や XML で
出力することができます。
以下はコマンドの例になります。
tracerpt ClusterLog.etl.001 ClusterLog.etl.002 ClusterLog.etl.003 -o log.txt ?of CSV tracerpt ClusterLog.etl.001 ClusterLog.etl.002 ClusterLog.etl.003 -of XML
|
クラスタの場合は ETW を開くより、cluster.log にして開くことのほうが多いと思いますので、使用する機会は
多くないかも知れないですね。
ETL ファイルですので、xperf や xperfview で開くことも可能です。
xperf / xpwerfview は以下のリンクから WPT Kit をダウンロードすることで入手可能です。
Windows Performance Analysis
パフォーマンス系の情報が入っていないからなのか、開いても寂しい表示ですが。
?
以上が、クラスタのログになります。
クラスタで障害が発生した場合は、これらのログを使用して状況を把握していくことになります。
ETW は Cluster.log で確認ができるので、実際にはイベントビューアと cluster.log の 2 種類を使用することになりますね。
この記事はずっと下書きに入っていたのですが、ようやく投稿まで持っていくことができました。