• 使用を開始する
  • 関連ドキュメント

Opsgenie を Jira と統合する

Opsgenie が Jira ユーザーに提供するもの

Opsgenie には、Opsgenie と Jira の双方向のインテグレーションを可能にする特定の更新セットがあります。インテグレーションを使用して、Jira に詳細情報と共に問題を Opsgenie に送信させます。Opsgenie はアラートを問題として Jira に転送します。Opsgenie は、オンコール スケジュールに基づいて通知する適切な担当者を決定します。メール、テキスト メッセージ (SMS)、電話、iOS、Android のプッシュ通知によって通知し、アラートが確認されるかクローズされるまでアラートをエスカレートします。

Opsgenie は、Jira On-Premise ユーザーが Opsgenie アラートを Jira に送信するための OEC ソリューションを提供します。詳細については、Jira でのアラートからの問題の作成のブログ投稿を参照してください。

統合の機能性

  • Jira で問題が作成または再オープンされると、インテグレーションによって Opsgenie でアラートが自動で作成されます。

  • Jira で問題が解決、クローズ、または修正されると、Opsgenie で関連するアラートが自動的にクローズされます。

  • Jira の問題にコメントが追加されると、Opsgenie の関連アラートにメモが追加されます。

  • [アラート更新を Jira に返送する] が有効な場合、Jira インテグレーションで作成されたアラートに対して選択したアクションが Opsgenie で実行されると、Jira のアクションが Jira で実行されます。

  • [Opsgenie アラート用の Jira の問題を作成する] が有効になっている場合、Jira 以外のソースを持つアラートに対して選択したアクションが Opsgenie で実行されると、Jira のアクションが Jira で実行されます。

  • このアクション マッピング機能の詳細については、以下の「アクション マッピング機能」セクションで説明します。

Opsgenie で Jira インテグレーションを追加する

Opsgenie の Free プランまたは Essentials プランを使用している、または Jira Service Management の Standard プランで Opsgenie を使用している場合は、チーム ダッシュボードからのみこの統合を追加できます。このプランでは、[設定] の [統合] ページが利用できません。

  1. [チーム] に移動して自分のチームを選択します。

  2. 左側のナビゲーションで [統合] を選択し、[統合を追加] を選択します。

統合をチーム ダッシュボードから追加すると、そのチーム統合の所有者になります。Opsgenie では、この統合を通じて受信したアラートはそのチームのみに割り当てられます。このセクションの残りの手順に従って、統合を設定してください。

  1. [設定] > [統合] の順に移動します。Jira を検索して [追加] を選択します。 

  2. 統合設定で、[応答者] フィールドによって Jira アラートの通知先を指定します。入力し始めると、オートコンプリートの候補が表示されます。

  3. Opsgenie エンドポイントと API キーを含むインテグレーション URL をコピーします。

  4. [Save Integration (統合の保存)] を選択します。

Jira における設定

1. Jira に管理者としてログインします。

2. ダッシュボードから [管理] メニューを開きます。[システム] を選択します。

3. 左側の [詳細設定] の下の [Webhook] を選択します。

4. [Webhook の作成] をクリックします。開いたセクションで、Opsgenie の Jira インテグレーションによって提供された URL を URL 入力に貼り付けます。[作成] をクリックします。

Webhook が設定されたので、問題に変更が加えられたときに、Jira が Opsgenie に通知します。その後、Opsgenie はアラートを作成し、追跡します。

SSO の使用

SSO によって Jira にログインする場合は、API トークンを生成して統合設定のパスワードとして使用する必要があります。Jira で API トークンを生成する方法については「Atlassian アカウントの API トークンを管理する」をご参照ください。

新しいトークンを生成したら、Opsgenie の Jira 統合の [パスワード] フィールドにコピー & ペーストします。その後、統合を保存します。

 

