| 項目 | 内容 |
|---|---|
| 実施日 | 2026年9月5日(JST) |
| 対象 | 監視サーバー / Grafana・Discord通知 |
| 種類 | 通知修正・本番反映・動作確認・ログ調査 |
| 状態 | コード・設定の追加修正と本番反映は完了。運用上の追加確認事項あり |
初回の通知改善・本番検証後に判明した通知文面、終了状態、発火時刻保持、Grafana起動時プラグイン処理の問題を追加修正し、本番へ反映しました。
本番リポジトリは /srv/github/ServerMonitoringStack、最終反映コミットは 7e9f90e93f81857a9a282e434fb8f7d169002d80 です。作業終了時点でGit作業ツリーはcleanでした。
実装・修正は以下のPRで行っています。
初回検証時に残っていた次の問題を修正しました。
| 課題 | 対応 |
|---|---|
| 終了通知に発生時の影響文が残る | 終了通知では発生時の impact / description を再掲せず、終了後の確認事項を表示 |
| Warning終了を改善と断定する | Disk / TLSは実測値とCritical側のPending / Firingを確認する案内へ変更 |
| Critical→Warning相当を復旧と誤表示する | Critical条件終了・状態更新 として扱い、正常化を断定しない |
| MissingSeries等を復旧と誤表示する | grafana_state_reason を確認し、正常値を確認できない終了は 復旧未確認 と表示 |
| DatasourceError / DatasourceNoDataの情報不足 | ルール名、データソース、原因、初動を表示できるよう補完 |
| 時間表記が実停止時間と紛らわしい | アラート発火、通知条件終了、発火から終了まで と表記 |
複数対象を同じ通知グループで扱う場合、先に終了した対象の後続通知で開始時刻が置き換わり、継続時間が 0s になる問題を確認しました。
PR #9でGrafanaの alertRuleUseFiredAtForStartsAt を有効化し、元の発火時刻を保持するよう変更しました。無効・欠落・逆転した時刻は、誤った継続時間を表示せず 不明 / 算出不可 と表示します。
このフラグはGrafana 13.0.2ではexperimentalです。Grafana更新時は、Firing→Resolvedの状態遷移と時刻保持を再検証します。
一時テストルールに本番と異なる通知設定を持たせると、通知経路のfingerprintが変化し、設定追加・削除時に不要な再通知や重複通知が発生し得ることを確認しました。
試験時は、対応する本番ルールの notification_settings をそのまま使用し、生成された設定だけでなく、実際にAlertmanagerへ適用された設定とログを確認します。Grafana起動直後は通知設定の同期を待ち、同期後に試験を開始します。
プラグイン設定ディレクトリを明示し、起動時の不要なプラグイン自動導入・自動更新を停止しました。Grafanaは非rootのまま維持し、権限の緩和、データ削除、プラグイン署名検証の無効化は行っていません。
今回の本番起動では、以前記録されていた以下のエラーは再発しませんでした。
Grafanaは 13.0.2 の既存イメージを維持しました。追加修正の反映ではGrafanaのみ1回再作成し、Grafana以外の既存コンテナは再起動していません。
既存の .env、Grafana / Prometheusのデータボリューム、本番7ルールの閾値・Pending時間・通知設定を保持しました。
作業用Git worktree /srv/github/ServerMonitoringStack-alert-fixes は作業完了後に削除し、本番リポジトリ /srv/github/ServerMonitoringStack はそのまま維持しています。
DatasourceError / DatasourceNoDataはプレビューで確認し、本番データソース自体を故障させる試験は行っていません。
本番サービスを停止せず、一時テストルールで実通知を確認しました。
2対象を同じ通知グループで発火させ、発生通知と終了通知を各1回受信しました。終了通知では、先に終了した対象も元の発火時刻を保持し、継続時間は次の通りでした。
1m30s3m0s一時ルール削除後の観測を含め、重複通知・送信失敗はありませんでした。
確認時刻: 2026年9月5日 12:48 JST
| 項目 | 結果 |
|---|---|
| 既存コンテナ | 8コンテナすべて稼働 |
| Grafana Health | database=ok |
| 本番Alert Rule | 7件すべて Normal / health=ok |
| ダッシュボード | APIで4件取得可能 |
Prometheus up |
9対象すべて 1 |
HTTP probe_success |
4対象すべて 1 |
| 追加ログ調査中の新規エラー | 0件 |
| Git | 7e9f90e93f81857a9a282e434fb8f7d169002d80 / working tree clean |
Grafana 13.0.2が未導入のAmazon Prometheusプラグインを利用統計用に照会し、エラーログを出す既知の問題を確認しました。
確認できた範囲では、影響はGrafana開発元向け利用統計の一部欠落とエラーログ出力であり、通常のPrometheus監視やAlertingへの影響は確認されていません。定期送信が有効なため、約24時間周期で再発する可能性があります。
上流修正はGrafana 13.1.0に含まれますが、本番更新は未実施です。GF_ANALYTICS_REPORTING_ENABLED=false により利用統計送信自体を停止する回避策もありますが、現在は適用していません。
2026年9月5日10:56 JST、ダッシュボード索引更新中のSELECTが SQLITE_BUSY となり、ファイル反映処理が1回失敗しました。10:58 JSTには索引再構築が成功し、自動復帰しています。
残っているログから、ロックを保持していた処理までは特定できませんでした。前後の監視データではHTTP監視とPrometheusの up は正常でしたが、瞬間的なGrafana画面・検索への影響までは否定できません。
現時点では本番DB設定を変更していません。再発状況を確認し、繰り返す場合は隔離環境でWAL方式を比較検証してから本番変更を判断します。
コード・設定で対応できた既知の通知問題と起動時プラグイン問題は反映済みです。次は運用確認または別途判断が必要です。
alertRuleUseFiredAtForStartsAt は13.0.2ではexperimentalのため、Grafana更新時に再検証が必要サーバー内の詳細作業記録は次に保存されています。
/tmp/casru-alert-runtime-fix-20260905/REPORT.md/tmp/casru-grafana-runtime-investigation-20260905/REPORT.md/tmp 配下のため永続保存は保証されません。長期保管が必要な証跡は別の保存先へ移してください。