Webサイトが死んだら教えてくれる無料の外形監視ソフトの導入と使い方

AWSで構築したWebサイトが、最近立て続けにダウンしました。

たまたまWebサイトにアクセスしたから気づけたものの、最悪の場合、障害に気づかず放置されていた可能性もあったでしょうね。

今後はすぐ気づけるように、外形監視ツールでWebサーバーが正常に動作しているか監視することにしました。

 

外形監視とは

Webサービスが正常に動作しているか、ユーザー側の視点でモニタリングすることを外形監視といいます。

対象のWebサービスが動作しているサーバーに対して ping を打ったり、特定のURLのレスポンスを診て、異常があればメールやSlackで通知を飛ばします。

 

無料の外形監視ソフト「Uptime Robot」

uptime-robotのWebサイトトップ画面

はてなのマカレルやDatadogなど、有名どころも含めていくつか試しましたが、「Uptime Robot」が一番シンプルで簡単でした。しかも無料で使えます。

 

Uptime Robotの使い方

サインアップ後、ダッシュボードでモニターを追加します。

Uptime Robotのモニター追加ボタン

合計4つの外形監視を設定することができます。

順に簡単に説明しますね。

 

Ping監視

ネットワーク的に生きているか確認するには ping を使います。

  1. Pingを選択
  2. わかりやすい名前をつける
  3. 監視対象のサーバーのIPを入力
  4. 通知先にチェック
  5. 作成ボタンを押下

モニタリング間隔はデフォルトの5分でOKです。

UptimeRobotでPing監視を設定するための説明画像

 

Port監視

ping監視はネットワーク層をチェックしてくれますが、その上の層で動作しているWebサーバー(ApacheやNginxとか)の異常まではチェックできません。

Webサーバーが正常に稼働しているか確認するには Port監視 を使います。

ping監視と設定方法はほぼ同じですが、念のため説明すると次のように設定できます。

  1. Portを選択
  2. わかりやすい名前をつける
  3. サーバーのIPを入力
  4. 監視したいポート番号を指定
  5. 通知先にチェックを入れる
  6. 作成ボタンを押下

UptimeRobotでPort監視を設定するための説明画像

 

 

HTTP(S)、Keyword監視

アプリケーションレベルで正常か確認するには、HTTP(s)かKeyword監視を使います。

Keyword監視は、Webページに記載されている特定のキーワードをチェックする監視項目です。キーワードが検出できなかった時に、Webサーバーになんらかの異常が起きたと判断して、アラートを飛ばします。

例えば「OK」とだけ記載されたWebページを用意し、「ok」の文字列が正常に検出できるかをチェックします。

keyword監視のために用意した「OK」のみの単純なWebページの画像

 

ブログやWebサイトのキーワードを直接監視しても良いですが、サーバーに多少負荷を与えてしまいますし、グーグルアナリティクスの集計結果にも影響が出てしまいます。

そのため、上記のような監視用のページを用意します。

 

Keyword監視用のページを用意できたら、次のように設定します。

  1. Keywordを選択
  2. わかりやすい名前をつける
  3. 監視対象のWebページのURLを入力
  4. Webページの特定のワードを指定
  5. 「Keyword Not Exists」を選択(キーワードが検出できなかった時にアラートを飛ばします)
  6. 通知先にチェックを入れる
  7. 作成ボタンを押下

 

UptimeRobotでKeyword監視を設定するための説明画像

 

モニタリングの様子

下図はKeyword監視のモニタリング結果です。

設定してしばらくすると、このようにモニタリングされます。

Keyword監視のモニタリング結果

 

まとめ

Webサイトの外形監視ができる無料のソフトウェア「Uptime Robot」の導入方法と使い方をまとめました。

メトリクス監視はAWSのCloudWatchで補いつつ、これで攻守ともに死角なしですね。

コメントを残す

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.