監視とアラート
静かなことは、無事なこととは限りません
多くの監視システムは、自分自身が止まったときにそれを知らせることができません。静かなまま、すべて正常と表示し続けるため、問題ないと思い込んでしまいます — 実はアラームが数週間前から止まっていたと、ダッシュボードではなくお客様からの連絡で気づくまでは。
構築する内容
外部からの見守り
監視は、お客様自身のサーバー上では動かしません。些細なことに見えますが、これが最も重要な点です。インフラの内部で動く監視は、そのインフラが止まったことを知らせることができません — 同時に止まってしまい、その沈黙は「正常です」という表示とまったく見分けがつきません。だからこそ、見守り役は別の場所に置きます。別のプロバイダー、別の国、別の障害ドメインです。
生存信号
お客様のシステムは、一定間隔で生存信号を送ります。理由を問わず — 見守り役自体の故障を含めて — 信号が止まれば、独立したサービスがアラームを発報します。これは、お客様側のすべてが同時に止まっても生き残る層です。
人に届くアラート
通知は携帯電話と、チームがすでに確認しているチャンネルに届きます。作業完了とみなす前に、実際の端末で受信を確認します。サーバー上に留まったままのメッセージは、アラートとは呼びません。
自分の故障を報告するアラート
通知が届かなかった場合、その失敗は記録され、見える形で残ります — 黙って捨てられることはありません。これは珍しい仕組みで、まさにこのページの冒頭で述べた問題から生まれたものです。自分のエラーを飲み込むシステムは、遅かれ早かれ、何も問題がないのに「大丈夫」だと思い込ませます。
実際の体験
起きること
- 故障時: 携帯電話に、何がどこで起きたかを伝えるメッセージが届きます。
- 故障が続く間: 静かなままです。5分ごとではなく、一度だけ通知されます。
- 復旧時: 正常に戻ったことを伝えるメッセージが届きます。
- 弊社側の障害時: それでも、弊社とは独立したサービスから通知されます。
- 毎月: ご自身で10秒で実行できる配信テストがあります。
対象範囲
監視する対象
- 公開サービス — お客様のサイトやAPIを、ネットワークの外側から、お客様の顧客が見るのと同じ形で確認します。
- バックアップ — 実行されたかどうかだけでなく、復元できるか、正しいデータを取得しているかまで確認します。
- 定期処理 — 一定のリズムで実行されるべき処理を対象に、そのリズムが止まったときに警報します。
- 監視そのもの — ほとんど誰も提供していない層です。
バックアップについて、特に
バックアップが実行されたかを確認するのは簡単な部分で、多くの設定はそこで止まっています。弊社では、それが復元できるか、そして復元元が現在の本番システムであるかまで確認します。
この2つは別の問いであり、高くつく落とし穴はその間に潜んでいます。バックアップ処理は毎晩問題なく実行され、すべての確認をパスしていながら、数か月前にアプリケーションが使わなくなったデータベースを律儀に保存し続けている、ということが起こり得ます。
進め方
- 推測せず、先に測定します。 何も仮定で提案しません。設定は意図を表すだけで、実態と食い違うことが多いため、まず実際に何が動いているかを確認します。
- 端から端まで確認します。 「サービスが起動した」ではなく、実際のアラートが実際の携帯電話に届き、誰かがそれを見ていることまで確認します。
- すべて文書化します。 平易な言葉で書いた手順書に、各アラートの意味、対応方法、朝まで待ってよいものを記載します。疲れてストレスを抱えた状態の人に向けて書きます。アラートはそういう状態のときに届くからです。
- お客様のものです。 インフラも、アカウントも、認証情報も。弊社に縛られることはなく、ご希望の相手にいつでも引き継げます。
正直に
これではないもの
- 24時間365日の当番対応ではありません。 お客様を起こす仕組みを構築します。契約に基づく対応は別のご相談です。
- パフォーマンス監視ではありません。 ここで扱うのは可用性と完全性です — 稼働しているか、バックアップが本物か。プロファイリングやトレーシングは別のサービスです。
- 第三者を介さないわけではありません。 独立した層が独立しているのは、まさに別の会社がそれを運用しているためです。そこが重要な点であり、どこに誰が関わり、その部分が何を見ているかを正確にお伝えします。
始め方
3つのステップ
- 診断 — 現状を確認し、既に故障している部分も含め、実際に何が動いているかをご報告します。この段階だけで何かが見つかることがよくあります。
- 導入 — 多層のアラートを、お客様の前で端から端まで確認しながら構築します。
- 引き渡し — 手順書、認証情報、そしてご自身で実行できる配信テストをお渡しします。