前言
作為一個雲端愛好者,擁有相當多的 VPS 也非常正常。但是如果你的伺服器沒有乖乖的加持,他可能有很高的機率會斷線。雖然上述算是個玩笑話,但是我們總得知道伺服器目前是否有在乖乖的運作。所以當伺服器一多,就需要有監控系統來監視這些伺服器還在不在線上。
監控服務通常透過 ICMP 封包或者是 HTTP 要求來判斷伺服器有沒有正常工作,如果你不喜望自己架設這樣的系統,通常我會向人推薦 UptimeRobot,但也代表這篇文章你看到這就好了。XD
本文介紹的這套名叫 Uptime Kuma,是一個可以自架的開源監控服務。
安裝主程式
我們必須先在 Linux 上安裝必須的功能,如:nodejs
、npm
、git
這些。
sudo apt-get -y update && sudo apt-get install -y nodejs npm git
安裝 pm2
。
sudo npm install pm2 -g && sudo pm2 install pm2-logrotate
建立一個存放 Uptime Kuma 的資料夾,這裡我就將它建立於 /var
底下,資料夾名稱為 uptime
。
sudo mkdir -p /var/uptime && cd /var/uptime
使用 git
將 Uptime Kuma clone
進來。
sudo git clone https://github.com/louislam/uptime-kuma.git .
使用以下命令進行初始設定。
sudo npm run setup
啟動 Uptime Kuma 服務,並在背景執行。
sudo pm2 start server/server.js --name uptime-kuma
如果你希望開機時就啟動 Uptime Kuma,則使用以下命令。
sudo pm2 save && sudo pm2 startup
反向代理伺服器
如果我們想要瀏覽 Uptime Kuma 的網頁,最好將他放在反向代理伺服器後方,這也可以讓我們有更多的設定空間。這裡將使用 Nginx 作為反向代理伺服器。
sudo apt-get install -y nginx nginx-extras
前往 /etc/nginx/sites-enabled/
並新增一個檔案 uptime
。
cd /etc/nginx/sites-enabled/ && sudo vim uptime
請參考以下內容,更換你的網域,並貼上在該檔案上。
server {
listen 80;
listen [::]:80;
server_name www.example.com;
server_tokens off;
more_set_headers Server;
location / {
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
接著使用 sudo nginx -t
來確定配置是否有問題。再使用 sudo systemctl restart nginx
重啟 Nginx 即可。
開始使用
打開瀏覽器,前往剛剛設定的網域,你會直接看到 Uptime Kuma 要求你設定管理員帳號。
在設定 → 通知底下,我們可以設定通知。當伺服器下線時,他就會透過如 Discord、Telegram 發送訊息給你。
在新增監視器的右方,可以勾選要通知的地方,例如我剛剛設定了一個 Discord 通知。
在服務發生異常時,他就會發送通知給你。
結語
這就是架設 Uptime Kuma 的過程啦!在我的環境中,其實 UptimeRobot 及 Uptime Kuma 都有使用到。UptimeRobot 我主要用在公網能訪問到的服務;而 Uptime Kuma 我通常在內網使用。你也可以不用跟我一樣,他們都可以使用在任何地方,就看你的需求而已!