記事
チュートリアル
インタラクティブ ガイド
Jira と Statuspage による自動インシデント管理
Kev Zettler
フル スタック Web 開発者、DevOps
Jira Automation ルールを使用して、Statuspage を Jira 課題に自動同期する方法について説明します。
所要時間
読む時間 5 分。
対象者
あなたは Jira Software の経験豊富なユーザーで、Statuspage アカウントを持っています。
前提条件
アクティブな Jira プロジェクトに加え、カスタム タスク タイプ「インシデント」とカスタム フィールド「インシデント ID」が必要です。こちらから Jira を開始してください。
ここでは、API アクセスが有効になっている Statuspage アカウントが必要です。次の自動化ルールを設定するには、Statuspage API キーとページ コードも必要です。Statuspage API キーを見つける方法については「Statuspage API ガイド」をご確認ください。こちらから Statuspage を開始してください。
ステップ 1. 自動化を追加する
[自動化を追加] ボタンをクリックして [課題] オプションを選択します。
[Issue created (課題作成時)] を検索して選択します。
[保存] をクリックして続行します。
ステップ 2. 新しい条件を作成する
次に、[課題フィールドの条件] を検索して選択します。
[課題フィールドの条件] を使用して課題タイプがインシデントであるかどうかを確認し、それに応じて対応します。[課題タイプ] フィールドが [インシデント] と等しくなるように [課題フィールドの条件] を設定します。[保存] をクリックして続行します。
ステップ 3. Web リクエストを送信する
[Web リクエストを送信] を選択します。これによって、Statuspage がアップデートされます。
[Web リクエストを送信] アクションを設定するには、Statuspage API キーとページ コードが必要です。これらの値は Statuspage のドキュメントに記載されています。[Web リクエストを送信] は、機密性の高い入力値を含む高度なアクションです。本ガイドの後半で、このアクションは追加のルールにおいて再現されて、この設定を参照します。
[Webhook URL] フィールドに、Statuspage インシデント エンドポイントの URL を入力します。
https://api.StatusPage.io/v1/pages/your-page-code/incidents
自分のページ コードのプレースホルダーを Statuspage ページ コードに置き換えます。ヘッダー セクションで、2 つのヘッダー フィールドに Authorization:OAuth と API キーを入力します。
[HTTP メソッド] を POST に、[Webhook body (Webhook 本文)] をカスタム データに設定します。
追加のコンポーネントで Web リクエスト レスポンスの値を使用するため、[応答を待機] チェック ボックスを必オンにしてください。
[カスタム データ] フィールドには、Statuspage API のインシデント ペイロードを定義するコードが含まれています。このコードはスマート値を使用して課題の要約を抽出し、ペイロードに追加します。次のスクリーンショットは、[Web リクエストを送信] アクションの完全な設定を示しています。[保存] をクリックして続行します。
ステップ 4. [課題を編集] アクションを作成する
最後に、[課題を編集] アクションを検索して選択します。
[課題を編集] アクションは、Statuspage リクエストからインシデント ID を抽出してインシデント ID カスタム フィールドに保管します。インシデント ID は、スマート値を使用して抽出されます。次のスクリーンショットは、この [課題を編集] コンポーネントを設定する方法を示しています。
次のスクリーンショットは、このルールの最終的な要約を示しています。
これで、このルールを有効にする準備が整いました。このルールの名前を入力して [オンにする] をクリックします。このルールのデータは、次のルールを作成するために使用されます。
課題にコメントされた際に Statuspage をアップデートする
次のルールは、「インシデント」の課題タイプにコメントが残されたときにトリガーします。Statuspage に対して Web リクエストが行われて、対応するインシデントがコメントの内容とともにアップデートされます。次の図は、このルールのコンポーネントに関する要約を示しています。
このルールで確認する重要なコンポーネントは [Web リクエストを送信] アクションです。このアクションは以前のルールからコピーされていますが、いくつかの変更が加えられています。
Webhook URL が /{{issue.incident_id}} とともに追加されました。スマート値は、課題からインシデント ID カスタム フィールドをプルして、Web リクエストのターゲットとして Statuspage に渡すために使用されます。
これで、[HTTP メソッド] が POST ではなく PATCH に設定されました。これによって、新しいインシデントを作成するのではなく、既存のインシデントをアップデートするように Statuspage に指示します。
[カスタム データ] フィールドが変更されて、スマート値を使用したコードを含むようになりました。このコードは、課題からコメント本文を抽出して、インシデントのコンテンツ本文に配置します。
課題が完了にトランジションした際に Statuspage インシデントを閉じる
最後のルールは、これまでのルールをすべて結び付ける内容です。このルールは、対応する Jira 課題が完了に移動した際に、インシデントが解決済みであることを Statuspage に伝えます。次の図は、ルールの要約を示しています。
Web リクエスト コンポーネントは、先行するルールから再度コピーされて変更されています。
[カスタム データ] フィールドが変更されて、インシデントのステータスが「解決済み」に設定されました。これが、以前のコメント ルールからの唯一の変更点です。
これで、これらのルールを使用する準備が整いました。インシデント タイプの課題を作成して上記の操作のトリガーを実行することで、ルールをテストできます。ルールの動作は、自動化監査ログで監視できます。このログでは、ルールの動作に関するログと情報が提供されます。本ガイドで説明した自動化ルールは、高度な Web リクエスト API 使用ルールの優れた一例です。
Automation テンプレート ライブラリにはその他の何百もの例が記載されているので、ご確認ください。
この記事を共有する
次のトピック
おすすめコンテンツ
次のリソースをブックマークして、DevOps チームのタイプに関する詳細や、アトラシアンの DevOps についての継続的な更新をご覧ください。