主要インシデント管理の自動化

問題点

P1およびP2チケットの重大インシデント管理は、迅速なコミュニケーション、根本原因の割り当て、複数チームへの一貫した更新を必要とする複雑で時間に敏感なプロセスです。 これらのタスクを手作業で処理することは、遅延や誤解、運用負担の増加をもたらし、応答時間と解決効率に悪影響を及ぼします。 Without automation, coordinating team efforts and ensuring timely updates in IT service management (ITSM) platforms like ServiceNow becomes cumbersome and prone to errors, leading to extended downtime and reduced productivity.

ソリューション

Nexthink provides a step-by-step approach to automating major incident management (MIM) for P1 and P2 tickets by integrating with an ITSM solution such as ServiceNow. MIMチームメンバーへの通知、解決チームへの根本原因の割り当て、関連する詳細でServiceNowを更新するなどの重要なタスクを自動化することで、この統合は運用を効率化し、手作業の手間を削減し、チームの調整を強化します。 While this guide focuses on ServiceNow, it serves as an example and can inspire similar integrations with other IT service management (ITSM) tools.

前提条件

ServiceNowとWorkflowsの統合を開始する前に、以下のものを用意してください:

  • Nexthinkライセンス

  • Nexthinkと統合されたServiceNow

  • 管理者権限

統合フロー

このフローは、P1またはP2チケットに関する即時通知と根本原因の特定を促進するため、MIM通知プロセスの最初の部分を自動化します。

Step 1: Create a ticket

優先度P1またはP2のチケットを作成するには:

  1. SNOW Flow DesignerでFlow Designerに移動します。

  2. 「新規作成」をクリックして、「Flow」を選択します。

  1. 「Flowプロパティ」で関連プロパティを入力し、「Submit」をクリックします。

  1. Flow Designerでフローのトリガーを定義します。

Step 2: Retrieve MIM group members and devices

Once the P1 or P2 ticket is created, ServiceNow retrieves MIM group members from Active Directory (AD) via Lightweight Directory Access Protocol (LDAP) synchronization, checks the Configuration Management Database (CMDB) for assigned devices, and gathers the necessary resources.

MIMグループメンバーを取得するには:

  1. SNOW Flow DesignerでFlow Designerに移動します。

  2. 「新規作成」をクリックし、「Action」を選択します。

  1. 「Actionプロパティ」で関連プロパティを入力し、「Submit」をクリックします。

  1. Click the + (plus) icon to create a script to retrieve the users from the group, and their devices.

スクリプト例:

