리눅스에서 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 인스턴스의 스크린샷.

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 stable

Ubuntu 시스템의 패키지 저장소를 업데이트하고 업그레이드합니다:

sudo apt update &&sudo apt upgrade

Docker 및 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 ramces

Uptime 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 -d

Nginx를 사용하여 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 nginx

SSL 인증서 설치하기

시작하기 위해 시스템에 핵심 스냅 패키지가 실행 중인지 확인해야 합니다:

sudo snap install core

전자 프론티어 재단의 certbot 스냅을 설치합니다. 이는 리버스 프록시의 SSL 인증서를 자동으로 요청하고 유지 관리할 수 있는 작은 도구입니다:

sudo snap install certbot --classic

certbot이 제대로 작동하는지 테스트하기 위해 새로운 certbot 설치를 EFF에 등록합니다:

sudo certbot register --agree-tos-m [email protected]

새 리버스 프록시를 위한 새로운 SSL 인증서를 요청합니다:

sudo certbot --nginx-d uptime.myvpsserver.top

Uptime Kuma 구성 및 모니터 추가하기

웹 브라우저에서 주소로 이동하여 Uptime Kuma 설치가 제대로 작동하는지 확인합니다.

Uptime Kuma의 기본 랜딩 페이지를 보여주는 스크린샷.

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

새 인스턴스에 대한 관리자 세부 정보를 보여주는 스크린샷.

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

“새 모니터 추가” 버튼을 강조하는 스크린샷.

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

사용 가능한 다양한 모니터 유형을 보여주는 스크린샷.

모니터링할 머신의 세부 정보를 입력합니다.

페이지 하단으로 스크롤한 후 “저장”을 클릭하여 새 모니터를 시작합니다.

간단한 포트 체크 모니터의 전체 세부 정보를 보여주는 스크린샷.

Uptime Kuma를 위한 외부 알림 설정하기

Uptime Kuma 인스턴스의 메인 페이지로 이동하여 페이지 오른쪽 상단 모서리에 있는 사용자 아이콘을 클릭합니다.

화면 오른쪽 상단 모서리에 있는 사용자 아이콘의 배지를 강조하는 스크린샷.

페이지의 드롭다운 메뉴에서 “설정” 옵션을 클릭합니다.

페이지의 새로운 하위 창에서 “알림” 카테고리를 선택합니다.

알림 카테고리를 강조하는 스크린샷.

Telegram 알림 서비스 만들기

“알림 설정” 버튼을 클릭합니다. 기본적으로, 이는 Telegram 계정을 사용하여 알림 봇을 연결하고 생성할 수 있는 작은 창을 열어줍니다.

새 알림 경고에 대한 이름을 제공한 후 “봇 토큰” 텍스트 박스 아래의 BotFather 링크를 클릭합니다.

Telegram BotFather 링크를 강조하는 스크린샷.

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

BotFather에 대한 초기 프롬프트를 보여주는 스크린샷.

참고: “메시지 보내기” 버튼은 Telegram이 머신에서 실행 중일 때만 작동하는 Telegram 전용 링크입니다. Linux 머신에 Telegram을 설치하는 방법을 알아보세요.

이렇게 하면 BotFather를 사용하여 알림 봇을 생성할 수 있는 새로운 채팅 창이 열립니다. 프롬프트에 “/newbot”을 입력한 후 Enter를 누릅니다.

Uptime Kuma 인스턴스에 연결할 봇의 이름을 제공합니다.

새 알림 봇에 적절한 사용자 이름을 작성합니다. 이 경우 BotFather는 밑줄(_) 이외의 특수 문자를 허용하지 않습니다.

BotFather가 강조 표시한 텍스트를 클릭하여 클립보드에 복사합니다.

새 알림 봇에 대한 고유 토큰을 강조하는 스크린샷.

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

새 봇과의 초기 대화 기록을 보여주는 스크린샷.

Uptime Kuma 인스턴스로 돌아가서 “봇 토큰” 텍스트 박스에 개인 봇 토큰을 붙여넣습니다.

“채팅 ID” 텍스트 박스 아래의 “자동 가져오기” 버튼을 클릭합니다.

자동 가져오기 버튼을 강조하는 스크린샷.

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

작동 중인 Uptime Kuma Telegram 봇을 보여주는 스크린샷.

변경 사항을 Uptime Kuma에 저장하려면 “저장”을 클릭합니다.

Docker를 통해 간단한 서비스 상태 데몬을 호스팅하는 것은 컨테이너화된 웹 서비스를 배포하는 데 있어 빙산의 일각에 불과합니다. ownCloud로 클라우드 오피스를 호스팅하고 Stikked로 자신의 Pastebin을 실행하는 방법을 알아보세요.

이미지 출처: Boitulmelo via Unsplash (배경) Github (로고). 모든 수정 및 스크린샷은 Ramces Red에 의해 작성되었습니다.