前言
網站上線後,為了能保持運行暢通無阻,即時監控錯誤並處理也是一件重要的事情。
監控的方式/服務/細節也有很多種,今天要介紹的是開源軟體「Gatus」的設定與部署方式。
我們僅會簡單的設置監控2個網站網址是否返回200,若發生預期外事件則會E-mail通知。
本文章將介紹如何透過幾個步驟就能將 Gatus 部署到 Google Cloud 的 Cloud Run。
我們假設您對 Docker有基本認識,且已安裝 Docker Engine,我們將透過 Dockerfile 建立 Docker image;對 Google Cloud 有基本認識,能順利進入 Google Cloud 後台並依照教學步驟一步步執行;對 E-mail 有基本認識,了解 SMTP 發信設定或是在 Gmail 申請應用程式密碼。
至於 Gatus 的細節介紹請參考下方提供的官方 Github 連結。
1. 建立 Gatus Docker image
我們的目的是把 Gatus 服務部署到 Cloud Run,那麼第一步就是,把我們的 Gatus 程式編譯成 Docker image。
1. 使用 Dockerfile 建立 Docker image
我們可以透過 Gatus 提供的 docker image 「twinproduction/gatus」 部署服務,這非常容易,而 Gatus 的設定檔案只要放在 config 資料夾下即可。
因此,我們的資料夾下只要有 config 與 Dockerfile 即可。
而 Dockerfile 也是非常簡潔有力,只要指定 Docker image,再將 config COPY 過去即可。
2. 設定 config 檔案
Gatus 的 config 使用 Yaml 檔案格式,設定方式也非常簡單,可以參考我每5分鐘與每60分鐘分別檢查2個網站是否回傳 200 狀態的 config。
更多的細節請參考下方參考連結 「Gatus Github」
3. 執行指令建立 Docker image
docker build -t codusme-gatus .
語法說明如下:
docker build -t {{image name}} {{path}}
如此一來,就可以看到「codusme-gatus」這個 image 被建立了。
2. Artifact Registry
在完成了 Docker image 製作之後,只要上傳到 Cloud Run,就可以完成服務部署了。而上傳到 Cloud Run 的步驟也非常簡單,只要完成「Artifact Registry」(Google Cloud 存放 Docker 與其他內容的服務)的驗證,將 Docker image 上傳後,就可以建立 Cloud Run 了。
1. 建立 Artifact Registry 存放區
在 「Google Cloud」>「Artifact Registry」 > 點擊「+建立存放區」,選擇「Docker」,地區選「台灣」(或其他地區)
2. 驗證 Artifact Registry
由於要將 image 上傳至 Artifact Registry,必須先進行 Artifact Registry 驗證程序。若我們的 Artifact Registry 地區是在台灣,那麼網址就是 asia-east1-docker.pkg.dev
gcloud auth configure-docker asia-east1-docker.pkg.dev
更多關於 「Artifact Registry」的資訊請參考下方參考連結 「Quickstart for Docker - Artifact Registry - Google Cloud」。
3. 上傳 Docker image
上傳之前要先建立 tag
docker tag codusme-gatus asia-east1-docker.pkg.dev/codusme/mydocker-codusme/codusme-gatus
接著就可以 push 上傳了。
docker push asia-east1-docker.pkg.dev/codusme/mydocker-codusme/codusme-gatus
3. Cloud Run 部署 Gatus
建立好 Gatus 的 Docker image,並且上傳之後,就可以部署到 Cloud Run 啦!
1. 建立 Cloud Run 服務
在 「Google Cloud」>「Cloud Run」 > 點擊「+建立服務」
「容器映像檔」選擇剛才上傳的 Docker image
其他參數則依照需求,如果要運行 Gatus 服務,不需要太高的效能,我全部都選擇最低規格。
2. Cloud Run 服務建立完成!
靜待數秒後,Cloud Run 就建立完成了!
畫面中也有顯示網址,點擊就能看到自己的網站監控狀態了!
4. 通知
若網站運行時出現預期外狀況,依照我們在 Gatus 的 config 設定,就會收到 E-mail 通知信。
Cloud Run 建立完畢時,第一次連線回應時間都會很長...
估計是 Cloud Run 建立時,伺服器在跑一些初始化的東東