外部通知

Configuration Manager (現在のブランチ) に適用

複雑な IT 環境では、 Azure Logic Apps のような自動化システムを使用できます。 お客様はこれらのシステムを使用して、複数のシステムを統合するための自動化されたワークフローを定義および制御します。 製品の SDK API を使用して、Configuration Managerを別の自動化システムに統合できます。 ただし、このプロセスは、ソフトウェア開発のバックグラウンドを持たない IT プロフェッショナルにとっては複雑で困難な場合があります。

バージョン 2107 以降では、サイトが外部システムまたはアプリケーションに通知を送信できるようにします。 この機能により、Web サービス ベースのメソッドを使用してプロセスが簡略化されます。 これらの通知 送信するようにサブスクリプションを構成します。 これらの通知は、発生した特定の定義済みのイベントに応答します。 たとえば、 ステータス メッセージ フィルタールールなどです。

注:

外部システムまたはアプリケーションは、この機能が呼び出すメソッドを定義して提供します。

この機能を設定すると、サイトは外部システムとの通信チャネルを開きます。 その後、そのシステムは、Configuration Managerに存在しない複雑なワークフローまたはアクションを開始できます。

バージョン 2111 以降では、Configuration Manager コンソールを使用して、外部通知のサブスクリプションを作成または編集します。 この記事では、そのエクスペリエンスについて説明します。 バージョン 2107 を使用している場合は、「バージョン 2107 Configuration Manager」を参照してください。

前提条件

  • 階層の最上位サイトにサブスクリプションを作成します。 このサイトは、スタンドアロン プライマリ サイトまたは中央管理サイト (CAS) です。 階層内の任意のサイトで既存のサブスクリプションを表示および変更できます。

  • サイトのサービス接続ポイントはオンライン モードである必要があります。 詳細については、「 サービス接続ポイントについて」を参照してください。

  • 現時点では、この機能は外部システムとしての Azure Logic Apps のみをサポートしています。 ロジック アプリを作成する権限を持つアクティブな Azure サブスクリプションが必要です。

    サービス接続ポイントは、通知サービス (Azure Logic Apps など) と通信する必要があります。 詳細については、「 インターネット アクセスの要件」を参照してください。

  • アプリケーションの承認要求のイベントの種類を作成するには、承認を必要とし、ユーザー コレクションに展開されるアプリがサイトに必要です。 詳細については、「アプリケーションのデプロイ」と「アプリケーションの承認」を参照してください。

アクセス許可

NotificationSubscription オブジェクトに対する次のアクセス許可を構成できます。読み取り、削除、変更、作成。

  • 完全な管理者の既定のセキュリティ ロールには、これらのアクセス許可があります。
  • 読み取り専用アナリストの既定のセキュリティ ロールには、読み取りアクセス許可があります。

バージョン 2107 では、ユーザーには すべての セキュリティ スコープも必要です。 バージョン 2111 以降では、サブスクリプション オブジェクトのスコープを設定できません。 必要に応じて、ユーザーが少なくとも読み取りアクセス許可を必要とする Site オブジェクトのスコープを使用できます。

カスタム ロールには他のアクセス許可が必要な場合があります。 次の表を使用して、必要な内容を理解します。

アクション アラート:
読み取り
サイト:
読み取り
通知:
読み取り
通知:
変更
通知:
作成する
通知:
削除
サイト:
SFR の管理
サブスクリプションの表示 X X
サブスクリプションの変更 X X X X
サブスクリプションの作成 注 1 X X X X
サブスクリプションを削除する X X X
新しい SFR を作成する X X X 注 2 注 2 X
既存の SFR を追加する X X X 注 2 注 2
アプリの承認を追加する X X X 注 2 注 2

上記の表では、次の短縮形を使用します。

  • 通知: 通知サブスクリプション オブジェクト
  • SFR: 状態フィルター規則

注 1: 階層内の最上位サイト

