리눅스에서 Uptime Kuma로 가동 시간 모니터링 도구 설정하는 방법

Uptime Kuma는 간단하면서도 강력한 가동 시간 모니터링 도구입니다. 이는 로컬 네트워크 또는 더 넓은 인터넷에서 호스팅하는 모든 서비스를 추적할 수 있게 해줍니다.
이 문서에서는 Ubuntu와 Docker를 사용하여 로컬 네트워크에서 Uptime Kuma를 설치하고 배포하는 방법을 보여줍니다. 또한 Uptime Kuma 인스턴스를 사용자 정의하여 상태 알림을 Telegram으로 전송하는 방법도 보여줍니다.
목차
- Uptime Kuma를 사용하는 이유
- Uptime Kuma 설치하기
- Nginx를 사용하여 Uptime Kuma를 위한 리버스 프록시 만들기
- Uptime Kuma 구성 및 모니터 추가하기
- Uptime Kuma를 위한 외부 알림 설정하기
Uptime Kuma를 사용하는 이유?
Uptime Kuma는 웹 서버를 추적하고 핑을 보내며 Docker 컨테이너의 상태를 확인할 수 있습니다. 이는 Uptime Kuma가 모든 네트워크 서비스에 대한 이상적인 올인원 웹 포털이 되게 합니다.
Uptime Kuma의 가장 큰 장점 중 하나는 기본적으로 강력한 알림 시스템이 제공된다는 것입니다. 이는 가동 시간 모니터가 이상을 발견할 때마다 다양한 채널을 통해 자동으로 메시지를 전송하도록 설정할 수 있음을 의미합니다.

