HTTP監視サービスUptime Robotについて

僕は、お客様のWebサイトのHTTP監視(いわゆるURL外形監視)に、Pingdomというサービスを使用しています。
Pingdomについは、以前にこのブログでも紹介しました。

・HTTP監視サービスPingdomについて(2015年3月版)
https://inaba-serverdesign.jp/blog/20150306/pingdom_201503.html

Pingdomは、監視機能、通知機能そのものは問題がないのですが、以下の点で少し不満がありました。

  • 監視対象が10サイトを超えると、一気に料金が上がる。($14.95/月→$45.95/月、50サイトまで)
  • 管理画面のGUIがもっさりしている。
  • 監視通知先の設定が少しわかりにくい。

最近は、他にも同様のHTTP監視サービスが出てきています。

(参考)
・Best Website Monitoring Services 2017
https://hostingfacts.com/website-monitoring-services/

その中でも「50サイトまで$5.5/月」と安価なUptime Robotがよさげだったので、調査しました。
ここでは、Uptime Robotの機能、Pingdomとの比較、無償の「Free Plan」および有償の「Pro Plan」を使ってみて気づいたこと、などをまとめます。

なお、ここに記載したUptime Robotの調査結果は、2017年6月下旬のものです。
以下、図はクリックすると大きく表示されます。

isdUptime Robotの基本機能

・Uptime Robot
https://uptimerobot.com/

Uptime Robotは、HTTP監視サービスです。
公式ブログによると2010年ごろから始まったサービスだそうで、けっこう古いですね。
登録したURLに対してHTTPアクセスを試行し、ステータスコードがエラーならば、指定した指定した方法でアラートを通知します。
WebサイトやWebサービスのダウンをいちはやく知って対処することで、ダウンタイムを最小限に抑えることができます。

・Uptime Robotのダッシュボード画面

・Uptime Robotのレスポンスタイム表示

Free Planの機能や設定方法などは、他の方の記事が詳しいので、そちらを参照してください。

(参考)
・2分で設置完了!Uptime Robotで今すぐ始めるネットワーク監視
https://liginc.co.jp/web/tool/other-tool/92760

・Uptime RobotでWebサービスの死活監視する
http://hideack.hatenablog.com/entry/2015/03/07/164321

・Uptime Robotのステータス・ページ公開機能
https://hail2u.net/blog/uptime-robot-public-status-page.html

基本的には、アカウントを作成して、監視対象のURLと通知先を登録するだけで監視してくれるので、とても簡単です。
アラート通知は、メールアドレスのほか、Webhookへの通知やSlack等の外部サービスとの連携も可能です。
ステータスページ公開機能は、お客様との情報共有に便利ですね。

少し補足すると、以下の機能もあります。

  • 監視タイプの「Keyword」指定で、HTTPレスポンスに指定の文字列が含まれているかどうかを監視できる。
  • WebサイトのBASIC認証またはDigest認証のユーザー、パスワード指定が可能。

機能面では、Pingdomで気になっていた以下の点は、Uptime Robotでは問題ないことを確認できました。

  • 管理画面のGUIがもっさりしている。
  • 監視通知先の設定が少しわかりにくい。

isdPro Planでの追加機能

Free Planでも「5分間隔で監視、50サイトまで監視、ログは過去2ヵ月まで保存」という機能が無料で使用できます。
50サイトまで監視できて無料ってすごいですね。

Pro Planにアップグレードすると、さらに以下の機能が追加されます。

  1. 月10通までのSMS通知
  2. 監視間隔1分~4分の設定
  3. アラート通知のオプション設定
  4. HTTPリクエスト時のカスタムヘッダ指定

「3. アラート通知のオプション設定」については、デフォルトでは、エラーのときはすぐに1度だけ通知します。
Pro Planでは、下図のように、監視先および通知先ごとに、
「何分連続でエラーしたときに通知するか。エラーが続いたときに、何分間隔で通知するか」
を指定できます。

アラート通知オプションについては、Uptime Robot公式ブログの説明がわかりやすいです。

・New Feature: Advanced Notification Options (for the Pro Plan)
https://blog.uptimerobot.com/new-feature-advanced-notification-options-for-the-pro-plan/

「4. HTTPリクエスト時のカスタムヘッダ指定」については、こちらもUptime Robot公式ブログの説明がわかりやすいです。
例えば、監視HTTPリクエスト時のUser-Agentを変更することができます。