階層の最上位サイトにサブスクリプションを作成します。 このサイトは、スタンドアロン プライマリ サイトまたは CAS のいずれかです。 階層内の任意のサイトで既存のサブスクリプションを表示および変更できます。

注 2: イベント アクションのアクセス許可を変更および作成する

サブスクリプションのイベントを管理する場合、Notification サブスクリプション オブジェクトの Modify または Create に対するアクセス許可は、イベントを変更または作成する必要があるかどうかによって異なります。 たとえば、[ 作成 ] アクセス許可がある場合は、サブスクリプションに状態フィルター規則を追加できます。 [変更] アクセス許可がない場合は、サブスクリプション イベントを変更できません。

Azure ロジック アプリとワークフローを作成する

次のプロセスを使用して、Azure Logic Apps でサンプル アプリを作成し、Configuration Managerから通知を受け取ります。

注:

このプロセスは、開始に役立つ例として提供されます。 運用環境での使用を目的としたものではありません。

  1. Azure portal にサインインし

  2. Azure 検索ボックスに「」と入力 logic appsし、[ Logic Apps] を選択します。

  3. [ 追加] を選択し、[ 従量課金] を選択します。 このアクションにより、新しいロジック アプリが作成されます。

  4. [ 基本 ] タブで、環境に必要に応じてプロジェクトの詳細 (サブスクリプション名、リソース グループ、ロジック アプリ名、リージョン) を指定します。

  5. [確認 + 作成] を選びます。 検証ページで、指定した詳細を確認し、[ 作成] を選択します。

  6. [ 次の手順] で、[ リソースに移動] を選択します。

  7. [ 共通トリガーで開始する] セクションで、[ HTTP 要求が受信されたとき] を選択します。

  8. トリガー エディターの下部にある [ サンプル ペイロードを使用してスキーマを生成する] を選択します。

  9. 次のサンプル ペイロードを貼り付けます。

    {
        "EventID":0,
        "EventName":"",
        "SiteCode":"",
        "ServerName":"",
        "MessageID":0,
        "Source":"",
        "EventPayload":""
    }
    
  10. [ 完了] を選択 し、[保存] を選択 します

  11. ロジック アプリの生成された URL をコピーします。 この URL は、後で Configuration Manager でサブスクリプションを作成するときに使用します。

    注:

    ロジック アプリの Azure の URL には、秘密キーが含まれています。 Configuration Managerに保存すると、他のパスワードや秘密鍵と同じように保護されます。 お使いの環境でプロキシ サーバーまたはその他のネットワーク検査デバイスを使用している場合、この URL をログに記録し、秘密キーを公開するリスクがあります。 このようなシステムへのアクセスを制御し、Azure portalでロジック アプリの秘密キーを更新する準備をします。 Azure portalで秘密キーの有効期限を設定することもできます。 詳細については、「 ロジック アプリのセキュリティ保護」を参照してください。

  12. デザイナーに新しいステップを追加するには、[ + 新しいステップ] を選択します。 Configuration Managerから通知を受け取るときに適切なアクションを選択します。 例:

    必要に応じてサインインし、アクションに必要な情報を入力します。 詳細については、Azure Logic Apps のドキュメントの 「ロジック アプリの作成 」クイック スタートを参照してください。

通知スキーマ

これらの通知では、次の標準化されたスキーマが使用されます。

{
    "properties": {
        "EventID": {
            "type": "integer"
        },
        "EventName": {
            "type": "string"
        },
        "EventPayload": {
            "type": "string"
        },
        "MessageID": {
            "type": "string"
        },
        "ServerName": {
            "type": "string"
        },
        "SiteCode": {
            "type": "string"
        },
        "Source": {
            "type": "string"
        }
    },
    "type": "object"
}

イベントを作成する

現在サポートされているイベントには、次の 2 種類があります。

  • サイトは、外部通知の状態フィルター 規則で指定された条件に一致するステータス メッセージを生成します。 新しいルールを作成することも、既存のルールを使用することもできます。

  • ユーザーがソフトウェア センターでアプリケーションの承認を要求します。

