業務効率化

【GAS】管理しているWebサイトの稼働状況を取得するスクリプト

ホームページ運営の課題とGASを活用した効率的な監視方法

日曜日コンサルティングの島田です。

ホームページ運営の課題

現在、メンテナンス契約を含めて約300のお客様のホームページを運営しておりますが、それらの稼働状況を確認することが困難でした。当社ではサーバー料金やドメイン代金を代行して支払うことがありますが、メンテナンス契約のないお客様においては料金未払いによるホームページ非表示が発生することがあります。

早期に対応すれば、猶予期間内にお客様に連絡し問題を解決できますが、猶予期間を過ぎるとドメインやファイルの復旧が難しくなります。また、WordPressの自動バージョンアップがプラグインやテーマとの相性により、ホームページ表示に問題が生じることがあります。

メンテナンス契約を結んでいるお客様にも同様の問題が発生することがあり、責任問題になるため、適切な対応が求められます。しかし、24時間365日の監視は人件費の問題から実現できませんでした。

GASを活用した効率的な監視方法

そこで、最近学んだGAS(Google Apps Script)を利用して、数百のWebサイトの稼働状況を一括で確認する方法を検討しました。GASはGoogleのクラウド上でJavaScriptベースのスクリプトを実行することができるサービスで、Googleの各種サービスと連携して効率的な処理が可能です。

GASを用いて、お客様のホームページのアクセス状況やサーバーの応答時間を一定間隔でチェックし、問題がある場合は自動で報告する仕組みを構築することができます。これにより、人件費を抑えつつ、迅速かつ適切な対応が可能になります。(トリガーの設定も必要となります。duplicateAndRenameSheet関数を時間で定期実行します。今後は、異常が発生した場合は、メールで通知を送るなどの改造を検討しています。)

function duplicateAndRenameSheet() {
  // 現在の日時を取得
  var now = new Date();
  var formattedNow = Utilities.formatDate(now, "JST", "yyyy-MM-dd_HH:mm");

  // シートの複製
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet1");
  var newSheet = sheet.copyTo(ss);

  // 複製したシートの名前を変更
  newSheet.setName(formattedNow);

  // 複製したシートをアクティブにする
  ss.setActiveSheet(newSheet);

  // Webサイトの稼働状況をチェック
  checkWebsitesStatus();
}

function checkWebsitesStatus() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var lastRow = sheet.getLastRow();
  
  for (var i = 2; i <= lastRow; i++) {
    var url = sheet.getRange(i, 1).getValue();
    
    if (url === "") {
      continue;
    }
    
    try {
      var response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
      var statusCode = response.getResponseCode();
      
      if (statusCode >= 200 && statusCode < 300) {
        sheet.getRange(i, 2).setValue("接続成功");
      } else {
        sheet.getRange(i, 2).setValue("エラーコード: " + statusCode);
      }
    } catch (error) {
      sheet.getRange(i, 2).setValue("例外エラー: " + error.message);
    }
  }
}

まとめ

このアプローチにより、多数のWebサイトの稼働状況を効率的に確認することができ、問題が発生した際にタイムリーに対応できるようになります。GASの活用により、ホームページの運営管理がよりスムーズになり、お客様に安心してサービスを提供できるようになります。

さらに、今後はGASを使った他の自動化や効率化を検討し、より多くのお客様に価値あるサービスを提供できるよう、継続的な改善を行っていきたいと考えています。

たとえば、ホームページのSEO対策やアクセス解析の自動レポート作成、お客様からのお問い合わせフォームの集約や管理など、GASを活用してさまざまな業務プロセスを効率化することができます。

最後に、ホームページ運営における課題や悩みを抱えているお客様はぜひ、私たち日曜日コンサルティングにご相談ください。

私たちの専門知識と技術を活用して、お客様のビジネス成功に貢献できるようサポートさせていただきます。