DOCS
インテグレーションガイド / ServiceNow Legacy
本記事は米国PagerDuty社のサイトで公開されているインテグレーションガイドをそのまま日本語に翻訳したものです。日本語環境での動作を保証するわけではありません。原文はこちらを参照してください。
このインテグレーションは、廃止準備期間に入ったv1 REST API を使うもので、早晩利用できなくなります。最新のServiceNowインテグレーションへのアップグレードをご検討ください。v1 REST API の廃止予定に関しては次のFAQをご覧ください。 https://v2.developer.pagerduty.com/v2/docs/v1-rest-api-decommissioning-faq
Note:このガイドはServiceNow v3.2.1のインテグレーションとその以前のインテグレーション向けです。v3.5以降のバージョン以降のインテグレーションの場合は、現在のインテグレーションガイドを使用するようお勧めします。
ServiceNow Enterpriseは、エンタープライズ環境に高度な自動化とプロセスワークフローを提供する強力なサービスプラットフォームです。 この統合により、PagerDutyの堅牢なオンコール・スケジューリング、通知およびエスカレーションにより、ServiceNowのワークフローおよび発券機能を活用することができます。
ServiceNow EnterpriseとPagerDutyの間の通信は双方向でサポートされているため、インシデントを承認し、委任(別のグループに割り当て)し、どちらのシステムでも解決できます。 次のワークフローがサポートされています。
-
ユーザーはPagerDutyを通知にのみ使用します。 通知されると、彼らはServiceNowを使用してインシデントの割り当て、調査、解決を行います。
-
ユーザーはPagerDutyから通知を受け取り、PagerDutyを介して(Ackによって)インシデントの所有権を取得し、ServiceNowを使用して調査と解決を行います。
-
ユーザーはPagerDutyを使用して通知を受け取り、その後、インシデントの所有権を(Ackによって)取得し、インシデントを解決します。
ここで、これらのワークフローを視覚的に示すと下記のようになります。
このガイドは、ServiceNow Istanbul、Helsinki、Geneva、Fujiの認定を受けており、PagerDutyとあなたの環境を統合するプロセスを案内します。 ServiceNow Expressには、このほかにもさまざまなインテグレーションガイドが用意されています。
ServiceNowのインストール前の要件
アプリケーションアクセスコントロール
PagerDutyのインテグレーションを機能させるには、インストール前にServiceNowで以下の変更が必要です。この作業は、ServiceNow管理者が行う必要があります。
-
System Definition →Tables モジュールから、ユーザー(
sys_user
)テーブルのレコードを開きます。 -
ユーザーフォームからPagerDutyユーザーをプロビジョニングするアクションをサポートできるようにAllow configurationオプションを有効にします。
-
System Definition→Tablesモジュールから、グループ(
sys_user_group
)テーブルのレコードを開きます。 -
グループフォームからPagerDutyサービスとポリシーをプロビジョニングするアクションをサポートするには、 Allow configurationオプションを有効にします。
-
PagerDutyがグループのサービスおよびポリシーIDをグループレコードに書き込めるようにCan createおよびCan updateオプションを有効にします。
ServiceNowでの設定
-
ServiceNow Storeにログインし、PagerDuty Incident Resolution Platformアプリケーションを検索します。
-
アプリケーションを購入するオプションを選択します。このアプリケーションには無料です。使用しているServiceNowのバージョンで使用できる最新バージョンのアプリを選択してください。
-
ServiceNow Enterpriseアカウントに管理者としてログインします。
-
System Applications →Applications モジュールを開き、 Downloadsタブをクリックして新しいアプリケーションを表示します。
-
PagerDutyアプリケーションでInstallをクリックします。
ビューにPagerDutyフィールドを追加する
PagerDuty IDフィールドを表示する場合は、手動で追加する必要があります。 利用可能なフィールドのリストは次のとおりです。 これらのフィールドをフォームビューに追加すると、関連するPagerDutyレコードへのクイックリンクを使用することもできます。
-
User
- PagerDuty ID
-
Group
-
PagerDuty service
-
PagerDuty escalation
-
-
Incident
- PagerDuty ID
PagerDutyでの設定
REST APIキーを作成する
-
Configuration メニューから、API accessを選択します。
<li”>API accessのページでCreate New API Keyボタンをクリックします。
- ポップアップするダイアログで、キーのDescription を入力し、 API versionを選択するよう求められます。 また、キーをRead-onlyとして作成するオプションもあります。 このボックスをチェックしないままにすると、フルアクセスキーが作成されます。
バージョン管理に関する注記: API v2.0は、新しいインテグレーションがPagerDutyとの通信を容易にするように設計されています。既存のPagerDutyのインテグレーションには、API v1.0キーが必要です。
-
オプションを入力したら、Create Key<をクリックします。
-
Create Key をクリックすると、キーを表示したダイアログが表示され、前の手順で記入したオプションが確認されます。 このステップの後にはキーにアクセスできなくなるので、今すぐ必要なアプリケーションにこのキーをコピーしてください。以前に作成したキーを失くして再びアクセスする必要がある場合は、キーを削除して新しいキーを作成する必要があります。キーを正常にコピーしたら、Closeをクリックします。
ServiceNowでの設定
PagerDutyアプリケーションを設定する
-
PagerDuty→Configuration →Properties移動します。
-
上記の例に従ってPagerDutyアカウントのURLを入力し、前の手順でAPIキーに貼り付けます。 また、セキュリティキーを長い一意の文字列に変更することもお勧めします。 このキーは、すべてのwebhook URLに必要です。
-
Configuration→Test API Connectionをクリックして、統合が有効であることを検証します。すべてが正常に動作している場合は、
Connection test successful (200)
応答が必要です。
レビューすべき追加のプロパティ
-
Default PagerDuty User ID to use if auto-provisioning is disabled:アクションを実行するServiceNowユーザのPagerDutyアカウントを統合が識別できない場合に使用する有効なPagerDutyユーザIDを入力します。
-
Incident state value to use when PagerDuty resolves an incident: デフォルトのServiceNowインシデントの状態を変更した場合は、PagerDutyが関連するインシデントを解決するときにインシデントを設定する値を入力します。
-
Resolve PagerDuty incident if ServiceNow incident is assigned to a group that doesn’t exist in PagerDuty: PagerDutyインシデントがあるPagerDutyインシデントにリンクされ、ServiceNowインシデントがPagerDutyサービスを持たないグループに再割り当てされた場合、PagerDutyインシデントは解決され、ServiceNowからリンク解除されます。
-
Automatically create a PagerDuty user if one is not found matching the user’s email: ユーザーがPagerDutyで見つからない場合、統合によって自動的にServiceNowのユーザーの電子メールアドレスに基づいてユーザーがプロビジョニングされます。
-
Only assign based on an acknowledgment from PagerDuty user:有効にすると、PagerDutyで通知されたときにPagerDutyの割り当てがServiceNowで更新されます。
アサインメントグループをPagerDutyにプロビジョニングする
ServiceNowには、アサインメントグループの概念があります。PagerDutyとのインテグレーションでは、各アサインメントグループに対応するPagerDutyサービスとエスカレーションポリシーが用意されています。この統合により、新しいPagerDutyサービスとエスカレーションポリシーを迅速に生成する簡単な方法が提供されます。また、ServiceNow内の関連フィールドも入力します。
-
以下は、ServiceNowインスタンス内のすべての割り当てグループのリストです。 PagerDuty ServiceとPagerDuty escalation policyのフィールドは、リストされているグループでは空であることがわかります。
-
次に、PagerDutyにプロビジョニングする割り当てグループを選択します。 この場合、それはCAB Approvalグループです。次に、Provision PagerDuty Service リンクをクリックして、このグループをPagerDutyに展開します。
-
次に、割り当てグループが作成されることがユーザーに通知されます。 完了したら、PagerDuty serviceおよび PagerDuty escalation policyフィールドに値が入力されます。
-
最後に、対応するサービスとエスカレーションポリシーが作成されていることがわかります。このサービスには、PagerDutyとServiceNowの間の双方向同期に必要なWebHookも自動的に作成されます。webhookには、URLの共有秘密情報も含まれており、通信のセキュリティが強化されています。
PagerDutyへのユーザーのプロビジョニング
-
この統合により、ServiceNowからPagerDutyへのユーザのプロビジョニングも可能になります。 以下はServiceNowユーザーの一覧です。 PagerDuty IDフィールドに既に入力されているため、PagerDutyで既に作成されているユーザーを直接見ることができます。
-
PagerDutyにまだプロビジョニングされていないユーザーを選択します。 Provision PagerDuty Userのリンクをクリックして、PagerDutyアカウントに追加することができます。
-
次に、ユーザーがプロビジョニングされているという通知が表示されます。 完了すると、PagerDuty IDフィールドに自動的に入力されます。 ユーザーはPagerDuty内にも表示されます:
-
ユーザーにBusiness phoneフィールド、またはMobile phoneフィールドが設定されている場合、これらの設定はPagerDutyの連絡方法と通知ルールとして自動的にプロビジョニングされます。
-
また、複数のユーザーを選択するには、User画面のドロップダウンメニューからProvision PagerDuty Userオプションをクリックして、一度にプロビジョニングできます。
ServiceNowとPagerDutyが通信していることを確認する
ServiceNowのグループにインシデントを割り当てて、それらが通信していることを確認できます。 以下は、PagerDutyサービスに結びついているField Serviceグループに割り当てられたインシデントです。その後、PagerDuty内のCAVUCodeエスカレーションポリシーに再割り当てされました。
インシデントがPagerDutyで解決されると、それはServiceNowで解決され、その逆も可能です。 ServiceNowは、PagerDuty内で行われた活動のログも保持します。
よくある質問
PagerDutyのインシデントでServiceNowのインシデントが発生する可能性はありますか?
はい。 これは、Webhook URLを変更することで、PagerDuty側のサービスごとに行われます。 ServiceNowチケットを作成するPagerDutyサービスごとに、
&group=Database
をURLの最後に追加する必要があります。これは、新しく作成されたServiceNowチケットを割り当てる割り当てグループを指定します。ブラウザのURLと同様に、パーセント記号付きでエンコードされた値を使用してWebHook URLに特殊文字を定義する必要があります。たとえば、グループ名にスペースがある場合は、スペースを%20
に置き換えてください。 電子メールベースのPagerDutyサービスから作成されたServiceNowチケットは自動的に解決されません。ServiceNow EurekaのPagerDutyアップデートセットから新しいアプリケーション統合に移行することはできますか?
はい、新しいPagerDutyアプリケーションをインストールして設定した後 、
security_admin
ロールを持つServiceNowユーザーが移行を実行できます。ユーザーの名前の横にあるバナーのロックをクリックすると、
security_admin
ロールにエスカレートすることができます。 エスカレートされると、 このスクリプトはScripts – Background・モジュールを介して実行できます。 スクリプトは次の操作を実行します。-
すべてのPagerDuty統合インシデントをFujiまたはGenevaアプリケーションで使用される新しいフィールドに移行する
-
すべてのPagerDuty統合グループを新しいフィールドに移行する
-
古いPagerDutyビジネスルールを無効にする
-
古いインバウンドwebhookプロセッサを無効にする
-
古いPagerDutyアプリケーションメニューを非表示にする
-
古いインシデントフィールドとグループフィールドを無効にする
スクリプトが完了したら、管理者はインシデントおよびグループフォームのレイアウトを変更する必要があります。 無効なフィールドを削除するには、単にレイアウトを保存する必要があります。 その他の変更は必要ありません。
-
アプリの最新バージョンの新機能
バージョン3.2.1 – イスタンブール、ヘルシンキ、ジュネーブをサポート
- このバージョンは、ServiceNow Istanbulと互換性があり、認証済みです。
バージョン3.1 – ヘルシンキとジュネーブの支援
-
このバージョンは現在、ServiceNowヘルシンキと互換性があり、認定されています。
-
インバウンドHTTPプロセッサは、スクリプト化されたREST APIに変換され、ヘルシンキ認定を取得しました。 この変更の結果、PagerDuty webhookのURLを更新する必要があります。 PagerDuty → MIGRATE WEBHOOKSをクリックすると、ServiceNow割り当てグループがPagerDutyサービスにマップされている限り、手動で設定されたものを含め、必要に応じてPagerDutyウェブフックが自動的に更新されます。
-
サードパーティのPagerDutyサービス統合によって作成されたインシデントのServiceNowからのインシデント解決のサポートを追加しました。
-
インシデント解決ロジックを移行して、 イベントAPIの代わりに
incident/resolve
REST APIを使用しました 。
PagerDutyアプリをバージョン3.1にアップグレードした後、PagerDutyノートがServiceNowアクティビティストリームに表示されないのはなぜですか?
これは、Notesインポートサービスのトランスフォームマップのビジネスルールの実行を手動で有効にする必要がある、ServiceNowの新しいリリースの変更によるものです。 必要なビジネス・ルールの実行を可能にするには、次のようにします。
-
PagerDuty→Imports→Notes Import Serviceに移動し、 PagerDuty Note Importをクリックします。
-
Run business rulesにチェック・マークを付け 、Updateをクリックします。
注:このアプリケーションのバージョン3.2.1はこのオプションを自動的に有効にします。
-
ServiceNowに関連付けられたPagerDutyサービスを手動で作成できますか?
はい、PagerDutyで新しいサービスを作成し、最初の統合タイプとしてServiceNowを選択するか、既存のサービスに新しいServiceNow統合を追加することで、そうすることができます。 PagerDutyサービスIDとエスカレーションポリシーIDをServiceNowグループのPagerDutyサービスとPagerDutyエスカレーションフィールドに入力して、PagerDutyサービスとServiceNowグループを結びつける必要があります。 その後、次のようにPagerDutyサービスにServiceNow Webhookを追加します。
-
あなたのサービスに行き、 IntegrationsタブをクリックしてそこからAdd an extensionをクリックします。
-
Extension Typeで Generic Webhookを選択し、 nameを入力してからPagerDutyコネクタパブリックページ用のWebhook URLを入力します。使用するアプリケーションのバージョンによって異なります。アプリバージョン3.1以降:
https://<subdomain>.service-now.com/api/x_pd_integration/pagerduty2sn?webhook_key=<your secret key>
アプリバージョン3.0以前:
https://<subdomain>.service-now.com/x_pd_integration_pagerduty2sn.do?webhook_key=<your secret key>
<subdomain>
と<your secret key>
はServiceNowのPagerDuty Propertiesページの ServiceNowサブドメインと秘密鍵で置き換えてください。 -
Saveボタンをクリックします 。
-