注:

階層では、イベントのスコープはイベントの種類によって異なります。

  • アプリケーション承認イベントは、プライマリ サイトでのみ発生します。
  • 状態フィルター規則は、 外部サービス通知イベントの作成ウィザードを使用してルールを作成するサイトに適用されます。
    • CAS に接続しているときにウィザードを実行してイベントを作成すると、CAS からの一致イベントでのみトリガーされます。
    • 子プライマリ サイトによって発生するイベントをサブスクライブするには、プライマリ サイトに接続します。 通知サブスクリプションを変更して、子プライマリ サイトの新しい状態フィルター規則を作成します。

イベントを作成するには、次のプロセスを使用します。

  1. Configuration Manager コンソールで、階層の最上位サイトに接続します。 このサイトは、スタンドアロン プライマリ サイトまたは CAS のいずれかです。

  2. [監視] ワークスペースに移動し、[アラート] を展開し、[外部サービス通知] ノードを選択します。

  3. リボンで、[サブスクリプションの 作成] を選択します。

  4. [新しいサブスクリプション] ウィンドウで、サブスクリプションの名前を指定して、Configuration Manager コンソールでサブスクリプションを識別します。 最大長は 254 文字です。 必要に応じて 、[説明] を追加します。

  5. [ 外部サービス URL] の値に、以前にコピーした Azure Logic App の URL を貼り付けます。

  6. サブスクリプションに新しいイベントを追加するには、ゴールドのアスタリスク を選択します。

    1. [外部サービス通知イベントの作成] ウィザードの [イベントの種類] ページで、次のいずれかのイベントの種類を選択します。

      • 新しい状態フィルター 規則: このイベントに使用する新しい状態フィルター 規則を作成します。 状態フィルター規則の名前を指定し、フィルター条件を構成します。 ステータス メッセージ ルールの条件の詳細については、「ステータス システムを使用する」を参照してください。

        重要

        作成する状態フィルター 規則の種類には注意してください。 外部通知の場合、サイトは 5 分ごとに 300 のステータス メッセージを処理できます。 ルールでこの制限を超えるメッセージが許可されている場合、サイトにバックログが表示されます。 特定のシナリオの狭いフィルターを使用してルールを作成します。 大量のメッセージを許可する一般的なルールは避けてください。

      • 既存の状態フィルター 規則: 既に存在する外部通知に対して状態フィルター規則を再利用します。 すべての状態フィルター 規則は表示されません。このウィザードを使用して作成したルールのみが表示されます。

      • ユーザーがアプリケーション要求を送信する: アプリケーション承認要求の外部通知を送信します。

イベントの管理

サブスクリプションを作成したら、[ 外部サービス通知 ] ノードを使用して、次のアクションを実行します。

  • プロパティ: サブスクリプションの名前、説明、またはイベントを編集します。 外部サービス URL を編集することはできません。

  • 削除: サブスクリプションを削除します。

注:

階層内の任意のサイトで既存のサブスクリプションを表示および変更できます。

サブスクリプションを選択すると、発生したイベントに関する情報が詳細ウィンドウに表示されます。

イベントをトリガーする

イベントをトリガーするプロセスは、サブスクリプションの種類によって異なります。

  • 状態フィルタールールの場合は、サイト コンポーネントのイベントをトリガーします。 たとえば、Configuration Manager Service Managerを使用してコンポーネントを再起動します。

  • アプリの承認要求の場合は、ソフトウェア センターを使用して、承認が必要なアプリを要求します。 詳細については、「 ソフトウェア センターのユーザー ガイド」を参照してください。

ワークフローを監視する

Configuration Manager コンソール

バージョン 2309 以降、Azure Logic Apps が特定のイベントまたは条件に関連する通知またはアラートを生成すると、Configuration Managerこれらの通知をキャプチャして表示できるようになりました。 この統合により、Configuration Manager コンソール内で Azure Logic App 通知を直接監視できるため、重要なイベントを追跡し、適切なアクションを実行し、高いレベルの運用効率を維持するための一元的な場所が提供されます。 