・New Feature: Custom HTTP Headers (for the Pro Plan)
https://blog.uptimerobot.com/new-feature-custom-http-headers-for-the-pro-plan/

isdPingdomとの比較

料金プランや機能、動作面で、Uptime RobotとPingdomを比較します。

料金プラン

・Pingdom: Prices
https://www.pingdom.com/pricing

・Uptime Robot: Prices
https://uptimerobot.com/pricing

サービス・プラン  Pingdom
STARTER 
Pingdom
STANDARD 
Uptime Robot 
Pro
料金(月額) $14.95 $45.95 $5.5
監視対象 10 50 50
SMS通知 10 200 10

 
 
 
 
 
 

※料金は月払いのとき。一年分の一括払いの場合は割引あり。

Uptime Robotの「50サイトまで$5.5」は、かなり安いですね。
上限の50サイトで比較すると、Pingdomの約1/8の金額です。
一方で、SMS通知数はPingdomよりかなり少ないので、SMS通知を使用するなら、通知数が少なくなるよう工夫して運用する必要があるでしょう。

Pingdomと同じこと

以下の点は、Pingdomと同じです。

  • チェック間隔が最短1分
  • 公開ステータスページあり
  • ログ保存(過去のレスポンスタイムの参照)は12ヵ月

Pingdomと違うこと

以下の点は、Pingdomと異なります。

レスポンスタイムの表示が粗い

Pingdomは、直近24時間のHTTPアクセス1回ごとの監視元(どの国のサーバーからのアクセスか)とレスポンスタイムの情報を参照できます。
UptimeRobotは、HTTPアクセス1回ごとの情報を参照する機能はなく、ある程度平均化されたグラフしか見ることができません。

監視元サーバーがずっと同じ

Pingdomは、デフォルトでは、北米またはヨーロッパの、毎回異なる国のサーバーからの監視HTTPアクセスを行います。
また、北米、ヨーロッパ、アジア・太平洋の中から監視元サーバーの地域を選択することもできます。
Uptime Robotの監視元サーバーとIPアドレスについては、公式サイトに説明があります。

・Uptime Robot: Locations and IPs
https://uptimerobot.com/locations

基本的には、USのダラスのサーバーから監視HTTPアクセスを行い、エラーを検知したときは、他の国のサーバーから監視HTTPアクセスを行う、とのことです。
僕が試した限りでは、10サイト登録して、すべて同じIPアドレス 63.143.42.246 からの連続アクセスで、それはずっと変わりませんでした。
(エラーを検知しても変わりませんでした。)

HTTPリクエストメソッドはHEAD

PingdomはGETリクエストですが、Uptime RobotはHEADリクエストです。
あまりないでしょうが、Webサーバー側で、HEADリクエストに対しては特別な処理をするよう設定している場合は注意が必要です。

ちなみに、WordPressサイトでMySQL DBのサービスのみ落としてみると、GETリクエストでもHEADリクエストでも、HTTPステータスコードは同じ「500 (Internal Server Error)」 となります。
このため、Pingdom、Uptime Robotの両者とも、きちんとエラーを検知します。

アラート通知先登録時に承認が必要

アラート通知先のEメールアドレスを登録したとき、そのアドレスに
件名「Uptime Robot – New E-mail Alert Contact Approval」
のメールが届きます。
このメール本文にあるリンクをクリックしてActivateしないと、アラート通知が届きません。

Pingdomでは、このような承認手続きは不要です。
登録ミスや、第三者に勝手に通知先を登録されてしまうことの防止ではありますが、例えば、お客様のアドレスを追加したときに、承認のひと手間をおかけすることになります。

Pro Planで監視アクセスの抜けが多い!

Uptime Robotからのアクセスは、以下のようにUser-Agentに「UptimeRobot」の文字列が含まれています。

63.143.42.246 - - [25/Jun/2017:04:09:20 +0900] "HEAD / HTTP/1.1" 200 0 "https://inaba-serverdesign.jp/" "Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/)"

このため、Webアクセスログを「UptimeRobot」でgrepすると、監視HTTPアクセスがちゃんと来ているか、確認することができます。

 # grep UptimeRobot <Webアクセスログファイル> | less

 

