監視設計、どこまでやるべきか【過不足を決める判断基準】

仕事・現場リアル

新しいシステムの監視設計を任されたとき、まず迷うのがこれだと思います。

どこまで監視項目を入れるべきか。

多すぎれば、アラートが鳴りすぎて誰も見なくなる。少なすぎれば、障害に気づけない。

正直に告白します。私は若いころ、とにかく全部入れる派でした。

「監視項目は多いほど安心」と思っていたんです。CPU、メモリ、ディスク、プロセス、ログ、サービス——思いつく限り設定しました。

結果どうなったか。毎日大量のアラートが飛んできて、誰も見なくなりました。

本当に重要なアラートが、ノイズに埋もれて見過ごされる。これでは監視している意味がありません。

今回は、19年やってきて固まった「監視設計の判断基準」を書きます。


監視設計で最初に決めるべきこと

項目を並べる前に、決めておくべきことがあります。

そのアラートが鳴ったとき、誰が、何をするのか。

これに答えられない監視項目は、入れるべきではありません。

私が設計するときに必ず自問するのが、この3つです。

  1. 鳴ったら、人が動く必要があるか
  2. 動くとして、何をすればいいかが決まっているか
  3. それは、今この瞬間にやるべきことか

3つすべてにイエスと答えられるものだけが、アラートにする価値があります。

「一応入れておこう」で追加した項目が、後々ノイズになります。ここを最初に決めておくかどうかで、運用の負荷がまったく変わります。


監視は3層で考える

私は監視項目を、3つの層に分けて考えています。

第1層:サービスが提供できているか

利用者から見て、システムが使える状態かどうか。

  • HTTP応答(ステータスコード、レスポンスタイム)
  • ログイン処理が通るか
  • 主要な業務機能が動くか

これが最上位です。 極端な話、CPUが90%でもサービスが正常に提供できているなら、緊急ではありません。

第2層:構成要素が動いているか

サービスを支えるプロセスやサービスの死活。

  • サーバーの死活(Ping、SSH/RDP接続)
  • 各サービス・プロセスの起動状態
  • データベース接続
  • 連携先との疎通

第3層:リソースに余裕があるか

将来的な障害の予兆。

  • CPU、メモリ使用率
  • ディスク使用率
  • ネットワーク帯域
  • コネクション数

この3層で、緊急度が変わります。

第1層が落ちていれば即対応。第2層は原因調査。第3層は計画的な対処——という切り分けができると、対応がぶれません。


最低限入れておく項目

「まず何から」と聞かれたら、この項目を挙げます。どの環境でも共通して必要になるものです。

サーバー・OS

  • サーバーの死活監視
  • CPU使用率(継続的な高負荷)
  • メモリ使用率
  • ディスク使用率(これは必須)
  • 時刻同期のずれ

ディスク使用率は、絶対に入れてください。

ディスク枯渇は、静かに進行して、ある日突然すべてを止めます。ログが書けなくなり、DBが更新できなくなり、サービスが停止する。しかも復旧に時間がかかります。

そして、予兆が明確に出る数少ない障害です。監視していれば必ず防げます。

サービス・アプリケーション

  • 主要サービス・プロセスの死活
  • ポートの応答
  • HTTP/HTTPSの応答(ステータスコード)
  • 証明書の有効期限

証明書の有効期限も忘れずに。 期限切れは事前に必ずわかるのに、監視していないと当日まで気づきません。

バックアップ・ジョブ

  • バックアップの成功/失敗
  • 定期バッチの実行結果

「成功したか」だけでなく「実行されたか」も見る必要があります。ジョブ自体が起動していないケースがあるからです。


「入れない」判断をするとき

逆に、入れるかどうか迷ったときの考え方です。

鳴っても何もできない項目は入れない

たとえば、「一時的にCPUが80%を超えた」というアラート。

これが鳴って、担当者は何をするでしょうか。おそらく、状況を確認して「様子見」で終わります。

行動につながらないアラートは、ノイズです。

こういうものは、アラートではなくグラフで見るようにします。傾向として把握できれば十分で、都度鳴らす必要はありません。

対応できない時間帯に鳴らさない

夜間に無人運用しているシステムで、深夜にアラートを鳴らしても意味がありません。

アラートは、対応できる体制とセットです。

体制がないなら、翌朝まとめてレポートで確認する形にする。鳴らすだけ鳴らして誰も見ないのが、一番よくない状態です。

重複する項目は絞る

同じ障害で、複数のアラートが同時に鳴ることがあります。

サーバーが落ちたとき、死活監視、プロセス監視、HTTP監視、連携先の疎通監視——全部が一斉に鳴る。

1つの障害で10通のメールが来ると、状況把握が遅れます。

依存関係を設定して、上位の障害が発生したら下位のアラートを抑制する。この設定ができる監視ツールなら、必ず活用してください。


しきい値の決め方

「CPU 80%で警告」といったしきい値。ここも迷うポイントです。

私の考え方は、こうです。

1. まずは一般的な値で設定する

最初から最適値はわかりません。CPU 80%、メモリ 85%、ディスク 80%——一般的な値でスタートします。

2. 1〜2ヶ月運用して、実態に合わせる

実際に運用してみると、そのシステムの「普段の値」が見えてきます。

普段から常時70%で動いているシステムなら、80%のしきい値は低すぎる。逆に、普段20%のシステムが50%になったら、それは異常の兆候です。

しきい値は、システムごとの「普段」を基準に決める。 一般論より、実測値のほうが正確です。

3. 継続時間を条件に入れる

瞬間的なスパイクで鳴らさないよう、「5分間継続したら」といった条件を入れます。

これだけで、アラート数はかなり減ります。


監視設計は、一度で完成しない

最後に、一番伝えたいことを書きます。

監視設計は、作って終わりではありません。

システムは変化します。負荷も変わる、構成も変わる、業務も変わる。だから監視も、それに合わせて変えていく必要があります。

私がやっているのは、これです。

  • 半年に一度、鳴っているアラートを棚卸しする
  • 対応不要だったアラートは、しきい値を見直すか削除する
  • 障害があったのに鳴らなかった項目は、追加を検討する

「鳴りすぎているアラート」と「鳴らなかった障害」。 この2つを見れば、監視設計の過不足がわかります。

最初から完璧を目指さなくていい。運用しながら育てていくものだと思っています。


まとめ

監視設計の判断基準をまとめます。

最初に決めること

そのアラートが鳴ったとき、誰が、何をするのか。

  • 鳴ったら、人が動く必要があるか
  • 何をすればいいかが決まっているか
  • それは今すぐやるべきことか

3層で考える

  1. サービスが提供できているか — 最優先
  2. 構成要素が動いているか — 原因調査
  3. リソースに余裕があるか — 計画的な対処

最低限入れる項目

  • サーバー死活、CPU、メモリ、ディスク使用率
  • 主要サービス・プロセス、ポート、HTTP応答、証明書の有効期限
  • バックアップとバッチの実行結果

入れない判断

  • 鳴っても何もできない項目は入れない
  • 対応できない時間帯に鳴らさない
  • 重複する項目は依存関係で抑制する

しきい値の決め方

  • 一般的な値でスタートし、実態に合わせて調整
  • システムごとの「普段」を基準にする
  • 継続時間を条件に入れる

監視は、多ければいいものではありません。

本当に必要なアラートが、確実に届く状態。 それが目指すところだと思っています。

もし今、アラートが鳴りすぎて困っているなら——まずは「鳴っても何もしていないアラート」を洗い出すところから始めてみてください。

コメント

タイトルとURLをコピーしました