gasを使ったお手軽サーバー死活監視
概要
超お手軽にWebサーバーの死活監視をしてchatworkに通知する方法です。
なぜgasなのか(・・?)
何と言っても死活監視のスクリプトをcronするサーバーを用意しなくて済むからです。chatworkへの通知も非常にお手軽に実装することが可能です。 高度なことはできませんが、雑に死活監視するくらいであればgas環境でも十分です。
手順
ドライブの「新規作成」->「その他」->「Goggle Apps Script」を選択します。
「リソース」->「ライブラリ」からChatworkClientを導入します。
ライブラリを追加のところに「M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT」を入力します。
いい感じにスクリプトを書きます。
var siteURL = "http://xxxxxxxx.com"; // チェックしたいサーバーのURL var Token = "xxxx"; // chatworkのbot token var RoomId = xxxx; // 通知したい部屋のID function myFunction() { try { // URLをフェッチ - muteHttpExceptions:trueの場合、HTTPエラーの際に例外をスローしない var response = UrlFetchApp.fetch(siteURL, { muteHttpExceptions:true }); // レスポンスコード var code = response.getResponseCode(); // レスポンスコード 200をチェックする if(code == 200) { Logger.log("access OK"); Logger.log("Response code: " + code); } else { var mes = "[info][title]死活監視[/title][To:xxxx]\nhogehogeが落ちています[/info]"; Logger.log(mes); var client = ChatWorkClient.factory({token: Token}); client.sendMessage({room_id: RoomId, body: mes}); } } catch(err) { // catch : DNSエラーなどでURLをfetch出来ないとき var mes = "[info][title]死活監視[/title][To:xxxx]\nhogehogeにアクセスできません[/info]"; Logger.log(mes); var client = ChatWorkClient.factory({token: Token}); client.sendMessage({room_id: RoomId, body: mes}); } }
トリガーを設定します。 「編集」->「現在のプロジェクトのトリガー」->「新しいトリガーを追加」から設定します。
あとは、サーバーが落ちるのを楽しみに待つだけです٩( ‘ω’ )و