実際にアクセスログを確認すると、ときどき、監視アクセスが来ない(抜ける)ことがわかりました。
抜けるときは、ときどき1分抜けるのではなく、5分以上連続して抜けるケースがほとんどです。
例えば、6月22日から28日まで、とあるサイトを1分間隔で監視したときにアクセスが来なかった(抜け)分数と、稼働率は次のとおりです。

日付   抜け   稼働率  
6/22 26分 98.19%
6/23 18分 98.75%
6/24 11分 99.24%
6/25 4分 99.72%
6/26 9分 99.17%
6/27 18分 98.75%
6/28 92分 93.61%

 
 
 
 
 
 
 
 
 

6月28日は、最大で40分連続の抜けがありました。
7日間合計では、抜けが178分、稼働率は98.23%でした。

※同じサイト、同じ7日間のPingdomの監視は、抜けが1分だけで、稼働率は99.99%でした。

たまたま5分ぐらいHTTP監視アクセスが抜けたときに、同じタイミングで監視対象のWebサイトがダウンすることは限りなく低いとは思います。
ですが、死活監視は、サイト閲覧者と同様の方法で外部からアクセスして、サイトの生死をチェックする非常に重要な機能です。
また、少額とはいえ有償のサービスですので、稼働率は最低でも99.5%ぐらい=1日あたり7分、は欲しいところです。
今回は、たまたまシステムやサーバーが不安定な時期やメンテナンス時間にあたってしまったのかもしれませんが、僕が利用した時間帯で、抜けが多かったことは事実です。
個人的には、信頼性に欠ける有償サービスの利用は控えたいと思い、今回はUptime Robotへの乗り換えはせず、Pingdomを継続利用することにしました。

なお、同サイトの監視は6月20日に登録し、その直後に抜けが多かったので、同日、サポートに(英語で)問い合わせたのですが、
「監視対象の登録直後に生じる問題で、今は問題なく監視できているはず(意訳)」
という返答でした。
中の人が、ときどき抜けが生じることについて大きな問題と捉えていないように感じられたのも残念でした。
(そもそも、登録直後でも抜けがあっては困ります。)

ちなみに、別アカウントでFree Planで試しているほうでは「監視間隔は5分以上」という仕様なので「5分間隔」でテストしていますが、そちらのほうは不思議なことに、一度も抜けがありませんでした。

isdHTTP監視サービスについて

HTTP監視に限りませんが、監視サービスの選択は、機能・料金だけではなく、信頼性、冗長性が重要なポイントになります。
自前の監視サーバーでは信頼性、冗長性を確保するのが大変だから、こういった監視サービスを使用するという面もあるので。

また、HTTP監視のように、システムの外部から監視するサービスは、監視対象サーバーとは異なるネットワーク、サーバーサービスから監視すべきでしょう。
例えば、

  • AWS上で稼働している監視サービスからAWS上のサーバー、サイトを監視する。
  • さくらインターネットの何らかのサーバーで稼働している(と思われる)Mackerelの外形監視機能で、さくらインターネット上のサーバー、サイトを監視する。

という監視では、AWSなりさくらインターネットなりの、そのサーバーサービスやネットワークがダウンしたときに検知・アラート通知できない、ということも、わずかな確率ですが、あり得ます。
そのようなケースでは、せめて、監視元と監視先で、違うリージョン、もしくは違うアベイラビリティゾーンを使用すべきでしょう。

余談になりますが、個人的には、一般的に定着している「外形監視」「外形URL監視」という言葉は直観的でなく、わかりにくいと感じています。
「外の形」とは?
英語だと「Website Monitoring」と表現するようなので、シンプルに「Webサイト監視」でよいのかもしれません。

isdおわりに

Uptime Robotは、機能面や料金については問題なかったのですが、今回試した限りでは信頼性に欠けるため、採用を見送りました。
期待していたのですが、残念です。
本番環境で採用するサービスは、しっかり動作確認を行う必要があるなと、改めて思いました。

それでも、とにかく安価なサービスですから、「多少の抜けがあってもよい」と割り切れるのであれば、十分使えると思います。
また、「5分に一度の監視でも問題ない」ということであれば、Free Planを試してみるとよいと思います。
 

(関連記事)
・HTTP監視サービスPingdomについて(2015年3月版)
https://inaba-serverdesign.jp/blog/20150306/pingdom_201503.html