第34回 「サーバー監視」のオープンソース
こんにちは、うちです。
今回のテーマは、サーバーがちゃんと稼動している状態かをチェックするオープンソースのお話です。
レンタルサーバー会社やクラウドサービスは、よくサーバーの「稼働率99.9999%」などと公表していますが、実際、運用後のサイトを対象
に自分で計測してみたら実際のところどれぐらいなんだろう?と思い、調べてみたのがきっかけです。
■オープンソースの死活監視「UPTIME」
https://github.com/fzaninotto/uptime
監視対象のサーバーとは別のサーバーに、このUPTIMEをインストールして使います。
秒単位でアクセスして、レスポンスが返ってくるかどうかをチェックするという仕組みです。
対象のサーバーに何もインストールせずに、サービスの稼動状況を確認できる簡易的な監視サービスを構築できます。
こちらのサービスは、簡単に構築でき、1つのUPTIMEサーバーで無制限の対象サーバー数を監視できるという特徴があります。
・UPTIMEの構成
UPTIMEは、サーバーサイドのJavaScriptとよく説明されている「node.js」と、データベースにはNoSQLな「mongoDB」で構成されており、apache等で動くのではなくウェブサーバー機能も内蔵されているというギークな構成のプロジェクトです。
・監視対象
今回は、3つの異なるホスティングサービス事業者上で公開している自社サイ
トを対象に、1ヶ月間稼動状況を確認してみました。
ホスティングサービスA・・・公表稼働率「99.99%以上」
ホスティングサービスB・・・公表稼働率「99.999%以上」
ホスティングサービスC・・・非公表稼働率
ホスティングの月額は
C社>>A社≒B社
といった感じです。
1ヶ月間計測した場合の稼働率について、30日間ある月の場合、
1ヶ月は60分24時間×30日=43200分
稼働率99.99%の場合の非稼動割合0.01%で、
43200分×0.0001=4.32分
稼働率99.999%の場合の非稼動割合0.001%で、
43200分×0.00001=0.432分(約25秒)
というのが理論上の数字です。
A,B,C上のサイトを1分おきに監視します。
また、このUPTIME自体がちゃんと動作してくれているのか?正しい結果が得られているかを確認するために、同様の機能を提供しているウェブのサービス「pingdom」でも同時に監視してみました。
・UPTIMEの設定
UPTIMEでサーバーを監視する設定は非常に簡単で、対象サーバーのURLと名前をだけですぐに監視が可能、また、監視の間隔は秒単位で指定が可能です。
・監視の結果
結果画面の表示は、日ごと、時間ごと、分ごとで指定できます。以下は、ホスティングサービスAの結果画面です。
左側に、1ヶ月間の稼働率やダウンタイム、平均応答時間など統計がわかるようになってます。
右側のグラフからは、稼働率100%だったのは17日のみというのと、26日に比較的大きな障害が発生しているのがわかります。
日ごとの稼働率やダウンタイム、応答時間を一覧でも確認できます。
1ヶ月間監視した結果は以下の通りです。
|
サービスA |
サービスB |
サービスC |
Availability公表値 |
99.99% |
99.999% |
非公開 |
Availability |
99.535% |
99.910% |
99.995% |
Downtime |
3hour |
39minutes |
2minutes |
Response Time |
353ms |
364ms |
192ms |
Responsiveness |
99.278% |
99.525% |
99.955% |
実際に計測してみると、1ヶ月で最短2分、最長3時間とダウンタイムで開きがみられ、ホスティング会社によって結構クオリティーが違うな、というのが実測でわかりました。(pingdomでの計測結果も同様の順位でした)
また、ホスティングサービス提供会社の公表値よりも実測値は低いというのもわかります。この理由として、以下のことが挙げられると思います。
・ホスティングサービス提供会社は「メンテナンスによる停止時間は除く」など、ダウンタイムとしてカウントしない例外をのぞいた稼働率を公表していたりする。
・ドメインを契約しているドメインサービス提供会社のDNSサーバーが反応せず、名前解決できないためアクセスできないなど、ホスティングサービス以外に起因するダウンも経験した。
いかがでしたでしょうか。
24時間集客や販売を担う「ホームページ」や「ネットショップ」など、ダウンしている時間が多いとそれだけ機会損失につながりますね。
それだけでなく、googleの検索エンジンのランキングを決めるアルゴリズムの中に、「サイトの応答速度」も含まれるということが公表されています。
訪問者や検索エンジンロボットが来訪した際に、ページが表示されなかったり、ページの表示が遅いとマイナスになるのは明白です。
これらをお手軽、簡易に確認するのにも「UPTIME」は有効です。
ぜひトライしてみてはいかがでしょうか?
オープンソース geek(変人)列伝 バックナンバー