Uptime Kuma 설치하기
Docker 및 Docker Compose 얻기
먼저, Docker 및 Docker Compose 저장소의 GPG 서명 키를 가져옵니다:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |sudo gpg --dearmor-o/etc/apt/keyrings/docker.gpg
sudochmod a+r /etc/apt/keyrings/docker.gpg“/etc/apt/sources.list.d/” 아래에 Docker를 위한 새로운 저장소 파일을 만듭니다:
sudonano/etc/apt/sources.list.d/docker.list새 저장소 파일 안에 다음 코드를 붙여넣습니다:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stableUbuntu 시스템의 패키지 저장소를 업데이트하고 업그레이드합니다:
sudo apt update &&sudo apt upgradeDocker 및 Docker Compose 패키지와 그 종속성을 설치합니다:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx git현재 실행 중인 사용자가 Docker 및 Docker Compose를 실행할 수 있는 권한이 있는지 확인합니다:
sudo usermod -aGdocker ramcesUptime Kuma 얻기 및 빌드하기
Uptime Kuma Docker 컨테이너를 위한 새로운 디렉토리를 만듭니다. 이 디렉토리는 인스턴스의 레시피 파일을 포함합니다:
mkdir uptime-kuma &&cd ./uptime-kuma안으로 들어가서 좋아하는 텍스트 편집기를 사용하여 새로운 “docker-compose.yml”을 만듭니다:
nano ./docker-compose.yml새 Compose 파일 안에 다음 코드 블록을 붙여넣습니다:
---
version: "3.8"
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
- uptime-kuma:/app/data
ports:
- 3001:3001
restart: always
volumes:
uptime-kuma: null새 Uptime Kuma 인스턴스를 위한 Docker 컨테이너를 빌드합니다:
sudodocker compose up -dNginx를 사용하여 Uptime Kuma를 위한 리버스 프록시 만들기
Nginx에서 리버스 프록시를 만들어 Uptime Kuma에 공개적으로 접근할 수 있도록 합니다.
좋아하는 텍스트 편집기를 사용하여 새로운 Nginx 사이트 구성 파일을 만듭니다:
sudonano/etc/nginx/sites-available/uptimekuma새 사이트 구성 파일 안에 다음 코드 블록을 작성합니다:
server {
server_name uptime.myvpsserver.top;
location /{
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}Nginx의 “sites-available” 폴더에서 사이트 구성 파일을 “sites-enabled” 디렉토리로 링크합니다:
sudoln-s/etc/nginx/sites-available/uptimekuma /etc/nginx/sites-enabled새 설정을 적용하기 위해 Nginx 서버 데몬을 재시작합니다:
sudo systemctl restart nginxSSL 인증서 설치하기
시작하기 위해 시스템에 핵심 스냅 패키지가 실행 중인지 확인해야 합니다:
sudo snap install core전자 프론티어 재단의 certbot 스냅을 설치합니다. 이는 리버스 프록시의 SSL 인증서를 자동으로 요청하고 유지 관리할 수 있는 작은 도구입니다:
sudo snap install certbot --classiccertbot이 제대로 작동하는지 테스트하기 위해 새로운 certbot 설치를 EFF에 등록합니다:
sudo certbot register --agree-tos-m [email protected]새 리버스 프록시를 위한 새로운 SSL 인증서를 요청합니다:
sudo certbot --nginx-d uptime.myvpsserver.topUptime Kuma 구성 및 모니터 추가하기
웹 브라우저에서 주소로 이동하여 Uptime Kuma 설치가 제대로 작동하는지 확인합니다.

새 관리자 계정에 대한 세부 정보를 입력한 후 “생성”을 클릭하여 인스턴스로 계속 진행합니다.

페이지의 왼쪽 상단 모서리에 있는 “새 모니터 추가” 버튼을 클릭합니다.

이렇게 하면 현재 페이지에서 모니터링할 서비스 유형을 지정할 수 있는 새로운 하위 창이 열립니다. 예를 들어, “모니터 유형” 값을 “HTTP(S)”에서 “TCP 포트”로 변경하면 특정 포트가 현재 열려 있는지 확인하는 모니터가 생성됩니다.

모니터링할 머신의 세부 정보를 입력합니다.
페이지 하단으로 스크롤한 후 “저장”을 클릭하여 새 모니터를 시작합니다.

Uptime Kuma를 위한 외부 알림 설정하기
Uptime Kuma 인스턴스의 메인 페이지로 이동하여 페이지 오른쪽 상단 모서리에 있는 사용자 아이콘을 클릭합니다.

페이지의 드롭다운 메뉴에서 “설정” 옵션을 클릭합니다.
페이지의 새로운 하위 창에서 “알림” 카테고리를 선택합니다.

Telegram 알림 서비스 만들기
“알림 설정” 버튼을 클릭합니다. 기본적으로, 이는 Telegram 계정을 사용하여 알림 봇을 연결하고 생성할 수 있는 작은 창을 열어줍니다.
새 알림 경고에 대한 이름을 제공한 후 “봇 토큰” 텍스트 박스 아래의 BotFather 링크를 클릭합니다.

BotFather의 Telegram 페이지에서 “메시지 보내기” 버튼을 클릭합니다.

참고: “메시지 보내기” 버튼은 Telegram이 머신에서 실행 중일 때만 작동하는 Telegram 전용 링크입니다. Linux 머신에 Telegram을 설치하는 방법을 알아보세요.
이렇게 하면 BotFather를 사용하여 알림 봇을 생성할 수 있는 새로운 채팅 창이 열립니다. 프롬프트에 “/newbot”을 입력한 후 Enter를 누릅니다.
Uptime Kuma 인스턴스에 연결할 봇의 이름을 제공합니다.
새 알림 봇에 적절한 사용자 이름을 작성합니다. 이 경우 BotFather는 밑줄(_) 이외의 특수 문자를 허용하지 않습니다.
BotFather가 강조 표시한 텍스트를 클릭하여 클립보드에 복사합니다.

새 봇이 제대로 작동하는지 확인하려면 사용자 이름을 검색하고 대화를 시작합니다.

Uptime Kuma 인스턴스로 돌아가서 “봇 토큰” 텍스트 박스에 개인 봇 토큰을 붙여넣습니다.
“채팅 ID” 텍스트 박스 아래의 “자동 가져오기” 버튼을 클릭합니다.

Uptime Kuma 창의 하단으로 스크롤한 후 “테스트”를 클릭하여 Uptime Kuma가 새 봇과 통신할 수 있는지 확인합니다.

변경 사항을 Uptime Kuma에 저장하려면 “저장”을 클릭합니다.
Docker를 통해 간단한 서비스 상태 데몬을 호스팅하는 것은 컨테이너화된 웹 서비스를 배포하는 데 있어 빙산의 일각에 불과합니다. ownCloud로 클라우드 오피스를 호스팅하고 Stikked로 자신의 Pastebin을 실행하는 방법을 알아보세요.
이미지 출처: Boitulmelo via Unsplash (배경) Github (로고). 모든 수정 및 스크린샷은 Ramces Red에 의해 작성되었습니다.