상태 페이지

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

GitLab 상태 페이지를 사용하면 사건 발생 시 사용자에게 효과적으로 커뮤니케이션하기 위해 정적 웹사이트를 생성하고 배포할 수 있습니다. 상태 페이지 랜딩 페이지는 최근 사건들의 개요를 보여줍니다:

상태 페이지 랜딩 페이지

사건을 선택하면 특정 사건에 대한 추가 정보가 있는 상세 페이지가 표시됩니다:

상태 페이지 상세

  • 사건의 상태, 마지막 업데이트 시점을 포함합니다.
  • 사건 제목, 이모지를 포함합니다.
  • 사건에 대한 설명, 이모지를 포함합니다.
  • 사건 설명 내 제공된 파일 첨부 또는 유효한 이미지 확장자를 가진 댓글.
  • 사건에 대한 업데이트의 연대 순으로 정렬된 목록.

상태 페이지 설정하기

GitLab 상태 페이지를 구성하려면 다음을 수행해야 합니다:

  1. 클라우드 제공자 정보를 사용하여 GitLab 구성하기.
  2. AWS 계정 구성하기.
  3. GitLab에서 상태 페이지 프로젝트 만들기.
  4. 사건을 상태 페이지와 동기화하기.

클라우드 제공자 정보로 GitLab 구성하기

AWS S3만 배포 대상으로 지원됩니다.

사전 요구 사항:

  • 최소한 Maintainer 역할이 필요합니다.

GitLab이 상태 페이지에 콘텐츠를 푸시하는 데 필요한 AWS 계정 정보를 제공하려면:

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Settings > Monitor를 선택합니다.
  3. Status page를 확장합니다.
  4. Active 체크박스를 선택합니다.
  5. Status Page URL 상자에 외부 상태 페이지의 URL을 제공합니다.
  6. S3 Bucket name 상자에 S3 버킷의 이름을 입력합니다. 더 많은 정보는 버킷 구성 문서를 참조하세요.
  7. AWS region 상자에 버킷의 지역을 입력합니다. 더 많은 정보는 AWS 문서를 참조하세요.
  8. AWS access key IDAWS Secret access key를 입력합니다.
  9. Save changes를 선택합니다.

AWS 계정 구성하기

  1. AWS 계정 내에서 두 개의 새로운 IAM 정책을 생성합니다. 다음 파일을 예제로 사용합니다:
  2. 첫 번째 단계에서 생성한 권한 정책으로 새로운 AWS 액세스 키를 만듭니다.

상태 페이지 프로젝트 만들기

AWS 계정을 구성한 후, 상태 페이지 프로젝트를 추가하고 AWS S3에 상태 페이지를 배포하기 위해 필요한 CI/CD 변수를 구성해야 합니다:

  1. 상태 페이지 프로젝트를 포크합니다.
    저장소 미러링 를 통해 최신 상태 페이지 기능을 받을 수 있습니다.
  2. 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
  3. Variables를 확장합니다.
  4. Amazon 콘솔에서 다음 변수를 추가합니다:
    • S3_BUCKET_NAME - Amazon S3 버킷의 이름.
      제공된 이름의 버킷이 존재하지 않으면 첫 번째 파이프라인 실행 시 생성되고 정적 웹사이트 호스팅을 위해 구성됩니다.

    • AWS_DEFAULT_REGION - AWS 지역.
    • AWS_ACCESS_KEY_ID - AWS 액세스 키 ID.
    • AWS_SECRET_ACCESS_KEY - AWS 비밀.
  5. 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.
  6. S3에 상태 페이지를 배포하려면 New pipeline을 선택합니다.

경고:
이 프로젝트에서 누가 이슈에 접근할 수 있는지 제한하는 것을 고려하세요,
이슈를 볼 수 있는 사용자는 잠재적으로 GitLab 상태 페이지에 댓글을 게시할 수 있습니다.

상태 페이지에 사고 동기화

CI/CD 변수를 생성한 후, 사고 문제에 사용할 프로젝트를 구성하세요:

  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Settings > Monitor를 선택합니다.
  3. Status page를 확장합니다.
  4. 클라우드 공급자의 자격 증명을 입력하고 Active 체크박스를 선택했는지 확인합니다.
  5. Save changes를 선택합니다.

GitLab 상태 페이지 사용 방법

GitLab 인스턴스를 구성한 후, 관련 업데이트는 사건에 대한 JSON 형식의 데이터를 외부 클라우드 공급자로 푸시하는 백그라운드 작업을 트리거합니다.

상태 페이지 웹사이트는 주기적으로 이 JSON 형식의 데이터를 가져옵니다.

포맷하여 사용자에게 표시하며 추가적인 노력 없이 진행 중인 사고에 대한 정보를 제공합니다:

%%{init: { "fontFamily": "GitLab Sans" }}%% graph TB accTitle: 상태 페이지 이해하기 accDescr: GitLab이 사건 데이터를 가져오고, 포맷하고, 표시하는 방법 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 상태 페이지에 게시해야 합니다. 비밀 문제는 게시할 수 없습니다.

백그라운드 작업자가 설정 중에 제공한 자격 증명을 사용하여 상태 페이지에 문제를 게시합니다.
게시의 일환으로 GitLab은:

  • 사용자 및 그룹 언급을 Incident Responder로 익명화합니다.
  • 비공식 GitLab 참조의 제목을 제거합니다.
  • 사고 문제 설명에 첨부된 파일을 게시합니다(문제당 최대 5000개).

게시 후, 사고의 세부정보 페이지에 접근하려면 사고 제목 아래에 표시된 상태 페이지에 게시됨 버튼을 선택합니다.

상태 페이지 세부 링크

사고 업데이트

사고에 대한 업데이트를 게시하려면, 사고 문제의 설명을 업데이트합니다.

경고:
언급된 문제가 변경되면(예: 제목 또는 비밀 여부) 해당 사건이 참조된 사고는 업데이트되지 않습니다.

사고에 대한 댓글 게시

상태 페이지 사고에 댓글을 게시하려면:

  • 사고 문제에 댓글을 작성합니다.
  • 댓글을 게시할 준비가 되면, 댓글에 마이크 이모지 반응 반응(:microphone: 🎤)을 추가하여 게시할 수 있도록 표시합니다.
  • 댓글에 첨부된 파일(문제당 최대 5000개)도 게시됩니다.

경고:
문제를 볼 수 있는 누구나 댓글에 이모지 반응을 추가할 수 있으므로, 팀원만 문제에 접근할 수 있도록 제한하는 것을 고려하세요.

사고 상태 업데이트

사고 상태를 open에서 closed로 변경하려면, GitLab 내에서 사고 문제를 닫습니다.
문제를 닫으면 백그라운드 작업이 GitLab 상태 페이지 웹사이트를 업데이트하도록 트리거됩니다.

게시된 문제를 비공식 이슈로 만들면,
GitLab은 해당 문제를 GitLab 상태 페이지 웹사이트에서 비공식으로 게시 해제합니다.