(function execute(inputs, outputs) {
   var deviceList = [];
   var j=0;
   for (i=0; i<8; i++){
		deviceList[i] = "empty"
	}
	// Get the users from the group
	var gr = new GlideRecord('sys_user_grmember');
	gr.addEncodedQuery('group=4dcd9658870c465029c687f60cbb356e');
	gr.query();
	while(gr.next()) {
		// Get the computers from the users
		var gr2 = new GlideRecord('cmdb_ci_computer');
		gr2.addQuery('assigned_to',gr.user);
		gr2.addQuery("u_testing_usage","false");
		gr2.addActiveQuery();
		gr2.query();
		while(gr2.next())
		{
			deviceList[j]= gr2.name;
			j++;
		}        
	}			
	// Get the specified count and time frame in seconds
	var specifiedCount = 2;
	var timeFrameSeconds = 120;

	// Get the current date and time in UTC format
	var now = new GlideDateTime();

	// Create a new GlideDateTime for the time frame limit (120 seconds ago)
	var timeFrameLimit = new GlideDateTime();
	timeFrameLimit.addSeconds(-timeFrameSeconds);

	// Query for P1 and P2 incidents created within the time frame
	var incidentGr = new GlideRecord('incident');
	var q1 = incidentGr.addQuery('sys_created_on', '>=', timeFrameLimit);
	var q2 = incidentGr.addQuery('priority',1);
	q2.addOrCondition('priority',2);
	incidentGr.query();

	// Save the devices as the first output
	outputs.device...

上記のスクリプトはユーザーデバイスのリストを配列に保存します。 この配列はスクリプトの「出力変数」セクションで出力として設定されます。 さらに、インシデントのSys IDも別の出力として保存されます。

Step 3: Generate an API Authentication token

NexthinkとのAPIトランザクションに必要なトークンを取得するため、以下のフィールドを入力してRESTステップを作成します:

  • 接続: 直接接続を定義します。

  • ベースURL: https://<instancename>.api.<location>.nexthink.cloud

  • リソースパス: /api/v1/token

  • HTTPメソッド: POST

  • ヘッダー:

    • 認証: 基本 <Base64エンコードされたclientId:clientSecret>

    • この値を取得するには、clientId:clientSecretをBase64形式でエンコードしてください。

  • 右上のアイコンをクリックしてフィールドを保存します。

Step 4: Send device information to Nexthink API

ServiceNowはCMDBからデバイス名を取得し、Nexthink APIにデータを送り、そのデバイスに関連付けられたCollector IDをNexthinkから取得します。 その後、この情報をServiceNowに返送してチケットを更新します。

以下のフィールドで二番目のRESTステップを作成します:

  • 接続: 直接接続を定義します。

  • ベースURL:https://<instancename>.api.<location>.nexthink.cloud

  • リソースパス:/api/v2/nql/execute

  • HTTPメソッド: POST

  • ヘッダー:

    • 受け入れ: application/json,text/csv

    • 認証:

      • Use the Data Picker—click on the icon next to the field—and select 2 – Rest Step > Response Body.

      • 以下のフィルターを適用するには「Fx」アイコンをクリックしてください:

        1. 文字列 > 分割

          • 区切り記号: "access_token":

        2. ユーティリティ > 配列から最後のアイテムを取得

        3. 文字列 > 分割

          • 区切り記号: ","scope"

        4. ユーティリティ > 配列から最初のアイテムを取得

    • コンテンツタイプ: application/json

  • リクエストコンテンツ: Nexthink APIのクエリ実行に必要な本体コンテンツを追加します(例: NQLクエリ、その他)。

リクエストボディの例:

{
"queryId": "<#yourqueryId>",
"parameters":{
"device0": "(here use the data picker to select 1 - Script Step > devices and apply the filter Get Item from Array with the value 0)",
"device1": "(here use the data picker to select 1 - Script Step > devices and apply the filter Get Item from Array with the value 1)",
"device2": "(here use the data picker to select 1 - Script Step > devices and apply the filter Get Item from Array with the value 2)",
"device3": "(here use the data picker to select 1 - Script Step > devices and apply the filter Get Item from Array with the value 3)",
"device4": "(here use the data picker to select 1 - Script Step > devices and apply the filter Get Item from Array with the value 4)",
"device5": "(here use the data picker to select 1 - Script Step > devices and apply the filter Get Item from Array with the value 5)",
"device6": "(here use the data picker to select 1 - Script Step > devices and apply the filter Get Item from Array with the value 6)",
"device7": "(here use the data picker to select 1 - Script Step > devices and apply the filter Get Item from Array with the value 7)",
}

NexthinkでデバイスのCollector UID一覧を取得するためのNQL APIクエリを実行します。 以下のNQLクエリコードを使用します:

devices during past 7d
| where device.name in [$device0,$device1,$device2,$device3,$device4,$device5,$device6,$device7]
| list collector.uid

Step 5: Trigger the Nexthink MIM workflow

Once ServiceNow (SNOW) retrieves the Collector IDs of the devices belonging to MIM team members, the system triggers the Nexthink MIM workflow by sending this data through the workflow API.

以下のフィールドで新しいRESTステップを作成します:

  • 接続: 直接接続を定義します。

  • ベースURL: https://<instancename>.api.<location>.nexthink.cloud

  • リソースパス:/api/v2/nql/execute

  • HTTPメソッド: POST

  • ヘッダー:

    • 受け入れ: application/json,text/csv

    • 認証:

      • Use the Data Picker—click on the icon next to the field—and select 2 – Rest Step > Response Body.

      • 以下のフィルターを適用します:

        1. 文字列 > 分割

          • 区切り記号: "access_token":

        2. ユーティリティ > 配列から最後のアイテムを取得

        3. 文字列 > 分割

          • 区切り記号: ","scope"

        4. ユーティリティ > 配列から最初のアイテムを取得

    • コンテンツタイプ: application/json

  • リクエストボディ: Nexthink APIリクエストに必要な本文コンテンツを追加します。

リクエストボディの例:

{
"workflowId": "<#yourworkflowId>",
"devices":[
Use the data picker to select 3 - REST Step > Response Body and apply the filter Replace String twice. The first one put “device.collector.uid” and empty as the regex and replace strings, and the second one put \”\n\” and \”, \” (This will translate the output to the collector Ids comma separated).
],
"params":[
Use the data picker to select 1 - Script Step > sysID
]
}

Step 6: Notify MIM team members

システムがフローをトリガーすると、NexthinkはMIMチームメンバーのデバイスに緊急キャンペーンを送信し、通知されすぐに問題解決行動を取れるようにします。

キャンペーンには次の内容が含まれています:

  • 一般情報: インシデントや問題に関する詳細。

  • ウォールームに参加するリンク: チームメンバーがリアルタイムで連携するために仮想ウォールームに参加するための直接リンク。

  • 応答のための2つのオプション:

    • 確認: メッセージの受領と参加の確認。

      • MIMチームメンバーが「確認」をクリックすると、Nexthinkは彼らがウォールームの通話に参加するためのリンクを使用したと見なします。 その後、システムはメンバーがP1/P2インシデントの可能性のある根本原因を選択できるキャンペーンを再度送信します。

      • MIMチームメンバーがキャンペーン内でオプションを選択すると、ワークフローは彼らの応答に基づいて条件付きチェックをトリガーします。 It then calls the ServiceNow (SNOW) API to move the initial P1/P2 ticket to the Resolving Team's queue.

  • 後でリマインダー: チームメンバーが後でリマインドされることを許可します。

    • MIMチームメンバーが「後でリマインダー」を選択すると、ワークフローは設定された時間が終了するまで待機し、初期のキャンペーンを再送信します。

    • ワークフローは、MIMチームメンバーがキャンペーンを確認するか行動を起こすまで待機し、その後チームは次のステップに進みます。

    • MIMチームメンバーが二回目の「後でリマインダー」を選択した場合、ワークフローは設定された時間が終了するまで待機し、唯一のオプションである「確認」の最終キャンペーンを送信します。

Last updated