アクション マッピング機能

  • Opsgenie では、ユーザーは Opsgenie と Jira の各アクション間のアクション マッピングを定義できます。

  • アクション マッピング機能を使用するには、以下に示す統合にいくつかの情報を提供します。

  • 問題タイプ: Jira で定義されている問題タイプ。例: タスク、バグ、またはその他のカスタム定義タイプ。問題タイプの構文には、エラーがないように記述してください。

  • URL: Jira のドメイン名。例: https://testops.atlassian.net

  • ユーザー名: Jira へのログインに使用するメール アドレス。

  • パスワード / APIトークン: Jira へのログインに使用するパスワードまたは API トークン。

  • プロジェクト キー: アラートを作成するプロジェクトのキー。例: OT、OPS、SIT。プロジェクト キーは通常大文字ですので、正しい形式で記述してください。

Jira で作成されたアラートの場合

  • このセクションを使用して、アラートのソースが Jira である場合に Opsgenie のアクションを Jira のアクションにマッピングします (アラートが Jira インテグレーションによって作成された場合)。

  • 異なる Opsgenie アクションを別々の Jira アクションにマップします。たとえば、アラートが確認されたときに、Jira の問題にコメントを追加します。これを行うために、アラートが Opsgenie で確認された場合はコメントとして Jira の問題に追加します。マッピングは、 アラート更新を送信する Jira セクションに戻ります

Opsgenie アラートで Jira の問題を作成するためのルールを示す Opsgenie のスクリーンショット。

Opsgenie のその他のアラートの場合

  • このセクションを使用して、アラートのソースが Jira でない場合、Opsgenie のアクションを Jira のアクションにマッピングします (アラートが別のインテグレーションによって作成された場合)。

  • このために、[Create Jira Issues for Opsgenie Alerts (Opsgenie アラート用の Jira 課題の作成)] セクションを使用します。この機能を使用するには、1 つの Opsgenie アクションを課題の作成 Jira アクションにマッピングします。Opsgenie アクションでは、アラートが作成される必要はなく、他のアクションにすることもできます。

Opsgenie アラートの問題作成ルールを示すスクリーンショット。
  • アラートにタグが追加され、他のアクションとは異なるアラート アクションに対してカスタム アクションが実行されます。これらのアクションのいずれかを選択すると、このマッピングが機能するタグまたはカスタム アクションを入力するための追加のフィールドが表示されます。

  • タグをカンマで区切って、複数のタグを入力します。複数のタグを入力した場合、マッピングは、指定されたタグが 1 つ以上アラートにある場合に機能します。タグのフィールドを空のままにすると、どのタグでもマッピングが機能します。

  • Opsgenie アクションが複数の Jira アクションにマッピングされている場合は、タグがアラートに追加されるカスタム アクションがアラートに対して実行されるの各アクションを除いて、エラーが発生します。マッピングが特定のタグとカスタム アクション名によって異なるため、これらのアクションに対する複数のマッピングを保存します。

Opsgenie Jira インテグレーションでは、問題のステータスを Jira で [進行中]、[解決済み]、[完了]、または [終了] に設定できます。ただし、プロジェクトのワークフローでトランジションが許可されていない場合、Opsgenie を使用してトランジションを設定することもできません

Jira から送信されるペイロードの例

