Gadget 18:監視とアラート

メトリクス・監視項目チェックリスト・通知すべき閾値とルール

監視とアラート

「気づいたら止まっていた、気づいたら容量が…」を防ぐ監視と通知です。

目的

  • 監視すべき対象を漏れなく定義する
  • 閾値と通知を「運用可能な」形に設定する

前提条件

監視項目チェックリスト

対象 指標 閾値(例)
プロセス生存 pgrep -f run-local 非生存 NG
HTTP 疎通 curl -s http://localhost:8787 非 200 NG
応答時間 curl -w %{time_total} > 10 秒 NG
CPU top > 80% 継続で WARN
メモリ free < 10% で WARN
ディスク(.wrangler 配下) du > 80% で WARN
証明書期限 openssl ... -enddate < 30 日で WARN(13
ログの新規エラー ログ grep 新規エラー > N で ALERT

手順

  1. 監視スクリプトを作る
#!/bin/bash
# cfos-monitor.sh
if ! curl -sf http://localhost:8787 >/dev/null; then
  echo "cfos down at $(date)" | tee /tmp/cfos-alert.log
  # → Slack / Webhook に通知
fi
  1. cron で定期実行
*/2 * * * * /usr/local/bin/cfos-monitor.sh
  1. 通知先を決めてテスト(Slack Webhook / Mail など)

アラートルール例

レベル 対象 動作
WARN CPU/メモリ/ディスク 高利用率 メッセージのみ(1日1回に間引き)
WARN 証明書期限 30 日以内 1 週間毎リマインド
ALERT プロセス/HTTP NG 即時通知 + 自動復旧(17
ALERT ログ新規エラー 即時通知、重複は抑止(digest 化)
Warning通知疲れを防ぐ

「点いてないサイレン」は運用が死にます。WARN は間引き、 ALERT だけは即時、を守りましょう。

よくある失敗

症状 原因 対処
通知が飛びすぎる 閾値・間引きが無い ALERT/WARN を分けて施行
通知が来ない cron 未登録・パス違い 手動実行で一度確認
監視が止まっている 監視自体のプロセスが死んでる 監視も二重化・ログ確認
ディスクが知らない間に溢れる ディスク未監視 チェックリストに追加

確認

次に読む