これはただの日記

なにも考えていないようだ

[SRE Advent Calendar] 監視システムの特徴から考える監視設計のポイント

SRE Advent Calaendar 1日目の記事です。

 

qiita.com

 

SRE Advent Calaendar 1 がすぐ埋まってしまったので、SRE Advent Calaendar 2 もあります。

 

qiita.com

 

本記事では、SREのみなさんに向けて、監視システムの特徴から考える監視設計のポイントをお伝えします。

 

SREと監視

SREのみなさんにとっては当たり前すぎると思いますが、SREと監視は切っても切り離せない関係にあります。

SREのお仕事は、サービスの信頼性を維持・向上させることであり、そのためには信頼性を計測しなければなりません。

 

モニタリング?監視?

さて、SREの文脈では、度々、「モニタリング」というキーワードが登場します。

モニタリングと監視は、どのような関係性にあるのでしょうか。

 

私の解釈は、以下です。

- 監視: 状態を見張ること

- モニタリング: 状態を観測・分析する行為全般(監視を含む)

 

今回のブログでは、主に監視について扱います。

 

監視とは網である

私は、「監視とは網である」と考えています。そして、網に問題が引っかかったら対応(問題を取り除くこと)をします。

 

監視を網と考えることで、監視システムの特徴が分かる

監視を網と捉えると、監視システムのいくつかの特徴をうまく認識できます。

 

1. 網目なので、完璧に防ぐことはできない

2. 網目をこまかくすれば、より多く引っかかる

3. 網なので、破れる

4. 問題の大きさが変われば網目も変えなければならない

 

順を追って説明します。

 

1. 網目なので、完璧に防ぐことはできない

監視を作るときに陥りがちなのが、すべての問題を検知できる監視システムを設計しようとしてしまうことです。

しかし、監視を網と捉えると、これは不可能であることが分かります。なぜなら、網には網目が存在するので、完全に穴を防ぐことはできないからです。

 

 

また、問題をできるだけ多く検知するために、網を複数枚用意することにはお金がかかりますし、網目をより細かくしたり、網を新しく設置するには時間も必要です。

ですので、「どれだけの網があればよいのか」「また、網目の細かさはどれくらいが適切か」「いつまでに網を設置すればよいのか」をはじめに考えておく必要があります。

 

すべての問題を検知する監視システムは実現できないので、はじめから妥協点を決めなければならない。これが監視システムの特徴の1つ目です。

 

2. 網目をこまかくすれば、より多く引っかかる

次に、網目をこまかくすれば、より多くの問題を引っかけることができます。これは、監視システムに時間とお金をかければ、問題をより多く検知できるようになることを示します。当然ですね。

 

あわせて考えなければならないのが、引っかかった問題は、取り除かないといけないということです。つまり、網目を細かくし、より多くの問題が引っかかるようになればなるほど、問題に対応するコストが増大することを示します。

 

時間とお金をかけて監視の網目を細かくしたのに、網を管理する人の仕事は増えるわけです。(一方、サービスを利用している人にとっては、問題に直面する確率が減るのでサービスの信頼性は向上しますが。)

これも意外と見落としがちな監視システムの特徴です。

 

3. 網なので、破れる

監視は網なので、破れます。これは、監視システム自体のダウンタイムの発生や、一部の監視項目の動作が不安定になる可能性を指します。

 

監視システムは常に動き続けるものを想像しがちですが、網と考えれば、たまに破れる可能性があることをより認識しやすくなるでしょう。

また、網が破れる可能性があるのであれば、複数の網を活用することも視野に入れるべきかもしれません。(もちろん、網の設置コストも増大します。)

 

4. 問題の大きさが変われば網目も変えなければならない

 最後に大事なポイントは、問題の大きさが変われば網目を変えたり、新しく網を設置する必要があることです。

 

これは、求めるサービスレベルが向上すれば、これまで検知せずとも許されていた問題も検知しなければならないことを示します。

逆に言うと、現在利用している網で、求めるサービスレベルを実現できているのであれば、無理に網目を変える必要はないということです。

 

監視は、サービスレベルとセットで考える必要があることも監視システムの大事な特徴です。

 

まとめ

本記事では、監視を網に例え、監視システムの特徴を解説しました。以上から分かる監視設計のポイントを最後にまとめます。

 

  • すべての問題を検知できる監視は、はじめから目指さない
  • 監視項目の追加は、OnCall対応(障害対応)コスト増大とセットで考える
  • 監視システムは停止する前提で監視設計すべし
  • 監視は、サービスレベルを意識して 設計する

 

以上です。

 

さいごに

本記事では、網のかけ方(監視対象)や網の種類(監視方法やツール)については解説しませんでした。

そのあたりにご興味ある方は、私が過去に発表した以下資料をご参考ください。

(いま改めて読んでみると、修正したいポイントもいくつか見つかりました。いつか資料を修正したいと思います。)

 

speakerdeck.com

 

 

また、私の師匠が書いた以下記事も、監視システムとは何かを考える上でたいへん素晴らしい記事なので、こちらもあわせてどうぞ。

 

blog.cybozu.io

 

何か疑問点やご意見あれば、 @katsuhisa__ までご意見いただけると嬉しいです!