JSON

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 { "webhookEvent": "jira:issue_created", "user": { "self": "https://ifountain.atlassian.net/rest/api/2/user?username=msener", "name": "msener", "emailAddress": "mustafa.sener@ifountain.com", "avatarUrls": { "16x16": "https://ifountain.atlassian.net/secure/useravatar?size=xsmall&avatarId=10122", "24x24": "https://ifountain.atlassian.net/secure/useravatar?size=small&avatarId=10122", "32x32": "https://ifountain.atlassian.net/secure/useravatar?size=medium&avatarId=10122", "48x48": "https://ifountain.atlassian.net/secure/useravatar?avatarId=10122" }, "displayName": "Mustafa Sener", "active": true }, "issue": { "id": "11601", "self": "https://ifountain.atlassian.net/rest/api/2/issue/11601", "key": "NAAS-155", "fields": { "summary": "test bug issuy", "progress": { "progress": 0, "total": 0 }, "timetracking": {}, "issuetype": { "self": "https://ifountain.atlassian.net/rest/api/2/issuetype/1", "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "iconUrl": "https://ifountain.atlassian.net/images/icons/issuetypes/bug.png", "name": "Bug", "subtask": false }, "timespent": null, "reporter": { "self": "https://ifountain.atlassian.net/rest/api/2/user?username=msener", "name": "msener", "emailAddress": "mustafa.reporter@ifountain.com", "avatarUrls": { "16x16": "https://ifountain.atlassian.net/secure/useravatar?size=xsmall&avatarId=10122", "24x24": "https://ifountain.atlassian.net/secure/useravatar?size=small&avatarId=10122", "32x32": "https://ifountain.atlassian.net/secure/useravatar?size=medium&avatarId=10122", "48x48": "https://ifountain.atlassian.net/secure/useravatar?avatarId=10122" }, "displayName": "Mustafa Sener", "active": true }, "created": "2014-02-12T09:59:28.107-0500", "updated": "2014-02-12T09:59:28.107-0500", "priority": { "self": "https://ifountain.atlassian.net/rest/api/2/priority/3", "iconUrl": "https://ifountain.atlassian.net/images/icons/priorities/major.png", "name": "Major", "id": "3" }, "description": "test deskriptin", "issuelinks": [], "customfield_10000": "126", "status": { "self": "https://ifountain.atlassian.net/rest/api/2/status/1", "description": "The issue is open and ready for the assignee to start work on it.", "iconUrl": "https://ifountain.atlassian.net/images/icons/statuses/open.png", "name": "Open", "id": "1", "statusCategory": { "self": "https://ifountain.atlassian.net/rest/api/2/statuscategory/2", "id": 2, "key": "new", "colorName": "blue-gray", "name": "New" } }, "labels": [ "label2", "label3", "label1" ], "workratio": -1, "project": { "self": "https://ifountain.atlassian.net/rest/api/2/project/10100", "id": "10100", "key": "NAAS", "name": "Nofications as a Service", "avatarUrls": { "16x16": "https://ifountain.atlassian.net/secure/projectavatar?size=xsmall&pid=10100&avatarId=10011", "24x24": "https://ifountain.atlassian.net/secure/projectavatar?size=small&pid=10100&avatarId=10011", "32x32": "https://ifountain.atlassian.net/secure/projectavatar?size=medium&pid=10100&avatarId=10011", "48x48": "https://ifountain.atlassian.net/secure/projectavatar?pid=10100&avatarId=10011" } }, "environment": "env", "lastViewed": null, "components": [ { "self": "https://ifountain.atlassian.net/rest/api/2/component/10006", "id": "10006", "name": "Admin Web Application" }, { "self": "https://ifountain.atlassian.net/rest/api/2/component/10000", "id": "10000", "name": "Data Collector" }, { "self": "https://ifountain.atlassian.net/rest/api/2/component/10002", "id": "10002", "name": "Mobile App" } ], "comment": { "startAt": 0, "maxResults": 0, "total": 0, "comments": [] }, "timeoriginalestimate": null, "votes": { "self": "https://ifountain.atlassian.net/rest/api/2/issue/NAAS-155/votes", "votes": 0, "hasVoted": false }, "fixVersions": [ { "self": "https://ifountain.atlassian.net/rest/api/2/version/10000", "id": "10000", "description": "Private BETA", "name": "v0.1", "archived": false, "released": false, "releaseDate": "2012-01-31" }, { "self": "https://ifountain.atlassian.net/rest/api/2/version/10100", "id": "10100", "description": "Public Beta", "name": "v0.2", "archived": false, "released": false }, { "self": "https://ifountain.atlassian.net/rest/api/2/version/10200", "id": "10200", "description": "First release of the iPhone app", "name": "iPhone v0.1", "archived": false, "released": false, "releaseDate": "2012-04-27" } ], "resolution": null, "resolutiondate": null, "creator": { "self": "https://ifountain.atlassian.net/rest/api/2/user?username=msener", "name": "msener", "emailAddress": "mustafa.sener@ifountain.com", "avatarUrls": { "16x16": "https://ifountain.atlassian.net/secure/useravatar?size=xsmall&avatarId=10122", "24x24": "https://ifountain.atlassian.net/secure/useravatar?size=small&avatarId=10122", "32x32": "https://ifountain.atlassian.net/secure/useravatar?size=medium&avatarId=10122", "48x48": "https://ifountain.atlassian.net/secure/useravatar?avatarId=10122" }, "displayName": "Mustafa Sener", "active": true }, "duedate": "2014-02-28", "watches": { "self": "https://ifountain.atlassian.net/rest/api/2/issue/NAAS-155/watchers", "watchCount": 0, "isWatching": false }, "worklog": { "startAt": 0, "maxResults": 20, "total": 0, "worklogs": [] }, "customfield_10103": null, "customfield_10601": "Not Started", "customfield_10102": null, "customfield_10101": null, "customfield_10600": null, "customfield_10100": null, "customfield_10506": null, "assignee": { "self": "https://ifountain.atlassian.net/rest/api/2/user?username=mberkay", "name": "mberkay", "emailAddress": "mberkay.assignee@gmail.com", "avatarUrls": { "16x16": "https://ifountain.atlassian.net/secure/useravatar?size=xsmall&avatarId=10122", "24x24": "https://ifountain.atlassian.net/secure/useravatar?size=small&avatarId=10122", "32x32": "https://ifountain.atlassian.net/secure/useravatar?size=medium&avatarId=10122", "48x48": "https://ifountain.atlassian.net/secure/useravatar?avatarId=10122" }, "displayName": "Berkay M", "active": true }, "customfield_10505": null, "attachment": [], "customfield_10504": null, "customfield_10503": null, "customfield_10502": null, "customfield_10200": "110", "customfield_10501": null, "customfield_10500": null, "versions": [ { "self": "https://ifountain.atlassian.net/rest/api/2/version/10000", "id": "10000", "description": "Private BETA", "name": "v0.1", "archived": false, "released": false, "releaseDate": "2012-01-31" }, { "self": "https://ifountain.atlassian.net/rest/api/2/version/10100", "id": "10100", "description": "Public Beta", "name": "v0.2", "archived": false, "released": false }, { "self": "https://ifountain.atlassian.net/rest/api/2/version/10201", "id": "10201", "description": "Second release of the iPhone app", "name": "iPhone v0.2", "archived": false, "released": false } ], "customfield_10700": null, "customfield_10400": null, "timeestimate": null, "customfield_10300": null, "customfield_10301": null } }, "timestamp": 1392217168146 }

OEC による統合 (Jira Data Center を使用する場合)

Opsgenie の OEC と Jira Data Center スクリプトを使用して、Jira Data Center 内の課題を更新します。これにより、独自のスクリプトをデプロイしたり、提供されているスクリプトを変更したり、Jira Data Center でカスタマイズされたアクションを実行したりできます。

Jira Data Center 統合パッケージを使用するには、次のいくつかのセクションの手順を最後まで実行します。

 

OEC の最新バージョンをダウンロードする

Jira パッケージの最新バージョンをダウンロードするには、oec-scripts リポジトリの readme ファイルを使用してください。

インストール

Red Hat ベースのディストリビューションの場合

  • 次のコマンドを実行します。rpm -i opsgenie-jira-<your_version>.rpm

Debian ベースのディストリビューションの場合

  • 次のコマンドを実行します。dpkg -i opsgenie-jira-<your_version>.deb

Windows の場合

  • OEC パッケージを含む opsgenie integration の zip ファイルをディレクトリ内に解凍します (C:\opsgenie は優先パスです)。Windows に OEC をインストールするには、こちらの指示に従います。

  • OEC の実行方法について詳しくは、OEC の実行のドキュメントを参照してください。

OEC 用の Jira 統合の設定

  • Jira 統合に OEC ユーティリティを使用するには、統合設定で [Send Via OEC (OEC 経由で送信)] を有効にします。



Jira インテグレーションの OEC オプションを示すスクリーンショット。
  • Jira に関するその他の設定は、統合設定ページまたは OEC 設定ファイルを使用して行うことができます。統合ページで行われた設定は、設定ファイルよりも優先されます。

 

Jira インテグレーションの追加の OEC 設定を示すスクリーンショット。

OEC 設定

Jira でアクションを実行できるようにするには、OEC で設定ファイルから設定パラメーターを取得します。

設定パラメーター

  • apiKey — 上記で作成した Jira インテグレーションから API キーをコピーします。

  • issueTypeName – 問題のタイプ。「タスク」、「バグ」、「ストーリー」、またはカスタム問題タイプ (「エピック」はサポートされていません) があります。

  • url – 問題の作成、解決、クローズなどが行われる Jira の URL。

  • username – Jira アカウントのユーザー名。

  • password – Jira アカウントのパスワード。

  • projectKey – このプロジェクト用に問題が作成されます

また、ダウンロードしたパッケージには、/usr/local/bin にある OEC ユーティリティと、/home/opsgenie/oec/scripts にある OEC によって実行する必要があるスクリプトが含まれています。OEC の設定が完了したら、OEC を実行する必要があります。OEC を実行する方法に関する詳細については、OEC の実行のドキュメントをご参照ください。

OEC に送信されるパラメーターの例

JSON

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 { "summary":"test", "issueTypeName":"Task", "integrationName":"JIRA", "sendViaOEC":true, "description":"this is a test", "integrationId":"3af28c92-b71c-459c-8d72-04a6f7f7ebac", "url":"https://jiratestopsgenie.atlassian.net", "password":"******", "projectKey":"OPSGENIE", "integrationType":"Jira", "customerId":"04912a27-5fc1-4145-a6dd-8819afc0d870", "alias":"c570a4cc-3f57-4b60-814e-f04c63e7442d", "action":"Create", "alertId":"c570a4cc-3f57-4b60-814e-f04c63e7442d", "key":null, "mappedAction":"createIssue", "username":"jiratest@opsgenie.com" }

トラブルシューティング

  1. Jira で問題を作成するために必須のカスタム フィールドが設定されている場合、Opsgenie アラートから Jira の問題を作成することはできません。ただし、OEC を使用してスクリプトを設定することで、Jira チケットを作成できます。

  2. アラートに対してアクションを実行しても問題にコメントを追加できない場合は、まず [ログ] ページを参照してください。URL に問題キーが含まれていない場合は、そのアラートから入力された Jira に問題がないことを意味します。したがって、存在しない問題にはコメントを追加できません。

  3. Opsgenie の Jira インテグレーションにより、ユーザーは Jira で問題のステータスを [進行中]、[解決済み]、[完了]、または [クローズ] に設定できます。ただし、プロジェクトのワークフローでトランジションが許可されていない場合、Opsgenie を使用してトランジションを設定することもできません

Opsgenie は、トランザクション名の大文字と小文字を区別してチェックします。Jira のトランザクション名はまったく同じはである必要があります (つまり、進行中解決済み完了クローズ)。

4. Jira は ASCII 以外の文字をサポートしていません。ペイロードで ASCII 以外の文字を Jira に送信すると、「400 不正なリクエスト エラー」が発生する可能性があります。

5. Jira 統合がチームに割り当てられている場合、Opsgenie で作成されたアラートから Jira で課題を作成するには、他の統合も同じチームに割り当てる必要があります。そうでなければ、Jira 統合と他の Opsgenie 統合の両方にチームを割り当てないでください。



さらにヘルプが必要ですか?

アトラシアン コミュニティをご利用ください。