ステータスページ

GitLab 12.10で導入されました

GitLab Status Pageを使えば、インシデント発生中にユーザーに効率的に伝えるための静的ウェブサイトを作成し、デプロイすることができます。Status Pageのランディングページには、最近のインシデントの概要が表示されます:

Status Page landing page

インシデントを選択すると、特定のインシデントに関する詳細ページが表示されます:

Status Page detail

  • インシデントが最後に更新された日時など、インシデントのステータス。
  • 絵文字を含むインシデントのタイトル。
  • 絵文字を含むインシデントの説明。
  • インシデントの説明で提供された添付ファイル、または有効な画像拡張子を持つコメント。GitLab 13.1 で導入されました
  • インシデントに対する更新の時系列順リスト。

ステータスページの設定

GitLab Status Pageを設定するには、以下の手順が必要です:

  1. GitLabにクラウドプロバイダの情報を設定します。
  2. AWSアカウントを設定します。
  3. GitLab でStatus Page プロジェクトを作成します。
  4. StatusPage にインシデントを同期します。

GitLabにクラウドプロバイダの情報を設定します。

デプロイ先としてサポートされているのはAWS S3のみです。

前提条件

  • 少なくともメンテナーのロールを持っている必要があります。

Status Page にコンテンツをプッシュするために必要な AWS アカウント情報を GitLab に提供します:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 設定 > モニターを選択します。
  3. ステータスページを展開します。
  4. アクティブ]チェックボックスを選択します。
  5. Status Page URL] ボックスに、外部ステータスページの URL を入力します。
  6. S3 Bucket name]ボックスに、S3バケットの名前を入力します。詳細については、バケット設定のドキュメントを参照してください。
  7. AWS regionボックスに、バケットのリージョンを入力します。詳細については、AWSのドキュメントを参照してください。
  8. AWS アクセスキー IDAWS シークレットアクセスキーを入力します。
  9. 変更を保存を選択します。

AWSアカウントの設定

  1. AWSアカウント内で、以下のファイルを例にして2つの新しいIAMポリシーを作成します:
  2. 最初のステップで作成した権限ポリシーで新しい AWS アクセスキーを作成します。

ステータスページのプロジェクトを作成します。

AWS アカウントの設定後、Status Page プロジェクトを追加し、Status Page を AWS S3 にデプロイするために必要な CI/CD 変数を設定する必要があります:

  1. StatusPageプロジェクトをフォークします。Repository Mirroringを利用することで、Status Page の最新機能を利用することができます。
  2. 左サイドバーで、Settings > CI/CDを選択します。
  3. 変数]を展開します。
  4. Amazon Consoleから以下の変数を追加します:
    • S3_BUCKET_NAME - Amazon S3バケットの名前。指定した名前のバケットが存在しない場合、最初のパイプライン実行でバケットが作成され、静的Webサイトホスティング用に設定されます。

    • AWS_DEFAULT_REGION - AWSリージョン。
    • AWS_ACCESS_KEY_ID - AWS アクセスキー ID。
    • AWS_SECRET_ACCESS_KEY - AWSのシークレット。
  5. 左サイドバーでBuild > Pipelines を選択します。
  6. Status PageをS3にデプロイするには、Run pipelineを選択します。
caution
このプロジェクトのイシューにアクセスできるユーザーを制限することを検討してください。イシューを閲覧できるユーザーであれば、GitLab Status Page にコメントを公開できる可能性があります。

インシデントをステータスページに同期

CI/CD変数を作成した後、インシデントのイシューに使用するプロジェクトを設定します:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 設定 > モニターを選択します。
  3. ステータスページを展開します。
  4. クラウドプロバイダーの認証情報を入力し、[アクティブ]チェックボックスを選択します。
  5. 変更を保存を選択します。

GitLab ステータスページの使い方

GitLab インスタンスを設定した後、関連するアップデートは、インシデントに関する JSON 形式のデータを外部のクラウドプロバイダにプッシュするバックグラウンドジョブをトリガーします。ステータスページのウェブサイトは定期的にこのJSON形式のデータを取得します。ステータスページのウェブサイトは定期的にこのJSONフォーマットのデータを取得し、ユーザーに表示します:

graph TB subgraph GitLab Instance issues(issue updates) -- trigger --> middleware(Background job: JSON generation) end subgraph Cloud Provider middleware --saves data --> c1(Cloud Bucket stores JSON file) end subgraph Status Page d(Static Site on CDN) -- fetches data --> c1 end

インシデントの公開

インシデントを公開するには

  1. GitLab ステータスページの設定を有効にしたプロジェクトでイシューを作成します。
  2. プロジェクトまたはグループのオーナーは/publish クイックアクションを使ってイシューを GitLab Status Page に公開する必要があります。機密イシューは公開できません。

バックグラウンドワーカーは、セットアップ中に提供された認証情報を使ってイシューをステータスページに公開します。公開の一部として、GitLab:

  • Incident Responder を使ってユーザーとグループの言及を匿名化します。
  • 公開されていないGitLab リファレンスのタイトルを削除します。
  • インシデント・イシューの説明に添付されたファイルを公開します。(GitLab 13.1 で導入)

公開後、インシデントの詳細ページにアクセスするには、インシデントのタイトルの下に表示されているPublished on status pageボタンを選択します。

Status Page detail link

インシデントの更新

インシデントの更新を公開するには、インシデントのイシューの説明を更新します。

caution
参照されているイシューが変更された場合(タイトルや機密性など)、参照されているインシデントは更新されません。

インシデントに関するコメントの公開

ステータスページのインシデントにコメントを公開します:

  • インシデントのイシューにコメントを作成します。
  • コメントを公開する準備ができたら、コメントにマイクの絵文字リアクション反応(:microphone: 🎤)を追加して、公開するコメントをマークします。
  • コメントに添付されたファイル(イシューごとに5000個まで)も公開されます。(GitLab 13.1 で導入されました)。
caution
イシューにアクセスできる人なら誰でも、コメントに絵文字のリアクションを追加することができます。

インシデントステータスの更新

インシデントステータスをopen からclosed に変更するには、GitLab内でインシデントイシューをクローズしてください。イシューをクローズすると、バックグラウンドワーカーが GitLab ステータスページのウェブサイトを更新します。

公開されているイシューを非公開にすると、GitLabはGitLab Status Pageウェブサイトからそのイシューの公開を解除します。