免費雲端監控機器人

姜志民 2021/05/20 15:15:10
1159

一、目的

當系統發生故障時,系統管理者都無法及時得知,都需要等到使用者通知才知道。可以藉由Google Apps Script來監控外部系統是否異常,如發生異常,在以LINE Notify方式通知系統管理者修正問題,可以提升系統服務品質。

 

 

二、設計概念

以昕力資訊的昕力大學系統(https://www.tpisoftware.com/tpu/)為範例跟各位讀者來解釋。

運作流程說明: 

1.在Google Apps Script上撰寫「監控系統程式」持續監控昕力大學系統是否有正常執行。

2.若昕力大學系統發生異常就透過LINE Notify服務通知系統管理者。

 

三、申請LINE Notify權杖

a.進入https://notify-bot.line.me/ => 「登入」。

 

b.輸入自己的LINE帳號登入。

 

c.進入「個人頁面」。

 

d.點擊「發行權杖」。

 

e.輸入權杖名稱並選擇要接收的聊天室,在按下「發行」。

 

f.將權杖記下來,後續會使用到。

 

四、建立Google Apps Script監控系統程式碼

a.進入「雲端硬碟」->「建立」。

 

 

b.選擇「更多」->「Google Apps Script」。

 

c.  Google Apps Script採用了前端網頁程式的 Javascript 語法。直接在紅框處撰寫Javascript語法。

 

d. 「監控系統程式」範例程式。

function monitor(){
  // 要監控系統的URL
  var url = 'https://www.tpisoftware.com/tpu/';
  var res = UrlFetchApp.fetch(url, { muteHttpExceptions: true }).getResponseCode();
    
  // 先檢查回應碼是否為 HTTP Status Code 200
  if(res !== 200) {
    // HTTP Status Code不是 200 就發訊息
    sendMessage('昕力大學系統異常');
  }
}

// Line Notify發送訊息
function sendMessage(message) {
  //LINE Notify 取得的權杖
  var token = 'rfNwuH1cAY6PizW2HnVLsOcKuClpRMy3xKKNsHKoHbB';

  var option = {
    method: 'post',
    headers: { Authorization: 'Bearer ' + token },
    payload: {
      message: message
    }
  };
  UrlFetchApp.fetch('https://notify-api.line.me/api/notify', option);
}

 

五、設定Google Apps Script監控系統排程週期

a.進入下圖所點選功能。

 

b.點「新增觸發條件」。

 

c.設定要觸發條件後,按「儲存」。Google Apps Script就會依照觸發條件進行監控。

 

六、LINE Notify通知畫面

若監控系統異常,筆者的LINE就會收到訊息如下。

 

姜志民
0178C8057034CE563C4AC68CC41BFB36
2022/12/06 16:33:02

您好

實際測試「要監控系統的URL」如果不對,執行錯誤通知如下:

Exception: Address unavailable: http://****

monitor @ 程式碼.gs:4

就不會發出訊息

是哪裡出問題嗎?

0178C8057034CE563C4AC68CC41BFB36
2022/12/06 17:06:00

猜測是

muteHttpExceptions: true

這段有問題?