エンジニアの皆さん、こんにちは。システムが「静かに死んでいく」のをただ見守るだけの運用からは、今日で卒業しましょう。
システム運用の世界には「監視(Monitoring)」と「オブザーバビリティ(Observability)」という二つの大きな壁があります。多くの初心者は「エラーを検知する」ことだけで満足してしまいますが、真のエンジニアは「エラーが起きた瞬間、誰が・何を・どうすべきか」を自動化することに魂を注ぎます。
今日は、RollbarとPagerDutyを組み合わせ、「深夜の無駄な通知で消耗しない、鋼鉄のオンコール体制」を構築する方法を伝授します。
—
1. なぜ「Rollbar + PagerDuty」なのか?
Rollbarは「エラーの文脈(Context)」を記録する天才です。どのユーザーの、どのブラウザの、どのコード行で落ちたのかを完璧に把握します。一方、PagerDutyは「人間への伝達」のプロです。
これらを繋ぐことは、単なる通知の転送ではありません。「システムが必要とする時だけ、適切な人間に、適切な情報量を届ける」という、運用の自動化における極めて重要なパイプラインを作る作業なのです。
—
2. 基礎セットアップ:RollbarからPagerDutyへの「架け橋」
まずは、RollbarがPagerDutyを認識できるようにします。
1. PagerDuty側の準備: PagerDutyで「Services」→「Service Directory」へ行き、Rollbar用のIntegrationを追加します。ここで生成される「Integration Key」を控えてください。
2. Rollbar側の設定:
- `Settings` > `Notifications` > `PagerDuty` を選択。
- 先ほどのIntegration Keyを入力して保存します。
これで、Rollbarが検知したエラーがPagerDutyに飛ぶようになります。ですが、これだけでは「通知の嵐」に飲み込まれてしまいます。ここからがプロの領域です。
—
3. 「深夜に叩き起こされない」ためのフィルタリングの神髄
ただ繋ぐだけでは、警告レベル(Warning)のエラーまで深夜の枕元に届いてしまいます。「クリティカルなものだけをエスカレーションする」ルールを作りましょう。
Rollbarの `Rules` 設定で、以下のように条件を絞り込みます。
/
プロの運用ルール:ノイズを削ぎ落とし、本質的な異常のみを抽出する
/
{
“if”: {
“level”: “critical”, // 致命的なエラーのみを対象に
“occurrences_count”: { // 単発のノイズを無視
“operator”: “>”,
“value”: 5 // 5回以上発生したらインシデントとする(サージ検知)
}
},
“then”: {
“action”: “pagerduty”, // PagerDutyへトリガー
“urgency”: “high” // 深夜でも容赦なく電話を鳴らす
}
}
ポイント: 「1回のエラー」で毎回電話を鳴らすのは、監視システムの敗北です。システムが自律的に回復している可能性を考慮し、「一定の閾値を超えた場合にのみ人を呼ぶ」のが、長く運用を続けるための鉄則です。
—
4. Hello World:動作確認の儀式
設定が正しいか、必ず手動でトリガーして確認しましょう。開発環境のコードに以下のスニペットを埋め込んでテストします。
// エラーを意図的に投げて、PagerDutyが反応するか確認する
try {
throw new Error(“System Critical Test Alert”);
} catch (e) {
// Rollbar SDKを使用して明示的にCriticalとして送信
Rollbar.critical(“Manual Trigger: PagerDuty Integration Test”, { error: e });
}
これがPagerDutyに届き、スマホが鳴れば成功です。その後、PagerDuty側で「Resolve」を押して、通知が止まることを確認してください。
—
5. 最後に:現場で役立つマインドセット
この設定が完了したあなたは、もう「夜中に起きるのが怖い」と思う必要はありません。
- WarningレベルはSlackへ: PagerDutyに送る必要のないものはSlack等のチャットツールへ流し、朝一番で確認する運用にします。
- オンコールローテーションの活用: PagerDutyのスケジュール機能を使えば、「今週はAさん、来週はBさん」というシフト管理も自動化できます。
監視とは、「システムに自分たちが支配されること」ではなく、「システムを自分たちの管理下に置くこと」です。RollbarとPagerDutyを使いこなせば、運用はもっとクリエイティブで、かつ平和なものになります。
「エラーは出るもの」と割り切り、それをスマートに捌く仕組みを作る。これこそが、世界最高峰のエンジニアへの第一歩です。さあ、今すぐ設定を始めて、今夜は安心して眠りましょう。