この機能を使用するには、有効なMicrosoft Entra Web アプリが必要です。 管理\概要\Cloud Services\Azure Services の下に、管理サービス管理用の Azure サービスをデプロイしてください。 サービスが既にデプロイされている場合、管理者は既存の Web アプリケーションを使用して、Azure ロジック アプリから 実行の詳細 を表示できます。

詳細については、「Configuration Managerで使用するように Azure サービスを構成する」を参照してください。

次のプロセスを使用して、サブスクリプションの実行の詳細を表示します。

  1. Configuration Manager コンソールで、[監視] をクリックします。
  2. [監視] ワークスペースで、[ 外部サービス通知 ] をクリックし、目的のサブスクリプションを選択します。
  3. [ 詳細の表示] をクリックします。
  4. ダイアログ ボックスで、[Azure 環境] を選択し、ドロップダウンからテナント名をMicrosoft Entraし、Azure 管理 アカウントを使用して SignIn します。
  5. [サブスクリプション ID] を選択し、[ リソース グループ 名] と [ ワークフロー 名] を入力します。
  6. [ 実行の詳細の取得 ] ボタンをクリックして、実行の詳細を表示 します

Configuration Manager コンソールの [実行の詳細] ウィザードのスクリーンショット。

Azure Portal

5 分以内に、イベントによってロジック アプリ ワークフローがトリガーされます。 Azure portalでワークフローの状態を確認します。 ロジック アプリの [実行履歴 ] ページに移動します。

詳細については、「 実行状態の監視」、トリガー履歴の確認、Azure Logic Apps のアラートの設定に関するページを参照してください。

トラブルシューティング

このプロセスのトラブルシューティングに役立つサイト サーバー上の次のConfiguration Manager ログ ファイルを使用します。

  • ExternalNotificationsWorker.log: キューが処理され、通知が外部システムに送信されているかどうかを確認します。
  • statmgr.log: 状態フィルター規則がエラーなしで処理されているかどうかを確認します

既知の問題

ステータス フィルタールールを作成すると、Configuration Manager コンソールのサイトのステータス フィルタールールの一覧に表示されます。 ルール プロパティの [ アクション ] タブで変更を行った場合、外部通知は機能しません。

中央管理サイト (CAS) を復旧したら、サブスクリプションを削除して再作成します。

ヒント

CAS を削除する前に、子プライマリ サイトでサブスクリプションを再作成します。

Configuration Manager バージョン 2107

重要

このセクションと PowerShell スクリプトは、バージョン 2107 にのみ適用されます。 バージョン 2111 以降では、Configuration Manager コンソールを使用してイベントを作成および管理します。

バージョン 2107 のその他の前提条件

バージョン 2107 でオブジェクトConfiguration Manager作成するには、PowerShell スクリプト SetupExternalServiceNotifications.ps1を使用する必要があります。 次のスクリプト サンプルを使用して、この機能に使用する PowerShell スクリプトを適切に取得します。

$FileName = ".\SetupExternalServiceNotifications.ps1"
Invoke-WebRequest https://aka.ms/cmextnotificationscript -OutFile $FileName
(Get-Content $FileName -Raw).Replace("`n","`r`n") | Set-Content $FileName -Force
(Get-Content $FileName -Raw).TrimEnd("`r`n") | Set-Content $FileName -Force

注:

SetupExternalServiceNotifications.ps1 は Microsoft によってデジタル署名されています。 このスクリプト サンプルでは、ファイルをダウンロードし、デジタル署名を保持するために改行を修正します。

バージョン 2107 でイベントを作成する

バージョン 2107 でサポートされるイベントには、次の 2 種類があります。

  • サイトは、状態フィルター 規則で指定された条件に一致するステータス メッセージを生成します。

  • ユーザーがソフトウェア センターでアプリケーションの承認を要求します。

