サイト運用i-Willink
サイトの死活監視は機械に任せる——4つの決めごと
サイトが落ちたことにお客さんの電話で気づく、を避けるには、機械に定期で見させて異常だけ知らせる形にします。見張る対象の一覧、中身まで見る確認、通知の絞り方、見張り役自体の確認の4つを、自社で抜けた例とあわせてまとめます。
サイトの死活監視は、機械に定期で見させ、異常のときだけ人に知らせる形にします。人が毎日見る監視は、いつか抜けます。
サイトが落ちたことに、お客さんからの電話で気づく。いちばん遅い気づき方です。お客さんより先に気づき、できれば連絡が来る前に直し始めている、という順番を作るのが監視の目的です。
預かるサイトが増えるほど、人の目で毎日全部を開いて確かめるのは続きません。この記事では、機械に任せるときに決めておくことを4つにまとめます。どれも、私たちが自社の監視で実際につまずいたところです。
この記事の要点
- 1見張る対象は、契約や台帳から引いた一覧で持つ。一覧から漏れたサイトは、誰にも見張られない
- 2「応答がある」だけでなく、ページに本来あるはずの言葉が出ているか、証明書の期限は近くないかまで見る
- 3通知は異常と変化のときだけ。そして月に1回は、見張り役そのものが動いているかを確かめる
決めごと1: 見張る対象を一覧で持つ
見張る対象は、記憶ではなく、契約や台帳から引いた一覧で持ちます。
監視でいちばん怖いのは、落ちたサイトに気づかないことではありません。そもそも見張っていないサイトがあることに気づかないことです。
私たちは、受託のサイトを週に1回、機械で確かめています。見張る対象は、契約の台帳から引くようにしていました。ところが別の作業でサイトを1つずつ確かめていたとき、台帳に載っていない受託のサイトが1つ見つかりました。台帳から漏れていたので、そのサイトは監視の対象にも入っていませんでした。
それ以来、見張る対象の一覧は「契約しているサイトの一覧」と突き合わせ、片方にしか無いものがあれば知らせる形にしています。新しいサイトを預かったら、監視に足すところまでを引き受けの作業に含めます。
決めごと2: 「開いた」だけでなく中身まで見る
サーバーが応答を返しても、中身が真っ白やエラーの文字だけのことがあります。
サーバーは動いていて応答も返すのに、画面は真っ白、あるいはエラーの文字だけ、ということは起こります。WordPress なら、プラグインの更新の失敗やデータベースの接続の不具合で、こうなることがあります。応答があることと、お客さんが見て成り立っていることは別です。
そこで、トップページに本来あるはずの言葉(会社名や電話番号など)が出ているかも確かめます。多くの監視サービスには、この「キーワード監視」の機能があります。
もう1つ見落としやすいのが、暗号化の証明書の期限です。期限が切れると、ブラウザが「この接続は安全ではありません」と警告を出し、お客さんから見ればサイトは開けないのと同じです。しかもある日を境にいきなり起こります。自動で更新される設定でも、更新の失敗はありえるので、期限が近づいたら知らせる対象に入れておきます。
決めごと3: 通知は異常と変化のときだけ
正常なときにも毎回知らせると、人は通知に慣れて、本当に大事な1通を見落とします。
私たちの自社サービスの見張り役は、最初、毎日の結果を毎回記録して知らせる作りでした。何週間も「すべて正常」が並び、記録はほとんど読まれなくなりました。そこで、前回と完全に同じなら何も言わず、変化や異常があったときだけ記録して知らせる形に変えました。
Google が公開しているサイトの安定運用の考え方(SRE)でも、人を呼ぶ通知は、人がすぐ動く必要があるものに絞るべきだとされています。通知を減らすのは、手を抜くためではなく、本当に大事な1通を見落とさないためです。
通知の先も決めておきます。スマホに届く先(メールや業務のチャット)を1つに決め、夜や休みの日にも見る必要があるサイトかどうかを、預かるときに決めておきます。
決めごと4: 見張り役そのものが動いているか
監視の仕組みも止まります。止まったときは何も知らせてこないので、月に1回確かめます。
見張り役が止まると、通知は来なくなります。そして通知が来ないことは、「すべて正常」と見分けがつきません。
私たちは、定期的に動かしている仕組みの一覧と、実際に最後に動いた時刻を突き合わせる検査を作っています。それで見てみると、止まったまま誰も気づいていなかった仕組みが複数見つかりました。その中には、自社サービスの見張り役も含まれていました。
難しい仕組みは要りません。月に1回、次の2つを確かめるだけでも違います。
- 監視サービスの画面で、各サイトの最後の確認時刻が新しいか
- わざと失敗する対象(存在しない URL など)を1つ入れておき、その通知がちゃんと届くか
道具の選び方
小さな会社なら、無料か安い外部の監視サービスで十分に始められます。
監視は、見張られる側とは別の場所から行うのが基本です。サイトと同じサーバーで動かすと、サーバーごと止まったときに一緒に止まるからです。
外部の監視サービスはいくつもあります。たとえば UptimeRobot の無料プランは、公式の料金ページで、50件まで・5分ごとの確認・キーワード監視つき・商用利用可とされています(証明書の期限の監視が無料で使えるかは、ページ内で記載が食い違っているので、使う前に確かめてください)。
選ぶときは、次の4つを見ます。
- 確認の間隔(5分で足りるか、1分が要るか)
- キーワード監視ができるか
- 証明書の期限を知らせてくれるか
- 通知の先(メール・チャット・電話)に、自分たちがふだん見ている先が選べるか
今日から始める順番
一覧を作り、外部の監視に登録し、わざと失敗させて通知を確かめる、の順に進めます。
- 見張るサイトの一覧を、契約や台帳から作る
- 外部の監視サービスに、各サイトのトップページを登録する(キーワード監視があれば、会社名などを指定する)
- 証明書の期限を見てくれる設定か、別のカレンダーの通知で期限を押さえる
- 存在しない URL を1件登録し、失敗の通知が届くかを確かめる
- 月に1回、一覧と監視の登録が合っているか、最後の確認時刻が新しいかを見る
よくある質問
小さな会社のサイトにも死活監視は必要ですか?
必要です。訪問が少ないサイトほど、落ちていても誰も教えてくれず、気づくのが遅れます。無料か安い外部の監視サービスで、トップページと問い合わせのページだけでも見張っておくと、お客さんより先に気づけます。
確認の間隔は何分ごとがいいですか?
問い合わせや予約を受けるだけのサイトなら、5分ごとで十分なことが多いです。ネットショップのように止まると売上に直結するサイトは、もっと短い間隔を検討します。間隔より大事なのは、通知が確実に人に届くことです。
サイトが応答していれば正常と考えていいですか?
応答があっても、画面が真っ白だったりエラーの文字だけだったりすることがあります。ページに本来あるはずの言葉が出ているかを確かめるキーワード監視を使うと、こうした状態にも気づけます。
監視の通知が多すぎて見なくなってしまいます。どうすればいいですか?
正常なときの通知を止め、異常と変化のときだけ知らせる設定にします。同じ異常が続くときは、最初の1回と復旧のときだけ知らせる形にすると、本当に大事な通知が埋もれにくくなります。
参考・出典
- Google SRE Book: Monitoring Distributed Systems(監視と通知の考え方。人を呼ぶ通知は、すぐ動く必要があるものに絞る)
- UptimeRobot: 料金(無料プランの監視件数・確認間隔・機能)