サーバー・サービスの状態はGrafanaで確認し、異常の発生と終了はDiscordの 監視・アラート チャンネルで受け取ります。
Grafana:監視画面を開く。GrafanaとPrometheusを開く前にCASるのVPNへ接続してください。
2026年9月5日に通知改善を本番適用し、その後PR #7〜#10で例外終了、Critical→Warning相当の遷移、発火時刻保持、起動時プラグイン処理、一時テストルールの通知経路を追加修正しました。本番で2対象の発生・終了通知を確認し、先に終了した対象も元の発火時刻を保持することを確認しています。
初回の検証はGrafana・Discord通知の改善と本番検証、追加修正と現在の残課題はGrafana通知の追加修正・本番反映と運用ログ調査を参照してください。
| 本文の表示 | 意味 | 最初にすること |
|---|---|---|
| 🔴 障害発生 | Criticalのアラートが発火 | 影響と初動を読み、対象範囲を確認する |
| 🟠 警告 | Warningのアラートが発火 | 監視不能・応答遅延・容量・証明書など、該当する状態を確認する |
| 🟢 復旧 | 正常値を確認できる通常の復旧 | 実際のサービス・数値も確認する |
| 🔵 Critical条件終了・状態更新 | Critical条件を外れたが、Warning継続などの可能性がある | 実測値と関連するWarningのPending / Firingを確認する |
| 🔵 警告条件終了 | Warning条件が終了 | 改善かCriticalへの悪化かを実測値で確認する |
| 🟠 復旧未確認 | MissingSeries、ルール変更、評価エラー等で正常値を確認せず終了 | Grafanaの実測値・評価履歴・対象サービスを確認する |
| 🟠 監視状態の確認が必要 | DatasourceError / DatasourceNoData等で評価状態を確定できない | ルール名・データソース・原因を読み、Prometheus / Grafanaを確認する |
通知は、対象名、状態、影響、初動または終了後の確認事項、JSTの時刻、必要最小限の技術情報、名前付きリンクの順に読めます。target-server は「石川メッキサーバー」、cadvisor は「コンテナ監視」などの人間向け名称へ変換します。
Value: A=0, B=1、全ラベルの一覧、長大なSilence URLは本文に表示しません。GrafanaへのリンクはVPN内URLを使います。
終了通知では発生時の impact / description を再掲せず、終了後の確認事項を表示します。MissingSeriesなど正常値を確認できない終了は緑の復旧として扱いません。
時間は アラート発火、通知条件終了、発火から終了まで と表示します。Grafana 13.0.2では alertRuleUseFiredAtForStartsAt を有効化し、同一グループ内で後続の終了通知が発生しても元のFiring時刻を保持します。無効・欠落・逆転した時刻は 不明 / 算出不可 と表示します。このフラグは13.0.2ではexperimentalのため、Grafana更新時に再検証してください。
Discord「監視・アラート」
↓
本文の影響・初動を読み、Grafana・対象サービスを確認
↓
必要ならDiscord「障害・メンテナンス」で対応開始を共有
↓
終了通知と実際の状態を確認
↓
後から参照する内容をWikiの障害記録へ整理
実際の対応方法はシステム運用ガイド、記録先は障害記録を参照してください。
GitHub管理の本番ルールは7件です。2026年9月5日の改善では判定閾値とPending時間を変えず、監視不能と応答遅延をWarningへ変更しました。
| Alert Rule | 条件 | 発火待ち時間(Pending) | Severity |
|---|---|---|---|
Service Down |
probe_success < 1 |
2分 | critical |
Monitoring Target Down |
up < 1(node・cAdvisor・blackbox) |
2分 | warning |
Service Slow |
5分平均のprobe時間が3秒超 | 5分 | warning |
Root Disk Warning |
ディスク使用率85〜95% | 10分 | warning |
Root Disk Critical |
ディスク使用率95%超 | 5分 | critical |
TLS Certificate Expiring Warning |
証明書期限まで14〜30日 | 1時間 | warning |
TLS Certificate Expiring Critical |
証明書期限まで14日未満 | 1時間 | critical |
Service Slow のルールUIDは、既存設定との連続性のため casru-service-slow-critical のままです。1秒以上の応答時間はダッシュボード上のWarning表示のみで、Discord通知は行いません。
DiskとTLSはWarningとCriticalの条件帯を分けています。Warning終了時でも、CriticalがPending中の可能性があるため、通知の有無だけで改善を判断しません。
設定の正本は CASru-IT/ServerMonitoringStack です。
| 役割 | 内容 |
|---|---|
| Prometheus | サーバー・コンテナ・サービスのメトリクスを収集 |
| Grafana | ダッシュボード表示とAlerting |
| node_exporter | ホストのCPU・メモリ・ディスクなどを監視 |
| cAdvisor | Dockerコンテナの稼働状況・リソースを監視 |
| Blackbox Exporter | HTTPによるサービス死活・応答時間・TLS証明書を監視 |
監視サーバーでは上記5コンポーネントを動かし、対象サーバーではnode_exporterとcAdvisorを動かしています。
Grafanaの CASる Infrastructure フォルダーに、次のダッシュボードがあります。
| ダッシュボード | UID | 主な用途 |
|---|---|---|
CASる Infrastructure Overview |
casru-infra-overview |
サーバー・コンテナの総合状態確認 |
CASる Service Availability |
casru-service-availability |
サービス死活・HTTP応答・応答時間・TLS証明書 |
前者は monitoring-server / target-server、後者は wiki / opencloud / grafana / prometheus で対象を切り替えられます。
| service | 監視先 | 範囲 |
|---|---|---|
wiki |
https://wiki.cas-ru.com/ |
Public |
opencloud |
https://drive.cas-ru.com/ |
Public |
grafana |
http://grafana:3000/api/health |
Docker内部 |
prometheus |
http://prometheus:9090/-/healthy |
Docker内部 |
HTTP GET、リダイレクト追従、IPv4、TLS証明書検証ありの設定です。Prometheusは30秒間隔で取得し、Blackbox Exporterの9115番ポートはホストへ公開していません。
| 項目 | 設定 |
|---|---|
| Contact Point | Discord - 監視・アラート |
| Receiver UID | casru-discord-alerts |
| テンプレートグループ | casru-discord-human-readable |
| 本文テンプレート | casru.discord.message |
| Firing / Resolved通知 | 両方有効 |
| グループ化 | alertname、grafana_folder |
| 初回通知待ち / グループ更新間隔 | 30秒 / 5分 |
| critical / warningの再通知 | 1時間 / 4時間 |
| 発火時刻保持 | alertRuleUseFiredAtForStartsAt 有効(Grafana 13.0.2ではexperimental) |
同じルール内の複数対象をまとめる設定です。異なるルールをまたぐ障害の一括集約や親子アラートの抑制は導入していません。各ルールからContact Pointへ直接通知し、Notification Policyツリー全体は上書きしていません。
Monitoring Target Down は noDataState: Alerting、ほかの6ルールは KeepLast です。一部系列だけが消えるMissingSeriesはNo Dataとは別ですが、終了時の grafana_state_reason を読み、正常値を確認できない場合は 復旧未確認 と表示します。
Grafanaのリンクは GF_SERVER_ROOT_URL を .env のVPN内IP・公開ポートから生成します。2026年9月5日の検証時は http://10.10.10.10:3001/ でした。Discord Webhook URLはサーバー上の .env だけで管理し、Wikiや通常の投稿には記載しません。
一時テストルールを作る場合は、対応する本番ルールの notification_settings をそのまま使います。生成された通知設定だけではなく、Alertmanagerへ実際に適用された設定と同期ログも確認し、Grafana起動直後は設定同期を待ってから試験してください。これにより、試験用設定による不要な通知経路変更や重複通知を避けます。
実装・反映・検証手順はリポジトリの Grafana Alerting・Discord通知 を参照してください。
2026年9月5日12:48 JSTの最終確認では、既存8コンテナすべて稼働、Grafana database=ok、本番7ルールすべてNormal / health=ok、Prometheus up は9対象すべて1、HTTP probe_success は4対象すべて1でした。
現在の未対応・未確認事項は次です。
alertRuleUseFiredAtForStartsAt は13.0.2ではexperimentalのため、Grafana更新時に状態遷移を再検証するSQLITE_BUSY が1回発生し、10:58 JSTに自動復帰した。再発する場合は隔離環境でWAL方式を比較検証する詳しくは追加修正・本番反映と運用ログ調査を参照してください。
| 日付 | 内容 |
|---|---|
| 2026年9月5日 | 通知の追加修正・発火時刻保持・起動対策を本番反映し、2対象の実通知を確認 |
| 2026年9月5日 | 人間向け通知への改善を本番適用し、4種類の基本通知試験を確認 |
| 2026年8月26日 | Blackbox Exporter・Grafana Alerting・Discord通知の導入と初回確認 |