バージョン 2107 でステータス メッセージ イベントを作成する

  1. サイト サーバーで、 SetupExternalServiceNotifications.ps1を実行します。 サイト サーバーで実行しているので、「」と入力 y して続行します。

  2. 新しい状態フィルター 規則を作成するオプション 2 を選択します。

  3. 新しい状態フィルター規則の名前を指定します。

  4. ルールのメッセージ一致条件を選択し、一致する値を指定します。 条件を使用しないように指定 0 します。

    次の条件を使用できます。

    • ソース: クライアント、SMS プロバイダー、サイト サーバー
    • サイト コード
    • システム
    • コンポーネント
    • メッセージの種類: マイルストーン、詳細、監査
    • 重大度: 情報、警告、エラー
    • [メッセージ ID]
    • プロパティ
    • プロパティ値

    ステータス メッセージ ルールの条件の詳細については、「ステータス システムを使用する」を参照してください。

    重要

    作成する状態フィルター 規則の種類には注意してください。 外部通知の場合、サイトは 5 分ごとに 300 のステータス メッセージを処理できます。 ルールでこの制限を超えるメッセージが許可されている場合、サイトにバックログが表示されます。 特定のシナリオの狭いフィルターを使用してルールを作成します。 大量のメッセージを許可する一般的なルールは避けてください。

  5. PowerShell スクリプトを再実行します。 3オプションを選択して新しいサブスクリプションを作成します。

  6. サブスクリプションの名前と説明を指定します。 次に、Azure portalからコピーしたロジック アプリの URL を指定します。

  7. 新しい状態フィルター規則を選択します。

  8. を選択 0 してスクリプトを終了します。

バージョン 2107 でアプリ承認イベントを作成する

注:

このイベントの種類には、承認を必要とし、ユーザー コレクションにデプロイされるアプリケーションが必要です。 詳細については、「アプリケーションのデプロイ」と「アプリケーションの承認」を参照してください。

  1. サイト サーバーで、 SetupExternalServiceNotifications.ps1を実行します。 サイト サーバーで実行しているので、「」と入力 y して続行します。

  2. 3オプションを選択して新しいサブスクリプションを作成します。

  3. サブスクリプションの名前と説明を指定します。 次に、Azure portalからコピーしたロジック アプリの URL を指定します。

  4. アプリケーション要求に適したイベントを選択します。

  5. を選択 0 してスクリプトを終了します。

バージョン 2107 でサブスクリプションを削除する

サブスクリプションを削除する必要がある場合は、次のプロセスを使用します。

  1. オプション1指定してSetupExternalServiceNotifications.ps1 スクリプトを実行して、使用可能なサブスクリプションを一覧表示します。 サブスクリプション ID (整数値) を書き留めます。

  2. 管理サービスの NotificationSubscription API を使用します。 URI https://<SMSProviderFQDN>/AdminService/v1.0/NotificationSubscription/<Subscription_ID>に対して DELETE 呼び出しを行います。

    詳細については、「Configuration Managerで管理サービスを使用する方法」を参照してください。

サブスクリプションを削除すると、サイトは外部システムに通知を送信しません。

バージョン 2107 でのスクリプトの使用

SetupExternalServiceNotifications.ps1を実行すると、サイト サーバーで実行されているかどうかを検出します。

  • Y: 現在のサーバーで続行します
  • N: 使用するサイト サーバーの FQDN を指定します

スクリプトでサイト サーバーが検出されない場合は、FQDN の入力を求められます。

その後、次のアクションを使用できます。

  • 0: スキップ/続行
  • 1: 使用可能なサブスクリプションを一覧表示する
  • 2: ステータス メッセージを公開するステータス フィルター ルールを作成する
  • 3: サブスクリプションを作成します。 このオプションは、最上位サイトでのみ使用できます。

注:

このスクリプトは、バージョン 2107 以降を実行しているサイトでのみサポートされます。

次の手順

ステータス システムを使用する

アラートを構成する