Uptime Kuma

前言

這是一個Monitoring工具, 在有了Portainer後還裝的理由只有一個

他可以異常的時候發訊息通知你…

基本說明

如同前言,這就是個單純的監控工具,不過這一篇內會加上一些其他工具的介紹

#工具們

  • Composerize - 這個網頁可自動把docker cli指令轉為docker-compose.yml內容
  • Docker-socket-proxy - 這是一個簡易可以把/var/run/docker.sock透過TCP export出去的工具
  • Telegram - 其實Uptime-Kuma不僅可以透過Telegram傳訊息也可以透過Line, Teams等IM工具,只是我想用telegram而已
  • Bot Father - 這是Telegram上的BOT API產生器

安裝工程

Docker-Socket-Proxy

這個需要先安裝的主要原因是因為我的docker container散佈在三台機器上,若只有一台docker host,這個步驟就可以省略…

Docker-Compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: "3.3"
name: docker-socket-proxy
services:
dockerproxy:
image: ghcr.io/tecnativa/docker-socket-proxy:latest
container_name: dockerproxy
environment:
- CONTAINERS=1 # Allow access to viewing containers
- SERVICES=1 # Allow access to viewing services (necessary when using Docker Swarm)
- TASKS=1 # Allow access to viewing tasks (necessary when using Docker Swarm)
- POST=0 # Disallow any POST operations (effectively read-only)
ports:
- 2375:2375
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
restart: unless-stopped

因為這個是內部直連用的所以我會把port mapping出來(畢竟不需要用reserve proxy硬轉成DN來連線

Uptime Kuma

他的網頁上只有docker cli所以我們可以透過composerize轉成docker-compose.yml如下

Docker-Compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
version: "3"
services:
uptime-kuma:
container_name: uptime-kuma
image: louislam/uptime-kuma:1
restart: always
ports:
- 3001:3001
volumes:
- uptime-kuma:/app/data
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes:
uptime-kuma:

幾個重點

  • 不要忘記加掛/var/run/docker.sock

  • 若有搭配的Reserve Proxy是可以不用mapping port出來,這是需要DN去access前端網頁的

後續設定

建立Monitoring Item

因為我都只有拿來monitoring docker container所以我只有依照頁面上的設定把資料填入就可以開始monitoring了,至於其他監控Http(s), DNS, Database等就只能靠讀者自行處裡…

建立提醒

在建立監控項目時右上角有一個通知設定,點進去後可以選擇你想要的通知方式(在這裡我是選了telegram)

Telegram Bot API

這個基本上在Telegram的chat中加上@BotFather後鍵入/newbot然後取個名字就好了

然後複製貼上你的API到設定頁面後,用telegram發訊息給你的bot後,按下設定頁面中的連結

然後就可以複製你的ChatID了

接著只要打開通知後存檔就可以了