일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- CKA
- Kubernetes
- 정보처리기사실기 기출문제
- 기록으로 실력을 쌓자
- Pinpoint
- Elasticsearch
- AI
- 코틀린 코루틴의 정석
- aws
- minikube
- kotlin querydsl
- mysql 튜닝
- 티스토리챌린지
- Spring
- PETERICA
- kotlin
- AWS EKS
- kotlin coroutine
- 공부
- kotlin spring
- 정보처리기사 실기
- IntelliJ
- Java
- Linux
- 오블완
- CloudWatch
- MySQL
- CKA 기출문제
- APM
- 정보처리기사 실기 기출문제
- Today
- Total
피터의 개발이야기
TinyStatus란, 간단하고 가벼운 상태 페이지 만들기 본문
ㅁ 들어가며
오늘은 GitHub에서 인기를 얻고 있는 TinyStatus 프로젝트를 소개하고, 이를 이용해 간단한 상태 페이지를 만드는 방법을 알아보겠다. TinyStatus는 복잡한 설정 없이 빠르게 서비스 상태 페이지를 만들 수 있는 도구다.
ㅁ TinyStatus란?
TinyStatus는 단일 HTML 파일로 구성된 경량 상태 페이지 생성기다.
ㅇ 단일 HTML 파일로 구성
ㅇ JavaScript나 서버 사이드 코드 불필요
ㅇ 사용자 정의가 쉬운 간단한 구조
ㅇ 반응형 디자인으로 모바일 지원
ㅇ 다크 모드 지원
ㅁ TinyStatus 로컬 세팅
ㅇ 맥북이나 서버에 소스를 다운 받아 설치 및 실행 할 수 있다.
# 소스 다운로드 및 폴더이동
$ git clone https://github.com/harsxv/tinystatus.git
$ cd tinystatus
# 의존 패치키 설치
$ pip install -r requirements.txt
ㅇ 기본적인 TinyStatus 설치가 완료되었다.
# 커스텀 설정
$ cat .env
MONITOR_CONTINOUSLY=True
CHECK_INTERVAL=30
MAX_HISTORY_ENTRIES=100
LOG_LEVEL=INFO
CHECKS_FILE=checks.yaml
INCIDENTS_FILE=incidents.md
TEMPLATE_FILE=index.html.theme
HISTORY_TEMPLATE_FILE=history.html.theme
STATUS_HISTORY_FILE=history.json
HTML_OUTPUT_DIRECTORY=/var/www/htdocs/status/
ㅇ .env을 작성하여 커스텀 작성을 행할 수 있다.
- title: 'Group 1'
checks:
- name: GitHub Home
type: http
host: https://github.com
url: https://docs.github.com/en
expected_code: 200
- name: Google Public DNS
type: ping
host: 8.8.8.8
- name: Dummy MySQL Database
type: port
host: db.example.com
port: 3306
- name: Home Server with Self-Signed Certs
type: http
host: https://homeserver.local
ssc: True
expected_code: 200
ㅇ checks.yaml에 체크 대상을 설정한다.
python tinystatus.py
ㅇ 파이썬 실행한다.
ㅇ 정상적으로 작동하면 아래의 3개 파일이 생성된다.
ㅇ index.html: The main status page
ㅇ history.html: The status history page
ㅇ history.json: The status history and timestamp data
ㅁ TinyStatus 도커 세팅
# 소스 다운로드
git clone https://github.com/harsxv/tinystatus.git
cd tinystatus
# docker 빌드
docker build -t tinystatus .
# docker만 실행 시 nginx 실행 시 생략
docker run -ti --rm --name tinystatus -v "$PWD":/usr/src/myapp -w /usr/src/myapp tinystatus
ㅁ nginx 세팅
services:
tinystatus:
image: tinystatus
container_name: tinystatus
volumes:
- .:/usr/src/myapp
working_dir: /usr/src/myapp
tty: true
stdin_open: true
environment:
- TZ=Asia/Seoul
nginx:
image: nginx
depends_on:
- tinystatus
container_name: my-nginx
ports:
- "8080:80"
volumes:
- ./index.html:/usr/share/nginx/html/index.html:ro
- ./history.html:/usr/share/nginx/html/history.html:ro
- ./history.json:/usr/share/nginx/html/history.json:ro
- ./assets:/usr/share/nginx/html/assets:ro
ㅇ tinystatus를 우선 실행하고, 생성된 html을 참조하여 nginx를 구동한다.
ㅁ 마무리
TinyStatus는 간단하고 빠르게 서비스 상태 페이지를 만들 수 있는 훌륭한 도구다. 복잡한 설정이나 서버 사이드 코드 없이도 professional한 모양의 상태 페이지를 만들 수 있다는 점이 큰 장점이다. 작은 프로젝트나 개인 서비스의 경우 TinyStatus만으로도 충분할 수 있다.
ㅁ 함께 보면 좋은 사이트
'DevOps' 카테고리의 다른 글
[DevOps] Bamboo: DevOps와 CI/CD를 위한 강력한 도구 (0) | 2024.12.17 |
---|---|
[k6] k6를 이용한 다중 부하 테스트 설정 및 실행 방법 (0) | 2024.12.17 |
네트워크 레이아웃에서 SSL이란? (0) | 2024.06.20 |
[HeyForm] HeyForm 구축하여 local에서 사용해보기, 메일서버가 필요 실패 (0) | 2024.04.04 |
[HeyForm] docker로 HeyForm 설치하기 (0) | 2024.04.04 |