Jira Cloud アプリケーションのログの収集
このページでは、Jira Cloud 用 Sumo アプリケーションのログを収集する手順を説明します。
このページでは、Jira Cloud アプリケーションのログ収集を設定する手順を説明します。リンクをクリックして、各セクションに移動してください。
収集の概要
ログ収集の設定は、以下の作業から構成されます。
- Jira Cloud イベントを受信するように Sumo Logic で Hosted Collector を設定する: Jira から Webhook を受信するために Hosted Collector がインストールされます。Webhook 設定は、特定イベントの発生時に Jira でアプリケーションまたは Web アプリケーションに通知を送信するのに役立ちます。Webhook を使用すると、リモート アプリケーションは、変更が発生したかどうかを監視する必要がなくなります。
- Jira Cloud の Webhook の登録: 各種のイベント用の Webhook を Jira に登録するには、Jira 管理コンソールまたは Jira REST API メソッドを使用します。これらの Webhook は、問題が更新されたとき、またはスプリントが開始されたときに、リモート アプリケーションへのアラートとして使用できます。
詳細については、Jira Cloud の Webhook に関するドキュメントを参照してください。
ステップ 1: Webhook 受信用の Hosted Collector の設定
このステップでは、Jira から Webhook を受信するホスト Collector を作成し、そこに HTTP Source をセットアップします。
-
Hosted Collector を設定するか、HTTP Source 用の既存の Hosted Collector を選択します。
-
Hosted Collector で HTTP Source を設定します。
-
[Source Category] では、jira_cloud/events と指定します。
-
Source の HTTP アドレスを書き留めます。次のステップで Jira Webhook を設定するときに使用します。
-
ステップ 2: Jira の Webhook の登録
Jira ヘルプの「Webhooks (Webhook)」の手順に従って、次のイベントの Webhook を登録します。
問題関連イベント
- 問題
- 作成
- 更新
- 削除
- コメント
- 作成
- 更新
- 削除
- 添付ファイル
- 作成
- 削除
- ワークログ
- 作成
- 更新
- 削除
- エンティティ プロパティ
- 作成または更新
- 削除
- 問題リンク
- 作成
- 削除
プロジェクト関連イベント
- バージョン
- リリース
- リリース解除
- 作成
- moved
- 更新
- マージ
- 削除
- プロジェクト
- 作成
- 更新
- 削除
ユーザ関連イベント
- ユーザ
- 作成
- 削除
- 更新
Jira 設定関連イベント
- 機能ステータスの変更 (有効/無効)
- 投票
- 監視中
- 問題の割り当て解除
- サブタスク
- 添付ファイル
- 問題リンク
- タイム トラッキング
- タイム トラッキング プロバイダ
Jira ソフトウェア関連イベント
- ボード
- 作成
- 削除
- 更新
- 設定の変更
スプリント イベント
- スプリント
- 作成
- 削除
- 更新
- 開始
- クローズ
Webhook を設定するとき、ステップ 2 で作成した HTTP Source の URL を Webhook のエンドポイントとして入力します。
ログ メッセージのサンプル
ログ メッセージの詳細については、Jira Cloud のサンプル ログを参照してください。
クエリの例
このセクションでは、[Jira Cloud - Issue Details (Jira Cloud - 問題の詳細)] ダッシュボードの [Unassigned Issues (未割り当ての問題)] パネルのサンプル クエリを示します。
パラメーター
- Issue:*
- Issue_Summary:*
クエリ文字列
_sourceCategory="jira_cloud" *issue* | json field=_raw "webhookEvent", "issue_event_type_name", "changelog", "issue.fields.creator.displayName", "issue.self", "issue.key", "timestamp", "issue.fields.issuetype.name", "issue.fields.status.name", "issue.fields.resolution.name", "issue.fields.project.name", "issue.fields.status.statusCategory.name", "user.active", "issue.fields.assignee.displayName", "issue.fields.summary", "issue.fields.priority.name", "issue.fields.components", "issue.fields.labels" as event_name, event_type, change_log, issue_creator, jira_self, issue_key, timestamp, type, status, resolution, project_name, status_category, is_active, issue_assignee, issue_summary, priority, components, labels nodrop | where project_name matches "*" AND issue_key matches "*" AND type matches "*" AND priority matches "*" AND status_category matches "*" AND status matches "*" | isNull(issue_assignee) ? "Unassigned" : issue_assignee as issue_assignee | parse regex field=labels "\"(?<label>[\S]+?)\"" multi nodrop | parse regex field=components "\"name\":\"(?<component>[\S]+?)\"" multi nodrop | where component matches "*" and label matches "*" | json field=change_log "items" as changes nodrop | formatDate(fromMillis(timestamp), "MM-dd-yyyy HH:mm:ss", "UTC") as date_time | parse regex field=jira_self "https:\/\/(?<base_url>.*?)\/" | concat("https://",base_url,"/browse/", issue_key) as issue_url | tourl(issue_url, issue_key) as issue | withtime issue_assignee | most_recent(issue_assignee_withtime) as user by issue, issue_summary | where user="Unassigned" | count as count by issue, issue_summary | fields - count