Bitbucket アプリケーションのログの収集
このページでは、Bitbucket アプリケーションのログ収集を設定する手順を説明します。リンクをクリックして、各セクションに移動してください。
- 収集の概要
- ステップ 1: Bitbucket イベント受信用の Hosted Collector の設定
- ステップ 2: Bitbucket の Webhook の追加
- ステップ 3: デプロイ イベント収集用の Bitbucket CI/CD パイプラインの設定
- ステップ 4: Sumo Logic での Bitbucket イベント - キー タグ付けの有効化
- ログ メッセージのサンプル
- クエリの例
収集の概要
ログ収集の設定は、以下の作業から構成されます。
- Bitbucket イベントを受信するように Sumo Logic で Hosted Collector を設定します。
- Bitbucket の Webhook を登録します。
- デプロイ イベントを収集するように Bitbucket CI/CD パイプラインを設定します。
- Bitbucket のイベント - キー タグ付けを有効にします。
Bitbucket から Sumo Logic へのイベントのうち、対象となるイベントは、次の 2 タイプです。
Bitbucket イベント。このイベントが発生するたびに Webhook のサーバ URL にイベント リクエストを送信します。
デプロイ イベント。コードがテスト環境、ステージング環境、または運用環境にプッシュされるたびにトリガされます。このイベントは、デプロイ成功イベントまたはデプロイ失敗イベントの形式となります。
ステップ 1: Bitbucket イベント受信用の Hosted Collector の設定
このステップでは、Bitbucket から Webhook イベントを受信する Hosted Collector を作成し、そこに HTTP Source をセットアップします。
-
Hosted Collector を設定するか、HTTP Source 用の既存の Hosted Collector を選択します。
-
Hosted Collector で HTTP Source を設定します。
-
[Source Category] では、
bitbucket/
events.
と指定します。 -
Source の HTTP アドレスを書き留めます。次のステップで Jira Webhook を設定するときに使用します。
-
ステップ 2: Bitbucket の Webhook の追加
-
Bitbucket から、Webhook を追加するリポジトリを開きます。
-
左側にある [Settings (設定)] リンクをクリックします。
-
[Settings (設定)] ページのリンクから [Webhooks (Webhook)] リンクをクリックします。
-
[Add Webhook (Webhook の追加)] ボタンをクリックして、リポジトリの Webhook を作成します。[Add New Webhook (新規 Webhook の追加)] ページが表示されます。
-
タイトルと簡単な説明を入力します。
-
Sumo Logic HTTP Source の URL を入力します。この URL はステップ 1 で設定しています。
-
[Status (ステータス)] をクリックして [Active (アクティブ)] に設定します。
-
[Triggers (トリガ)] - [Choose from a full list of triggers (すべてのトリガのリストから選択)] をクリックし、[Repository (リポジトリ)]、[Issue (問題)]、および [Pull Request (プル リクエスト)] の下にあるすべてのトリガを選択します。
-
[Save (保存)] をクリックします。
ステップ 3: デプロイ イベント収集用の Bitbucket CI/CD パイプラインの設定
Bitbucket パイプは、Sumo Logic にコード デプロイ ステータスを送信するように設定する必要があります。bitbucket-pipelines.yml
ファイルの deployment パートの step セクションに次のパイプ コードを追加します。SUMOLOGIC_HTTP_URL をステップ 1 で設定した HTTP Source の URL に置き換えます。
after-script: - pipe: docker://appdevsumologic/sumologic-send-event:1.15 Variables: SUMO_LOGIC_BASE_URL: '<SUMOLOGIC_HTTP_URL>'
参考 - これは、デプロイ パイプ コードをサンプルの Bitbucket CI/CD パイプラインに追加すると bitbucket-pipelines.yml がどのようになるかを示しています。
ステップ 4.Sumo Logic での Bitbucket イベント - キー タグ付けの有効化
Sumo Logic は、受信イベントのイベント タイプを理解する必要があります (repo:push イベントなど)。そのためには、X-Event-Key イベント タイプを有効にする必要があります。X-Event-Key イベント タイプを有効にするには、Sumo Logic コンソールで次のステップを実行します。
- Sumo Logic で [Settings (設定)] - > [Fields (フィールド)] を選択します。
- フィールドとして [X-Event-Key (X イベント キー)] を追加します。
ログ メッセージのサンプル
このセクションでは、Bitbucket イベントとデプロイ イベントのログ メッセージの例を示します。
Bitbucket イベント
-
Bitbucket イベントのドキュメントを参照してください。
デプロイ イベント
{ "buildNumber": "160", "deploymentEnvironment": "production", "gitHttpOrigin": "http://bitbucket.org/sumo/backendservice", "commit": "67be2cdb4db18556df9b49872d7d3945ada3cb09", "branch": "master", "tag": "", "prDestinationBranch": "", "projectKey": "", "repoFullName": "app-dev-sumo/backendservice", "repoOwner": "app-dev-sumo", "pr_id": "", "pipe_result_link": "https://bitbucket.org/sumo/backendservice/addon/pipelines/home#!/results/160", "deploy_status": "0", "commit_link": "https://bitbucket.org/sumo/backendservice/commits/67be2cdb4db18556df9b49872d7d3945ada3cb09", "event_date": "2020-03-23 08:07:34" }
クエリの例
このセクションでは、[Bitbucket Deployment (Bitbucket デプロイ)] ダッシュボードの [Failed Deployments (失敗したデプロイ)] パネルからのサンプルを示します。
パラメーター
- Event_Date:*
- Build_Number:*
- Deploy_Status:*
- Deployment_Environment:*
- Files_Committed:*
- Repo_Full_Name:*
- Repo_Owner:*
- Source_Branch:*
- Deploy_Result:*
クエリ文字列
_sourceCategory="bitbucket" production deploymentEnvironment pipe_result_link deploy_status commit_link | json field=_raw "buildNumber", "deploymentEnvironment", "branch", "repoFullName", "pipe_result_link", "deploy_status", "pr_id", "commit", "tag", "projectKey", "repoOwner", "commit_link" , "event_date" | repoFullName as repo_name | where repoFullName matches "*" AND buildNumber matches "*" | branch as source_branch | if (deploy_status matches "0", "Success", "Failed") as deploy_status | where deploymentEnvironment="production" and deploy_status="Failed" | tourl (commit_link, concat("Commit # ",commit)) as files_commited | tourl (pipe_result_link, buildNumber) as deploy_result | count by event_date, buildNumber, deploy_status, deploymentEnvironment, files_commited, repoFullName, repoOwner, source_branch, deploy_result | fields - _count