アップタイムアラートの設定方法: ステップバイステップガイド
アップタイムアラート設定: クイックリファレンス
| 決定事項 | 推奨事項 |
|---|---|
| プライマリチャンネル | チーム全体の認知にはSlack + オンコール対応にはPagerDuty |
| 確認方法 | アラート送信前に2つ以上のリージョンで障害を確認する |
| 連続失敗 | 連続2〜3回の失敗後にアラートを送信する(1回では送信しない) |
| エスカレーション | オンコール担当(0分)→ チームリード(10分)→ マネージャー(20分) |
| クールダウン | 同一障害に対する繰り返しアラートは15〜30分間隔を設ける |
| アラート内容 | サービス名、URL、エラーの種類、障害時間、ダッシュボードリンク |
| 環境別ルール | 本番: フルアラート。ステージング: Slackのみ。開発環境: なし |
| レビュー頻度 | アラートルールとノイズレベルの月次レビュー |
なぜアラート設定がモニタリングで最も重要なのか
アップタイムモニターの設定自体は簡単な作業です。難しいのは、そしてモニタリングが実際にサービス停止からチームを守るかどうかを左右するのは、アラートの設定です。適切なアラートが設定されていないモニターはただのログシステムに過ぎません。アラートの設定が不適切なモニターはさらに問題で、チームが通知を無視するよう訓練してしまいます。
アラート設定が正しければ、チームは数分以内にサービス停止を検知して解決できます。設定が間違っていると、アラート疲れ(誤検知が多すぎてチームがすべてを無視するようになる状態)か、アラートの見落とし(実際の障害が何時間も通知されない状態)のどちらかに陥ります。
このガイドでは、通知チャンネルの選択から、エスカレーションポリシーの構築、誤検知の削減、インシデント対応の自動化まで、アップタイムアラート設定のあらゆる側面を説明します。モニターをまだ設定していない場合は、まずアップタイムモニタリングとはおよびモニタリングツールの選び方のガイドを参照してください。
ステップ1: アラートチャンネルを選ぶ
アラートチャンネルの種類によって目的が異なります。重要なのは、アラートの深刻度と緊急度に応じて適切なチャンネルを選ぶことです。
Slack / Microsoft Teams
最適な用途: チーム全体への周知、重要度の低いアラート、重大なアラートのサブチャンネルとして。
Slackは多くのチームにとってデフォルトのアラートチャンネルです。専用の #monitoring や #incidents チャンネルにアラートを投稿すれば、チーム全員がアラートを確認し、スレッドで話し合い、対応を調整できます。ただし、重大なアラートにはSlackだけでは不十分です。人々はチャンネルをミュートしたり、席を外したり、就業時間外にメッセージを見逃したりすることがあります。
PagerDuty / Opsgenie / VictorOps
最適な用途: 特に就業時間外に即時の人的対応が必要な、重大な本番環境のアラート。
インシデント管理プラットフォームは人を起こすために設計されています。電話、SMS、プッシュ通知を通じてエスカレーションを行い、確認と解決の追跡ができます。設定した時間内に誰かが確認しなければ、次の担当者にアラートがエスカレーションされます。本番環境サービスには不可欠な仕組みです。
メール
最適な用途: 緊急度の低い通知、日次・週次サマリー、コンプライアンス記録。
メールは最も遅いアラートチャンネルです。SSL証明書の有効期限警告(30日前)、週次のアップタイムレポート、解決済みインシデントのサマリーなど、緊急度の低い通知に使用してください。重大なアラートにメールだけを使用することは絶対に避けてください。
SMS
最適な用途: 最も重大な問題に対する最終手段のエスカレーション。
SMSはほとんどの電話でサイレントモードを突破します。他のチャンネルで確認されていないSeverity 1のインシデントのみに使用してください。SMSを多用しすぎると、人々が番号をブロックするようになります。
Webhook
最適な用途: カスタム統合、自動化ワークフロー、ChatOps。
Webhookを使うと、アラートが発生したときにカスタムアクションをトリガーできます。Jiraチケットの作成、ステータスページの更新、Discordへのメッセージ送信、自動修復スクリプトのトリガーなどが可能です。最も柔軟なチャンネルですが、設定には開発の手間がかかります。
推奨チャンネル戦略
| 深刻度 | チャンネル | 対応時間 |
|---|---|---|
| 重大(Sev 1) | PagerDuty + Slack + SMSエスカレーション | 5分以内 |
| 高(Sev 2) | PagerDuty + Slack | 15分以内 |
| 中(Sev 3) | Slackのみ | 1時間以内 |
| 低(Sev 4) | メール + Slack(非緊急チャンネル) | 翌営業日 |
ステップ2: アラートトリガーを設定する
トリガー設定は、アラートが発火するタイミングを決定します。ここで、検知速度と誤検知率のバランスを取ることが重要です。
マルチリージョン確認
単一のモニタリング拠点が障害を検知しただけでアラートを送信しないでください。少なくとも2つの地理的リージョンからの確認を必須とします。ニューヨークからサービスにアクセスできなくても、ロンドンと東京からはアクセスできる場合、それは完全な障害ではなく地域的なネットワーク問題の可能性が高いです。マルチリージョン確認により、誤検知の大部分を排除できます。
連続失敗しきい値
1回の失敗チェックは、短時間のネットワーク障害、一時的なサーバースパイク、またはモニタリングプラットフォーム自体の問題が原因である可能性があります。アラートを発火させる前に2〜3回の連続失敗を要求するよう設定してください。30秒間隔のチェックでは、一時的な問題を除外しながら60〜90秒以内に実際の障害を検知できます。
タイムアウト設定
チェックに適切なタイムアウト値を設定してください。エンドポイントの種類によって、10〜30秒が妥当なデフォルトです。API ヘルスチェックは1秒以内に応答すべきなので、10秒のタイムアウトは余裕があります。複雑なダッシュボードを描画するページは正当に5秒かかる場合があるため、より長いタイムアウトが必要です。
タイムアウトが短すぎると、遅いが正常な応答でも誤検知アラートが発生します。長すぎると、サービスが本当にハングしているときの検知が遅れます。
ステータスコードルール
どのステータスコードがアラートをトリガーするかを具体的に設定してください。
アラート対象: 5xxエラー(サーバーエラー)、ヘルスエンドポイントでの長期的な4xx、タイムアウト、接続拒否
アラート不要: 301/302リダイレクト(通常は想定範囲内)、重要でないパスへの404、429レート制限(持続しない限り)
特殊ケース: 内容が不正な200 OK(コンテンツ検証を使用して検知する)
ステップ3: エスカレーションポリシーを構築する
エスカレーションポリシーは、アラートが適切な担当者に届くことを確保し、確認されないアラートが見落とされないようにします。
標準的な3段階エスカレーション
第1層: オンコールエンジニア(即時対応)
PagerDuty + Slackでアラートが発火します
5分以内の確認が期待されます
この担当者が問題をトリアージして調査を開始します
第2層: チームリード(10分経過、未確認の場合)
オンコールエンジニアが確認していない場合、チームリードにエスカレーションします
追加のPagerDuty通知 + SMS
チームリードが自ら対応するか、適切な担当者への調整を行います
第3層: エンジニアリングマネージャー(20分経過、まだ未確認の場合)
第1層も第2層も対応していない場合、これは深刻な問題です
エンジニアリングマネージャーへのSMS + 電話
この時点で問題は20分間対応されておらず、経営層の注目が必要です
オンコールローテーション
チーム全体で負担を分散させるため、週次または隔週のオンコールローテーションを設定しましょう。インシデント管理プラットフォーム(PagerDuty、Opsgenie)を使用してスケジュールを管理してください。主要な原則は以下のとおりです。
週次ローテーション: それ以上長くなるとバーンアウトにつながります
個人的な事情によるシフト交換を認めましょう
オンコールが多かった週には代休を提供しましょう
オンコールの負荷を月次でレビューしてください。特定のチームが過度にページされる場合は、根本的な信頼性問題の修正に投資しましょう
ステップ4: 有用なアラートメッセージを作成する
アラートメッセージは、複数のダッシュボードをクリックして回らなくても、担当者がすぐに調査を開始できる必要な情報をすべて提供すべきです。
すべてのアラートに含めるべき必須情報
サービス名: どのサービスが影響を受けているか(例: "Payment API"、"モニター#47"ではなく)
チェックURL: 失敗した正確なURL(https://api.example.com/v2/health)
失敗の種類: タイムアウト、HTTP 503、SSLエラー、コンテンツ不一致
障害継続時間: どのくらい障害が続いているか(例: "3分間ダウン中")
影響を受けているリージョン: どのモニタリング拠点が障害を検知したか
ダッシュボードリンク: このチェックのモニタリングダッシュボードへの直接リンク
直近の応答時間: 障害前にレイテンシが低下していたかどうかを示します
アラートメッセージの例
CRITICAL: Payment API is DOWN
Service: Payment API
URL: https://api.example.com/v2/payments/health
Error: HTTP 503 Service Unavailable
Duration: Down for 4 minutes (since 14:32 UTC)
Regions: Failed in US-East, US-West, EU-West (3/3 regions)
Last response time: 8,234ms (threshold: 2,000ms)
Dashboard: https://monitoring.example.com/checks/payment-api
Recent timeline:
14:28 - Response time spiked to 4,200ms
14:30 - Response time 7,100ms
14:32 - First failure (timeout after 10s)
14:32 - Confirmed down from all 3 regions
単に「モニター47がダウン中」とだけ表示される汎用的なアラートと比較してみてください。情報が豊富なアラートは担当者の最初の調査で5〜10分を節約でき、これが5分の停止と20分の停止の差になる可能性があります。
ステップ5: アラート疲れを軽減する
アラート疲れはモニタリングにおける最も深刻な問題です。チームが受け取るアラートが多すぎると、特に誤検知が多い場合、すべてのアラートを無視し始めます。これは実際の障害が誤検知と同じように無視されることを意味します。防止策を以下に示します。
1. クールダウン期間を設ける
アラートが発火した後、同じチェックの重複アラートを15〜30分間抑制してください。クールダウン後もサービスがダウンしている場合は、更新された継続時間を含むフォローアップアラートを送信します。これにより、長期的な障害中に30秒ごとに新しい通知が届くアラートストームを防げます。
2. 関連するアラートをグループ化する
同じサーバー上の10個のモニターが同時に失敗した場合、根本原因はそのサーバーであり、10個の別々の問題ではありません。アラートシステムはこれらを1つのインシデントにまとめるべきです。「サーバー web-prod-01: 10モニターダウン」という形で、10個の個別アラートではなくまとめて通知します。
3. フラッピングと実際の障害を区別する
フラッピングとは、サービスがアップとダウンの状態を急速に繰り返す現象です。30秒ごとにUP/DOWNアラートを送信する代わりに、フラッピングのパターンを検知して「サービスがフラッピングしています」という単一のアラートを送信しましょう。これは完全な障害とは異なる対応が必要な不安定性を示しています。
4. 月次アラート衛生レビュー
毎月、アラート履歴をレビューしてください。
最も頻繁に発火したアラートはどれですか?
誤検知だったアラートはどれですか?
確認されたが対応が不要だったアラートはどれですか?
アラートで検知されなかった実際のインシデントはどれですか?
このデータを活用して、しきい値を調整し、ノイズの多いアラートを削除し、不足しているカバレッジを追加しましょう。アラート設定はインフラとともに進化させる必要があります。
5. 深刻度レベルを適切に使用する
すべてが重大である必要はありません。すべてがSev 1なら、何もSev 1ではありません。重大なアラートは真に本番環境に影響する問題のためにとっておきましょう。性能低下、ステージング環境の問題、警告条件には低い深刻度レベルを使用してください。
ステップ6: 環境別ルールを設定する
環境によって異なるアラート戦略が必要です。
本番環境
PagerDutyエスカレーションを含むフルアラート
30〜60秒のチェック間隔
マルチリージョン確認
24時間・年中無休のオンコール対応
ステージング環境
Slackのみのアラート(PagerDutyなし)
3〜5分のチェック間隔
就業時間内の対応のみ
本番環境に到達する前に問題を発見するのに役立ちます
開発環境
アップタイムアラートなし(開発環境は設計上、頻繁にダウンするものです)
オプション: 長期実行の開発環境向けに日次ヘルスチェックメール
ステップ7: インシデント対応を自動化する
アラート設定が整ったら、自動化でさらに強化しましょう。
インシデントチケットの自動作成
重大なアラートが発火したとき、Jira、Linear、またはプロジェクト管理ツールにインシデントチケットを自動作成します。アラートの詳細、影響を受けるサービス、モニタリングダッシュボードへのリンクを含めます。これにより、すべてのインシデントが追跡・レビューされることが保証されます。
ステータスページの自動更新
モニタリングをステータスページに接続し、モニターが問題を検知したときに自動的に更新されるようにします。Qodex.aiはこの機能をネイティブでサポートしています。インシデント中の手動ステータスページ更新は、実際の問題修正からチームの注意をそらしてしまいます。
デプロイメント失敗時の自動ロールバック
デプロイメントの数分後にモニタリングが障害を検知した場合、自動ロールバックをトリガーします。ほとんどのデプロイメント失敗は新しいコードが原因であり、ロールバックが最も早い修正方法です。CI/CDパイプラインをモニタリングのWebhookを受け取るよう設定し、デプロイメント後にチェックが失敗したときにロールバックするようにしましょう。
ランブック自動化
既知の障害パターンに対しては、最初の対応ステップを自動化しましょう。たとえば、データベースの接続プール枯渇が検知された場合、接続プールまたはアプリケーションを自動的に再起動します。CDNキャッシュが古い場合は、キャッシュパージをトリガーします。これにより、よくある問題の解決時間を分単位から秒単位に短縮できます。
統合の例
Slack統合
ほとんどのモニタリングツールはSlackとのネイティブ統合を提供しています。ベストプラクティスは以下のとおりです。
専用の #incidents チャンネルを使用してください(#generalではなく)
Slackメッセージにアクションボタンを含めましょう(確認、エスカレーション、ミュート)
インシデントの更新はスレッドに投稿してチャンネルを整理しましょう
ダウン通知と復旧通知の両方を投稿しましょう
PagerDuty統合
重大なアラートのためにモニタリングツールをPagerDutyに接続してください。
モニターの深刻度レベルをPagerDutyの緊急度レベルにマッピングします
PagerDutyでサービスとエスカレーションポリシーを設定します
ローテーションと上書きを含むオンコールスケジュールを設定します
モニターが回復したときに自動解決が有効になるようにします
Webhook統合
Webhookは最も柔軟な統合オプションです。アラートが発火したとき、モニタリングツールがエンドポイントにPOSTリクエストを送信します。Webhookを使用して以下のことができます。
DiscordやTelegramに投稿する
自動修復のためにAWS Lambda関数をトリガーする
内部ダッシュボードやログシステムを更新する
カスタムインシデント管理ワークフローと統合する
アラート設定チェックリスト
新しいサービスのアラートを設定する際に、このチェックリストを使用してください。
サービスの重要度ティアを特定する(Sev 1〜4)
適切なチェック間隔を選択する(30秒〜5分)
マルチリージョンモニタリングを設定する(3リージョン以上)
連続失敗しきい値を設定する(2〜3回の失敗)
タイムアウト値を定義する(エンドポイントの種類に適した値)
プライマリアラートチャンネルを設定する(SlackまたはPagerDuty)
エスカレーションポリシーを設定する(3段階)
クールダウン期間を設定する(15〜30分)
復旧通知を追加する(問題が解決したときにチームに知らせる)
アラートフローをエンドツーエンドでテストする(テストアラートをトリガーして、適切な人に届くことを確認する)
モニタリングランブックにアラートを文書化する
月次アラート衛生レビューをスケジュールする
アラート設定に合わせた適切なモニタリングツールを選ぶ場合は、無料アップタイムモニタリングツールの比較をご覧ください。組み込みアラート機能を持つAPIモニタリングについては、Qodex.aiがマルチリージョン確認と自動ステータスページ更新を標準搭載したインテリジェントアラートを提供しています。
よくある質問
アップタイムモニタリングにはどのアラートチャンネルを使用すべきですか?
深刻度に基づいて複数のチャンネルを使用してください。チームへの周知と警告にはSlackまたはMicrosoft Teams、エスカレーション機能を持つ重大な時間外アラートにはPagerDutyまたはOpsgenie、緊急度の低い通知とレポートにはメール、最も重大な本番環境問題の最終手段のエスカレーションにはSMSを使用しましょう。
アラート疲れを防ぐにはどうすればよいですか?
アラート送信前のマルチ拠点確認、連続失敗の要求(1回では不可)、関連アラートのグループ化、繰り返し通知のクールダウン期間設定、適切な深刻度レベルの使用、そして不要なアラートを排除するための月次レビューを実施してください。
アップタイムアラートには何を含めるべきですか?
良いアラートには、サービス名、チェックURL、失敗の種類(タイムアウト、HTTPエラー、SSL問題)、障害継続時間、影響を受けているモニタリングリージョン、モニタリングダッシュボードへの直接リンク、コンテキストのための直近の応答時間データが含まれます。情報が豊富なアラートはインシデント調査中の数分を節約します。
ダウンタイム検知後、アラートはどのくらい早く発火すべきですか?
本番環境サービスでは、確認されたダウンタイムから1〜3分以内にアラートが発火すべきです。30秒のチェック間隔と2回失敗の確認しきい値により、約60〜90秒で検知できます。マルチリージョン確認によって若干の遅延が生じますが、誤検知を排除できます。
環境別に異なるアラートを設定すべきですか?
はい。本番環境のアラートは高優先度でPagerDutyによるフルエスカレーションと24時間対応が必要です。ステージング環境のアラートは就業時間内のSlack通知のみにすべきです。開発環境では通常、アップタイムアラートはまったく必要ありません。
エスカレーションポリシーはどのように設定すればよいですか?
オンコールエンジニア(即時PagerDutyアラート)から始め、10分間確認がなければチームリードにエスカレーション、20分経過後はエンジニアリングマネージャーにエスカレーションします。PagerDutyやOpsgenieなどのツールを使用してエスカレーションチェーンを自動化し、オンコールローテーションを管理しましょう。
Discover, Test, & Secure your APIs 10x Faster than before
Auto-discover every endpoint, generate functional & security tests (OWASP Top 10), auto-heal as code changes, and run in CI/CD - no code needed.
Related Blogs


