PagerDuty統合ウォークスルー

PagerDutyインシデントをトリガーできるように、Oracle Cloud Infrastructure NotificationsをPagerDutyと統合する方法について学習します。

PagerDutyエンドポイントの作成

この手順を完了するには、PagerDutyにマネージャ、管理、グローバル管理者またはアカウント所有者ベース・ロールのいずれかのロールが必要です。

  1. PagerDutyに移動します。
  2. 「構成」メニューから、「サービス」を選択します。
  3. 「サービス」ページで、次の手順を実行します。
    1. 統合用のサービスを作成する場合は、+Add「新規サービス」をクリックします。
    2. 既存のサービスに統合を追加する場合は、統合を追加するサービスの名前をクリックします。次に、「統合」タブを選択し、+New「統合」ボタンをクリックします。
  4. 「統合名」monitoring-tool-service-nameの形式で入力します。

    統合用のサービスを作成する場合は、「インシデント設定」で、新しいサービスの「エスカレーション・ポリシー」「通知緊急度」および「インシデント動作」を指定します。

  5. 次のオプションに基づいて、「統合タイプ」メニューから優先エンドポイント・タイプを選択します:
    • Oracle Cloud Infrastructure Monitoring: アラームによって(アラーム・メッセージ形式を使用して)メッセージのみをパブリッシュする場合。このエンドポイント・タイプの場合、PagerDutyはメッセージ形式に従って応答します。

      • 汎用メッセージ形式を使用するメッセージは無視されます。たとえば、イベント・ルールによって、このサブスクリプションを含むトピックへのメッセージの公開がトリガーされた場合や、通知サービスを使用してトピックにメッセージを直接公開した場合、PagerDutyインシデントは作成されません。
      • アラームメッセージ形式を使用するメッセージが処理されます。たとえば、アラームによってトピックへのメッセージの公開(アラーム・メッセージ形式)がトリガーされると、PagerDutyインシデントが作成されます。
    • カスタム・イベント・トランスフォーマ: メッセージがイベント・ルール、アラーム、コネクタ、コンソールのお知らせまたはダイレクト・パブリケーションからのものかどうかにかかわらず、PagerDutyインシデントを生成する場合。このエンドポイントに送信されるメッセージは、一般的なメッセージ形式に従います。

      カスタム・イベント・トランスフォーマの詳細は、PagerDutyドキュメントを参照してください。

  6. 「サービスの追加」または「統合の追加」ボタンをクリックして、新しい統合を保存します。
    サービスの「統合」ページにリダイレクトされます。
  7. 新しい統合の統合キーおよび統合URLをコピーし、後で使用するために安全な場所に保管します。

    PagerDuty統合キーおよび統合URLの例(このドキュメントが公開された時点):

    PagerDuty統合キーおよび統合URL。
    これで、通知でPagerDutyサブスクリプションを作成するために必要な統合キーが作成されました。

PagerDutyサブスクリプションの作成

この手順を完了するには、通知へのアクセス権と、トピックおよびサブスクリプションを作成する権限が必要です。通知の保護(IAMポリシー)を参照してください。

  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします「アプリケーション統合」で、「通知」をクリックします。
  2. 「リスト範囲」で、作業する権限があるコンパートメントを選択します。
    ページが更新されて、そのコンパートメント内のリソースのみが表示されます。使用するコンパートメントがわからない場合は、管理者に連絡してください。
  3. サブスクリプションを追加するトピックの名前をクリックします。
  4. トピックの詳細ページで、「サブスクリプションの作成」をクリックします。
    「サブスクリプションの作成」パネルが表示されます。
  5. 「プロトコル」で、PagerDutyを選択します。

    「URL」フィールドに、統合キーを追加するためのスペースが表示されます。

    PagerDutyエンドポイントの統合キー・セクション。
    • プロトコル: 「PagerDuty」を選択します。

    • URL:

      PagerDutyサブスクリプションのURLの統合キー部分を入力(またはコピーして貼り付けます)します。この部分は、PagerDutyエンドポイントです。(URLの他の部分はハードコードされています。)

  6. 「作成」をクリックします。

    PagerDutyサブスクリプションが作成されました。確認を受信するまで「保留」ステータスのままになります。

  7. 新しいPagerDutyサブスクリプションを確認します。
    1. PagerDutyに移動します。
    2. 「Oracle通知サービス・サブスクリプション確認」というタイトルのインシデントにアクセスします。
    3. 確認URL」リンクをクリックします。

    確認インシデントの例(このドキュメントが公開された時点):

    PagerDutyでの確認インシデントの例。
    PagerDutyエンドポイントを参照する確認済のサブスクリプションがあるので、親トピックにメッセージを直接公開することで統合をテストできます。

