0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「監視してます」は嘘でした——ただアラートを受け取ってただけだった

0
Posted at

はじめに

「監視業務の経験があります」

転職活動中にそう言っていた時期があります。でも今振り返ると、あれは監視じゃなかった。

やっていたのは「メールやSlackに飛んできたアラートを見て、手順書の番号を上長に報告する」だけ。アラートが何を意味するのか、なぜそのしきい値なのか、何も理解していませんでした。

監視ツールは触っていた。CloudWatchのダッシュボードも開いていた。でも、見ていたのは「アラートが来たかどうか」だけ。

本当の意味での「監視」ではなかったんです。

この記事は、同じことをやっている人に「次のステップ」を伝えたくて書きました。

この記事を読むと、以下のことができるようになります。

  • 「アラートの受け取り」と「監視」の違いを説明できる
  • CloudWatchで何を見ればいいかの基本的な視点が身につく
  • 障害発生時に「どこを確認するか」の思考フローがわかる

「アラートを受け取る」と「監視する」は別のことだった

私がいた現場の運用フローはこうでした。

見た目は「監視」していますが、実態は通知の中継です。

本当の監視は、アラートを受け取る前の段階から始まっています。

アラートは「すでに問題が起きた」ことを知らせるものです。監視とは、その前に「何かおかしい」と気づくための継続的な観察行為です。


私が気づいていなかった3つのこと

1. しきい値に根拠がなかった

当時の現場では、CloudWatchのアラートが設定してありました。「CPU使用率80%で通知」「メモリ90%で通知」。

でも、なぜ80%なのか、90%なのか、誰も説明できなかった。引き継ぎのときに「こうなってるから」と教わっただけ。

本来は、そのサーバーの通常時のCPU使用率がどれくらいで推移しているかを把握した上で、「通常より著しく高い状態」を定義するのがしきい値設計です。

EC2のCPU使用率が普段20〜30%で動いているサーバーなら、80%はすでに危機的な状況かもしれない。逆に、バッチ処理時に毎回70%になるサーバーなら、80%は誤検知だらけになります。

2. ログを読んでいなかった

アラートが発火したとき、ログを見る前に上長へエスカレーションしていました。

でも現場のエンジニアにとって、最初にほしい情報は「何が起きたか」です。アラートはそれを教えてくれません。ログが教えてくれます。

CloudWatchのロググループを開いて、アラート発火時刻の前後のログを確認する。エラーメッセージは何か、どのリクエストで起きているか、直前に何かデプロイや設定変更があったか。ここまでセットで伝えられると、エスカレーション先の判断が格段に速くなります。

3. 「正常」を知らなかった

異常を検知するには、正常を知っている必要があります。

当時の私は、そのシステムの「普段の姿」を知りませんでした。

  • 通常時のCPU・メモリ・ディスクの推移はどうか
  • アクセスのピーク時間帯はいつか
  • デプロイやバッチ処理が走るとメトリクスはどう変動するか

これを知っていれば、「今日のメトリクスはちょっといつもと違う」という変化に気づけます。知らなければ、アラートが来るまで何もわかりません。


CloudWatchで「本当の監視」をするための見方

CloudWatchで見るべき指標と、その意味を整理します。

EC2のCPU使用率(CPUUtilization)

状況 考えられる原因
突然スパイクして戻る 定期バッチ・アクセス集中・メモリ不足によるスワップ
徐々に上昇して下がらない メモリリーク・ゾンビプロセス・不正アクセス
ずっと低いのに突然ゼロになる インスタンスの停止・ネットワーク切断

CPU使用率だけ見ていても不十分です。必ずメモリ・ディスク・ネットワークのメトリクスをセットで確認する習慣をつけてください。

RDSのデータベース接続数(DatabaseConnections)

接続数が急増しているとき、アプリケーション側でコネクションプールが正しく機能していない可能性があります。接続が増え続けると、最終的に「Too many connections」エラーでDBに接続できなくなります。

# CloudWatch Insights でエラーログを確認する例
fields @timestamp, @message
| filter @message like /ERROR/
| sort @timestamp desc
| limit 50

ALBのレイテンシ(TargetResponseTime)

レスポンスタイムが通常より上昇しているとき、原因はEC2・RDB・外部API呼び出しのどこかにあります。一つずつ切り分けることで、ボトルネックを特定できます。


障害発生時の思考フロー

アラートが来たとき、私が今やっている確認の順番です。

以前との違いは「仮説を持って報告する」かどうかです。

「CPUが80%超えました」より「CPUが80%を超えています。同時刻にデプロイが走っており、ログにOOMKillerのメッセージがあります。メモリ不足の可能性が高いと思います」の方が、対応が10倍速くなります。


監視オペレーターが次のステップに進むためにやること

「アラートを受け取るだけ」の状態から抜け出すために、今日からできることを3つ挙げます。

1. 担当しているシステムの「正常値」を記録する

1週間、CloudWatchで各メトリクスを毎日確認して、通常時の推移をメモする。朝・昼・夕・深夜でどう変わるか、バッチが走るときはどうなるか。これだけで「異常に気づく目」が育ち始めます。

2. 次のアラートでログを開いてみる

エスカレーション前に、CloudWatchのロググループを開いてアラート発火時刻のログを見てみる。何が書いてあるかわからなくてもいい。「ERRORという文字列が見える」「さっきまでなかったメッセージが増えた」という観察から始めてください。

3. しきい値の根拠を先輩に聞く

「なぜこのしきい値なんですか?」という質問は、先輩に設計の意図を語ってもらえる最高の入口です。答えてもらえた知識は、そのシステムを理解する核になります。


まとめ

この記事では以下のことを解説しました。

  • アラートの受け取りは「監視」ではなく、監視の出発点に気づくことが大切
  • 正常時のベースラインを知ることが、異常を検知する前提になる
  • CloudWatchのメトリクス・ログを組み合わせて「仮説を持った報告」ができると現場での評価が変わる
  • 今日からできることは「正常値の記録・ログを開く・しきい値の根拠を聞く」の3つ

監視オペレーターの仕事は、やり方次第でスキルアップの宝庫です。同じ画面を見ていても、何を考えながら見るかで、1年後のキャリアが大きく変わります。


ハンズオンラボでは、未経験からでも「作って覚える」をモットーにしたITハンズオンイベントを定期開催しています。

👉 イベント一覧はこちら

運営メンバーのXはこちら
えむ / わたる


面白かったら
「👇いいね」で応援

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?