はじめに
Instanaでは、アラートの発生時に任意の宛先にアラート通知を連携することが可能です。
本記事では、ITSMツールである Jira Service Management(以降Jira) にアラート通知してチケットを作成する方法をご紹介します。
執筆時点で最新のバージョンである 1.0.305
をベースにしています。
ドキュメントはこちら
https://www.ibm.com/docs/ja/instana-observability/1.0.305?topic=alerts-setting-up-alert-channels
連携可能なツールの確認
現時点でネイティブ連携(InstanaのUIで個別の設定画面が設けられているもの)できるものだと下記となります。
テクノロジー | 詳細 |
---|---|
E メール | リンク |
Google Chat | リンク |
IBM Watson AIOps | リンク |
IBM Z ChatOps (パブリック・プレビュー) | リンク |
Microsoft Teams | リンク |
Office 365 | リンク |
Opsgenie | リンク |
PagerDuty | リンク |
Prometheus | リンク |
Salesforce (パブリック・プレビュー) | リンク |
Slack | リンク |
Slackアプリ(パブリック・プレビュー) | リンク |
ServiceNow (パブリック・プレビュー) | リンク |
ServiceNow ITSMアプリ(パブリックプレビュー) | リンク |
Splunk | リンク |
VictorOps | リンク |
Webex Teams | リンク |
上記以外の場合は汎用Webhookを使って連携します。
例えばJiraなどのツールとの連携は汎用Webhookを使う形です。
Jiraの準備
今回はFreeプランで環境を作成し、標準で用意されている 一般的なサービス管理 のテンプレートを使ってプロジェクトを作成しています。
https://www.atlassian.com/ja/software/jira/service-management/pricing
プロジェクトが用意できたら、 設定 > システム をクリックします。
Jira管理者設定の画面が表示されたら左のメニューから、自動化 > グローバル自動化 > ルールを作成 > 最初から作成 をクリックします。
トリガーを追加 で「webhook」と入力して Webhook受信時 を探して指定します。
次に、コンポーネントを追加 で その場合: アクションを追加する をクリックします。
「作業項目を作成」と入力して 作業項目を作成 を探して指定します。
作成に必要な情報を入力していきましょう。
Jiraでは、Webhookで受け取ったデータは{{webhookData.XX}}
でアクセス可能です。
XX
の部分はInstanaのドキュメントにサンプルのJSONが記載されているので参考にしながらデータにアクセスしましょう。
プロジェクトには、対象となるJiraのプロジェクトを選択します。
サンプルプロジェクト
課題タイプには、今回はインシデントを選択します。
[System] Incident
要約には、Instanaで作成されたデータを指定します。
{{webhookData.issue.text}}
説明には、複数のデータを組み合わせて指定してみます。
ID : {{webhookData.issue.id}}
タイプ : {{webhookData.issue.type}}
優先度 : {{webhookData.issue.severity}}
URL : {{webhookData.issue.link}}
ほげほげ
入力が終わったら、ルールをオンにする をクリックし、ルール名を指定して保存しましょう。
「ルールがオンになりました」となると、Webhookの設定に必要な情報が見える様になります。
Webhook受信時をクリックして、URLとシークレットを確認します。
両方とも後ほどInstanaの画面で指定するので、メモ帳に控えておきましょう。
また、作業項目の基準は Webhookからの作業項目がない に変更します。
以上でJira側の設定は完了です。
Instanaの準備
Instanaにログインし、設定 > グローバル設定 > アラート・チャネル > アラート・チャネルの作成 > 汎用Webhook をクリックします。
名前は好きなものを指定します。
サンプル Jira Webhook
Webhook URLには先ほどJiraで表示されていたURLを指定します。
https://api-private.atlassian.com/automation/webhooks/jira/a/xxxx
JiraはWebhookを受信する際の設定として、下記の指定があります。
URL とシークレットを接続先のアプリに入力し、X-Automation-Webhook-Token という名前で新しい HTTP ヘッダーを追加します。
そのため、カスタムHTTP要求ヘッダーを1つ追加します。
キー : X-Automation-Webhook-Token
値 : 先ほどJiraで表示されていたシークレット
入力ができたら、チャネルのテスト を押してテストが成功するか確認しましょう。
成功した場合は、右下の 作成 をクリックします。
失敗した場合は、JiraとInstana両方の設定が正しいか確認しましょう。
これでアラート・チャネルにJiraが追加できました。
動作確認
それでは、実際にJiraにデータが送信されるのか確認してみます。
今回はすぐに動作確認できる様、静的な閾値でアラートを作成して試してみます。
適当なアプリケーション・パースペクティブを開き、スマート・アラートタブで スマート・アラートの作成 をクリックします。
下記の通り設定しスマート・アラートを作成します。記載のない項目はデフォルトのままでOKです。
選択されたブループリント : HTTP状況コード
HTTP状況コード : 5XX (サーバー・エラー)
しきい値 : 状況コードのカウント ≧ 静的しきい値 を選択し、クリティカル : 1 に変更
時間しきい値 : 状態が指定された時間以上続く場合 を選択し、評価の粒度 を 1min に変更
アラートチャネル : 先ほど作成したJiraのアラート・チャネル
Jiraを確認
しばらく放置してアラートが連携されるのを待ってJiraを確認してみると、2件のキューがオープンされています。
1件はInstanaで実施したテストで作成されたもの(Alert Channel test
)、
もう1件はスマート・アラートで検知された異常が連携されて作成されたもの(HTTP 状況コード 5XX の呼び出しが多すぎます
)です。
HTTP 状況コード 5XX の呼び出しが多すぎます
の内容を確認すると、先ほど定義した内容がタイトルと説明に反映されていることが確認できます。
Jiraに表示されているリンクをクリックすると、対象となるイベントのページを表示することができるので、現在利用しているツールに通知が届いてからInstanaの画面にすぐに移動する…といった使い方ができます。
実際に利用する上では担当者を自動でアサインするなど、より作り込むことをしていくと思いますが、本記事ではここまでとします。
おわりに
いかがでしたか?
汎用Webhookでも簡単に設定できることを確認できたと思います。
サンプルのJSON以外に、Instanaから送信しているデータの内容が気になる場合は、ぜひサポートに確認いただければと思います。
(こんなデータほしいけど、Webhook連携時のJSONに含まれてる?など)
それでは!