self-hosted

집에서 서비스를 오픈 해보자 (5) | upptime 모니터링, status 페이지 추가하기

pepega 2024. 11. 17. 00:29

집에서 서비스를 오픈 해보자 (1) | 개요
집에서 서비스를 오픈 해보자 (2) | 서버 세팅하기
집에서 서비스를 오픈 해보자 (3) | dns 연결하기
집에서 서비스를 오픈 해보자 (4) | CI/CD 연동하기
집에서 서비스를 오픈 해보자 (5) | upptime 모니터링, status 페이지 추가하기  

1. 소개

Upptime은 Github(Github Actions)기반의 되어있는 uptime 모니터링, status 페이지를 제공하는 오픈소스입니다.

3가지의 기능을 제공하고 있습니다.

 

1. Github Actions를 기반으로 workflows를 통해 웹 사이트를 호출합니다. x분(최소 5분)마다 실행합니다.

2. 지정된 endpoint가 죽으면 Upptime은 Github repository에서 자동으로 새로운 issue를 오픈합니다. Slack이나 Telegram과 같은 연결된 서비스도 가능합니다.

3. Github Pages 기반으로 웹사이트를 제공합니다. 웹 사이트의 실시간 상태, 서버 장애 시간 및 응답시간 그래프를 제공합니다.

현재 상태
장애 이력

 

2. 시작하기

repository 만들기

https://upptime.js.org/docs/get-started

이 문서를 기반으로 만들어졌습니다.

빠르게 하고싶은 분은 요 링크를 참고해주세요~

 


https://github.com/upptime/upptime 저장소에 접속하여

요 버튼을 클릭합니다.

 

Include all branches를 반드시 체크해야합니다.

 

사진처럼 세팅한 뒤 Create repository를 클릭합니다.

만약 Private 저장소를 사용한다면 Github Actions 과금 비용을 내야합니다.

전 Public으로 만들었어요~

 

저장소를 만든 뒤

배포하기

 

Setting에 접속합니다.

 

 

 

Pages에 접속합니다.

 

 

Source 아래 버튼을 클릭하여

None에서 Deploy from a branch로 변경합니다.

 

 

Branch도 사진처럼 세팅한 뒤 오른쪽에 Save 버튼을 클릭합니다.

 

Repository에 secrets 설정하기

Github Actions workflows가 commit하고 웹사이트를 게시하려면

Upptimed에서 Actions, Contents, Issues, Workflows에 read-write 권한이 있어야 합니다.

그러기 위해선 개인 액세스 토큰(PAT)이 필요합니다.

아래 방법을 통해 PAT 토큰을 만들 수 있습니다~

 

프로필 사진을 클릭하여 Setting에 접속합니다.

 

왼쪽 sidebar 맨 아래에 Developer settings을 클릭합니다.

 

왼쪽 sidebar에 Fine-grained token을 클릭합니다.

 

 

우측에 Generate new token을 클릭합니다.

 

Token name, Resource owner, Expiration을 설정합니다.

 

아래로 스크롤하여 사진처럼 Repository access를 설정합니다.

아까 만들었던 repository 이름을 설정해주면 됩니다.

 

 

Repository permissions를 클릭하여

Actions, Contents, Issues, Workflows 에 read andwrite access 권한을 줍니다.

권한을 다 줬으면 하단에 Generate token을 클릭합니다.

 

 

생성이 완료되었으면 키를 복사해둡니다.

 

이제 아까 생성했던 upptime repository에 접속하여 Settings에 접속합니다.

 

왼쪽 sidebar에 Secrets and variables -> Actions -> New repository를 클릭합니다.

 

요 칸에 아까 복사했던 키를 Secret에 넣습니다.

키 뒤에 공백이 없고 줄바꿈이 없는지 다시 한 번 확인했으면

Add secret을 클릭합니다.

 

configuration 설정하기

upptime은 .upptimerc.yml 파일로 중앙 관리됩니다.

이 파일에서 웹사이트를 모니터링하고 endpoint를 지정 할 수 있습니다.

 

 

기본적으로는 요렇게 구성되어 있습니다.

 

sites에 원하는 주소를 입력하면 해당 주소를 모니터링 할 수 있습니다.

Custom domain을 사용하지 않는다면

status-website를 사용하여 url을 변경 할 수도 있습니다.

 

저는 아래처럼 구성해두었습니다.

https://github.com/GHGHGHKO/upptime/blob/master/.upptimerc.yml

 

 

끝~

 

 

 

 

참고자료

https://upptime.js.org/docs/get-started

 

Getting started | Upptime

To use Upptime as an uptime monitor and status website generator, you start by creating a repository using the template on GitHub.

upptime.js.org