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。
    これで、NotificationsでPagerDutyサブスクリプションを作成するために必要な統合キーが作成されました。

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

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

  1. 「トピック」リスト・ページで、「トピックの作成」を選択します。リスト・ページの検索に関するヘルプが必要な場合は、トピックのリストを参照してください。
  2. 「サブスクリプションの作成」パネルの「プロトコル」で、PagerDutyを選択します。

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

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

    • URL:

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

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

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

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

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

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

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

    1. 「トピック」リスト・ページで、操作するトピックを検索します。リスト・ページまたはトピックの検索に関するヘルプが必要な場合は、トピックのリストを参照してください。
    2. トピックの「アクション」メニュー(アクション・メニュー)から、「メッセージの公開」を選択します。
    3. 「メッセージの公開」ダイアログ・ボックスで、次のフィールドに値を入力します。統合タイプで必要な項目を入力します。
      • 「カスタム・イベント・トランスフォーマ」に、「メッセージ」および「タイトル」を入力します。

        メッセージの例: 「最適ではない使用率が検出されました。アプリケーションまたはプロセスで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など)を使用します。

    4. 「公開」を選択します。

      メッセージの内容を含む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インシデントのトリガー

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

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

ノート

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