エンジニアにとって、自社サービスや利用している外部APIのダウンタイムは最大の敵です。障害をいかに早く検知し、復旧に繋げるかは、SRE(Site Reliability Engineering)の観点からも非常に重要です。
今回は、私が普段意識している監視体制の構築と、効率的なデバッグのために活用している手法について共有します。
1.監視の 3 つのフェーズ
安定した運用を行うためには、以下の 3 段階でアプローチを考える必要があります。
*外勤監視(外からの死活監視): ユーザーと同じルートで正常にアクセスできるか。
*内勤監視(リソース監視): CPU、メモリ、ディスク I/O に異常はないか。
*ログ分析: エラーログの急増をトリガーに通知を送る。
2.外部サービスの状況把握
自社システムだけでなく、依存している外部インフラの稼働状況を把握することも欠かせません。例えば、ai down tracker などのツールを組み合わせて、外部要因によるエラーなのか自社コードの問題なのかを瞬時に切り分ける仕組みを作っておくと、MTTR(平均復旧時間)を劇的に短縮できます。
3.通知のノイズを減らす
監視を設定しすぎると、今度は「アラート疲れ」が起きます。 私は以下の基準で通知を整理しています。
*Critical: 即座に電話や PagerDuty で通知(深夜でも対応が必要なもの)。
*Warning: Slack の専用チャンネルに流し、翌営業日に確認。
*Info: ダッシュボードでのみ確認。
まとめ
監視は「設定して終わり」ではなく、システムの成長に合わせて常にチューニングしていくものです。皆さんはどのような監視スタックを使っていますか?ぜひコメント欄で教えてください。