PagerDutyサブスクリプションのテスト(直接公開)

この手順を完了するには、通知へのアクセス権およびメッセージを公開する権限が必要です。通知の保護(IAMポリシー)を参照してください。

    1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします「アプリケーション統合」で、「通知」をクリックします。
    2. 「リスト範囲」で、作業する権限があるコンパートメントを選択します。
      ページが更新されて、そのコンパートメント内のリソースのみが表示されます。使用するコンパートメントがわからない場合は、管理者に連絡してください。
    3. 目的のトピックの「トピック」ページで、「アクション」メニュー(アクション・メニュー)をクリックし、「メッセージ公開」をクリックします。
      「メッセージの公開」ダイアログ・ボックスが表示されます。
    4. 「メッセージの公開」ダイアログ・ボックスで、統合タイプに必要な項目を入力します。
      • 「カスタム・イベント・トランスフォーマ」に、「メッセージ」および「タイトル」を入力します。

        メッセージの例: 「最適ではない使用率が検出されました。アプリケーションまたはプロセスでCPUが通常よりも多く消費される場合があります。」

        タイトル例: 「非最適アラーム」

      • Oracle Cloud Infrastructure Monitoringの場合は、severity (文字列、必須)のキーと値のペアを含むJSON BLOBを含むメッセージと、title (文字列)、body (文字列)およびalarmMetaData (JSON BLOBまたは配列)の1つ以上を入力します。

        JSON blobの例:
        {
          "title": "my test alarm",
          "body": "my test body",
          "severity": "warning",
          "alarmMetaData": {
            "key1": "value1",
            "key2": "value2"
          }
        }

        severity値は、テスト用に柔軟です。本番環境では、PagerDutyでサポートされている値(criticalerrorwarninginfoなど)を使用します。

    5. 「パブリッシュ」をクリックします。

      メッセージの内容を含むPagerDutyインシデントがトリガーされます。

      トリガーされたPagerDutyインシデントの例(このドキュメントが公開された時点):

      トリガーされたPagerDutyインシデントの例。

      トリガーされたPagerDutyインシデントの内容の例(このドキュメントが公開された時点):

      トリガーされたPagerDutyインシデントのコンテンツの例。

      メッセージを直接公開すると、PagerDutyインシデントがトリガーされることを確認しました。次に、新しいサブスクリプションを使用して、アラーム、イベントおよびコネクタからPagerDutyインシデントをトリガーします。

      ノート

      PagerDutyサブスクリプションのエンドポイントURLまたはその他の詳細を確認するには、サブスクリプションの詳細の取得を参照してください。公開されたメッセージに関連するトラブルシューティング情報は、メッセージを受信していないを参照してください。
  • メッセージをトピックに公開するには、oci ons message publishコマンドおよび必須パラメータを使用します:

    oci ons message publish --body <message_text> --topic-id <topic_OCID>

    CLIコマンドのパラメータおよび値の完全なリストは、通知のコマンドライン・リファレンスを参照してください。

  • PublishMessage操作を実行して、トピックにメッセージをパブリッシュします。

    カスタム・イベント・トランスフォーマ・タイプのPagerDutyエンドポイントのリクエストの例:

    POST /20181201/topics/<topic_OCID>/messages
    Host: <topic API endpoint>
    <authorization and other headers>
    {
      "title": "Non-Optimal Alarm",
      "body": "Non-optimal utilization detected. An application or process may be consuming more CPU than usual."
    }

PagerDutyインシデントのトリガー

「通知」のサブスクリプションを使用して、アラーム、イベント、コネクタまたはお知らせサブスクリプションからPagerDutyのインシデントをトリガーします。

アラーム、イベント・ルール、コネクタまたはお知らせサブスクリプションを作成する場合は、PagerDutyサブスクリプションを含む「通知」トピックを選択します。これらのリソースを作成する手順は、次のドキュメントを参照してください。

ノート

PagerDutyサブスクリプションのエンドポイントURLまたはその他の詳細を確認するには、サブスクリプションの詳細の取得を参照してください。