皆さま、こんにちは。Configuration Manager サポート チームです。
Configuration Manager (ConfigMgr) では、システムの運用監視のために複数のメッセージ種類が使用されています。ConfigMgr は 30 年以上の歴史を持つソフトウェア製品であり、その開発の過程で運用監視用メッセージについても 2 種類が派生しています。多数のクライアントを管理する製品の性質上、これらのメッセージの処理は負荷に大きな影響を与える重要な要素です。
ConfigMgr が管理するもの
まず、前提として、ConfigMgr が監視しなければならないものとしては大きく分けて以下の 2 種類があります。
- ConfigMgr サーバー コンポーネント
- サイト サーバー上のコンポーネント (例: SMS_HIERARCHY_MANAGER、SMS_INBOX_MANAGER など)
- リモート サイト システム上のコンポーネント (例: SMS_MP_CONTROL_MANAGER、SMS_WSUS_CONTROL_MANAGER など)
- ConfigMgr クライアント コンポーネント
運用監視メッセージの種類
運用監視メッセージは、以下の 2 種類があります。英名では非常に名前が似ていますが、それぞれ異なる目的で使用されます。 ConfigMgr を運用される場合、この 2 つの違いを抑えることは重要です。
- ステータス メッセージ (英名: Status Message)
- 状態メッセージ (英名: State Message)
「イベント」と「状態」の違いの理解
この 2 つのメッセージの違いを理解するために、身近な例で説明します。
イベント(ステータス メッセージ)の例:
- 「午前 9:00 にパソコンの電源が入りました」
- 「午後 1:00 にアプリケーションのインストールが完了しました」
- 「午後 3:00 にエラーが発生しました」
状態(状態メッセージ)の例:
- 「現在パソコンの電源は ON です」
- 「現在アプリケーション X はバージョン 1.2 がインストール済みです」
- 「現在ウイルス対策の定義ファイルは最新です」
つまり、イベントは「いつ何が起こったか」を記録するのに対し、状態は「現在どうなっているか」を報告します。
ステータス メッセージ (英名: Status Message)
ConfigMgr がイベント報告用のメッセージとして使っているものがステータス メッセージです。ConfigMgr の歴史の中で古くからある機能はステータス メッセージが使われています。
ConfigMgr コンソールでレコードを右クリックした際に、[ステータス メッセージの表示]で一覧出力されるものはこれになります。
凡その利用範囲は以下となりますが、状態メッセージにないものはステータス メッセージだと考えていただくのが良いかと存じます。
- サイト サーバー上のコンポーネントのイベント報告
- リモート サイト システム上のコンポーネントのイベント報告
- クライアント パッケージの展開および実行イベント結果
- クライアント タスク シーケンスの展開および実行イベント結果
ステータス メッセージはあくまで一過性のイベント発生を伝達するものであるため、ログにメッセージが発行された記録は残るものの、WMI オブジェクトなどには残りません。
状態メッセージ (英名: State Message)
ConfigMgr が「状態」を報告するために追加されたものが状態メッセージです。「状態」が重要であるクライアントの機能や、一部のリモート サイト システムの状態通達に使われます。主に以下のような利用範囲となります。
- クライアントでのソフトウェア更新プログラムの検出状態
- クライアントでのソフトウェア更新プログラムの展開の状態
- クライアントでのアプリケーションの展開状態
- クライアントでの構成項目の展開状態
- クライアントでの Endpoint Protection (MDAV) の適用状態
- クライアントでの Endpoint Protection によるマルウェア検出状態
- クライアントのピア キャッシュの保持状態
- ConfigMgr クライアント バイナリのインストール状態
- クラウド管理ゲートウェイ接続ポイント (CMG-CP) の CMG との接続状態
利用可能な状態メッセージの詳細については、以下のドキュメントを参照してください。
Configuration Managerの状態メッセージ
https://learn.microsoft.com/ja-jp/intune/configmgr/core/plan-design/hierarchy/state-messages
また、クライアントが発行した状態メッセージは、以下の PowerShell で確認できます。
1 | Get-WmiObject -Namespace root\ccm\StateMsg -ClassName CCM_StateMsg |
運用監視メッセージの収集方法
運用監視メッセージの情報収集も、下記の記事でご案内している通りの仕組みで収集されます。
Configuration Manager におけるクライアントからの情報収集の仕組み
https://jpmem.github.io/blog/mecm/20260317_01/
ステータス メッセージ (英名: Status Message) の収集タイミング
イベント発生時に管理ポイントにステータス メッセージが報告されます。その後、管理ポイントの Outbox、サイト サーバーの Inbox で順次処理され、データベースに格納されます。
状態メッセージ (英名: State Message) の収集タイミング
クライアント設定で設定された周期 (既定では 15 分に 1 回) で管理ポイントに報告されます。ただし、マルウェア検出など、一部の優先度の高い状態メッセージについては即時報告され、高い優先度で処理されます。また、すでに報告済みの状態メッセージは基本的に再送されません。
なお、クライアントが持っている状態メッセージを過去の情報を含めて再送させたい場合、以下の PowerShell コマンドレットが有用です。
1 | $targets = gwmi -namespace root\ccm\StateMsg -classname CCM_StateMsg |
運用監視メッセージの滞留事例
多数のクライアントから情報収集を行うため、時折処理滞留が起きることがあります。各メッセージの傾向は以下のとおりです。
ステータス メッセージ (英名: Status Message) の滞留
イベント発生後、すぐにメッセージが転送される性格のため、多くのクライアントで同じような理由でイベントが発生する場合、多数のステータス メッセージがサーバー側に集中することになります。よく頂く、ステータス メッセージの処理滞留事例の原因として以下が挙げられます。
- パッケージのプログラム実行スケジュールを短期間の繰り返し実行としている
- 以前の実行の成否にかかわらず、短期間で繰り返し実行を行うとそのたびにステータス メッセージが発行されます。大量の端末から短期間にステータス メッセージが届くと処理滞留が発生します。
状態メッセージ (英名: State Message) の滞留
状態メッセージがサーバー側で滞留する事例は、収集間隔を短期間に設定しない限り少ないですが、複数の状態メッセージを送信する必要がある状況で、メッセージ サイズの上限を超えて送信できない場合があります。アプリケーションや更新プログラムを短期間に多数展開したり、複数の更新プログラム カタログが一度に検出されたりすることが原因として考えられます。