はじめに
システム監視で重要な概念となる、「可観測性とは何か?」
そもそも知らなかったり、なんとなくわかるけど人に説明のは難しかったりするかと思います。
そこで今回は、新入社員である私でも理解できた、
初心者でも理解しやすい「監視」と「可観測性」の違いを解説している動画を見つけたので、その内容をまとめていきます。
監視(Monitoring)とは
定義
システムが正常に機能しているかを確認するために、事前に定義したいくつかの値(CPU使用率、メモリ使用量、レスポンス時間など) をチェックすること。
例)Zabbix, New Relic
特徴
- 既知の問題を検出する
- 事前に定義されたメトリクスに基づく、受け身の手法。
- 「何が」起きているかを知る
可観測性(Observability)とは
定義
可観測性は、監視で確認できる何が起きているか(What) に加えて、なぜ(Why) 、どこで(When) もみていけるもの。
これまで想定していなかった未知の問題に対しても、
- 影響範囲を素早く把握し
- 根本原因にたどり着き
- 次に取るべきアクションを判断できる
特徴
- 未知の問題も検出する
- 可観測性の4つの柱(後で説明します) に基づく、積極的な手法。
- 「何が」、「なぜ」、「どこで」起きているかを知る
監視と可観測性の違い
| 項目 | 監視 | 可観測性 |
|---|---|---|
| アプローチ | 事前定義された値の確認 | 包括的な調査が可能 |
| 問題対応 | 既知の問題を検出 | 未知の問題も理解できる |
| 情報の深さ | 「何が起きたか」 | 「何が・なぜ・どこで」 |
可観測性の4つの柱
可観測性を実現する。つまり、
既知の問題だけでなく未知の問題に対しても、「何が」「なぜ」「どこで」起こったのか包括的にみていくためには、
以下の4つの要素が重要:
- メトリクス(Metrics) - 数値データ(CPU、メモリなど)
- ログ(Logs) - イベントの記録
- トレース(Traces) - リクエストの流れ
- プロファイリング(Profiling) - パフォーマンス分析
実際の例を用いてみていきます。
1. メトリクス

メトリクスでは、「何が」がわかる。(監視と同じ)
例)CPU使用率が95%以上、500エラーが増えている、メモリがまんぱんだ。というメトリクスから、悪い問題が起きていることがわかった。
2. ログ

ログでは、「なぜ」がわかる。
例)データベース接続が失敗した。ユーザー認証のエラーがあるというようなエラーを見て、メトリクスで確認した問題の原因がわかる。これで十分な気もしてきました。
3. トレース

トレースでは、「どうやって」がわかります。
例)ユーザーログインのリクエストが5つのサービスにわたっていて、3番目のサービスで失敗しているということを確認して、問題がどういう流れの中で起きたのかがみれた。
4. イベント

イベントでは、「いつ」「何が起きたか」を時系列でまとめて確認できる。
そのため、問題が発生した際に、原因になりそうな変更や出来事を考察しやすくなる。
例)「イベント① デプロイが3:00PMにあった。」「イベント② サーバークラッシュが5:45AMにあった。」とイベントを並べて見ることで、「サーバークラッシュは新リリースの後に起きている。
新しくデプロイした内容に問題があるのではないか」と、原因の仮説が立てられる。
まとめ
-
監視は、事前に決めた指標をもとに
「何が起きているか」を検知するための仕組み -
可観測性は、
「何が・なぜ・どこで・いつ起きたのか」を立体的に理解するための考え方 -
可観測性は、可観測性の4つの柱によって、監視を含むより広範囲で積極的なシステム監視を可能にする。
- 監視:M(Metricのみ)
- 可観測性:MELT(Metric / Event / Log / Trace)
現代の複雑なシステムでは、「アラートに気づく」だけでなく、「なぜ起きたのかを素早く理解する」ために可観測性が不可欠かと思います。
IBMにも可観測性を運用で実現させるInstanaという製品がありますので、ご興味あればのぞいてみてください!

