🔥

オンプレサーバのディスク枯渇予測を自前で構築した話

に公開

はじめに

オンプレミスのサーバ群におけるディスク空き容量の監視と枯渇予測
市販の統合監視ツールは高額だったり、クラウド前提だったりでマッチしないケースも多い。

この記事では、Win/Linux混在のオンプレサーバに軽量エージェントを仕込んでWebAPIにディスク情報を報告し、枯渇予測を行う仕組みを自作した際の構成と工夫を紹介します。


背景と課題

  • OSはWindows/Linux混在(AD参加のWin、オンプレRHELなど)
  • 外部SaaS利用不可(セキュリティ制約)
  • 既存監視ソリューションでは細かなカスタマイズがしづらかった
  • 閾値によるアラートだけではじわじわ減ってるディスクを拾えない

やったこと(構成概要)

  • 軽量スクリプト(バッチ+PowerShell / Bash)を各サーバに設置
  • cron / タスクスケジューラで定期実行し、ローカルディスクの使用状況を収集
  • WebAPI(自前構築)にPOSTで送信(JSON形式)
  • PostgreSQLに蓄積
  • 過去データ3点(1ヶ月前、1週間前、前日)から2本の傾きを計算し、悲観的な傾きを採用して枯渇予測日を算出
  • 管理者向けに一覧ページで可視化&アラート条件に合致したものはSlack通知

工夫したポイント

✅ クライアントは最小構成

  • 既存ツールやRPAを使わず、単なるスクリプト+cronで実現
  • WindowsではPowerShellとGet-PSDrive、Linuxではdfで実装
  • 外部通信はAPIエンドポイントだけ(IP制限+トークン認証)

✅ APIはPHP+PostgreSQL

  • Laravelベースで作成、サーバ登録とデータ報告エンドポイントを分離
  • クライアントごとに固定トークンを割り当てて認証
  • IPが一致しない場合は拒否

✅ 傾きによる枯渇予測

たとえば:
- 30日前 70%
- 7日前 80%
- 前日 85%
→ それぞれの傾き(増加率)を出して、悪化が早い方の傾きを使用
  • 「あと何日で枯渇するか」を出すことで、早期対応判断が可能に
  • 実績推移グラフは作成せず、必要時はCSVエクスポートからExcelで作成

感じたこと

  • 枯渇予測は「過去と現在の比較」だけで十分有効なシグナルになる
  • フルスタックな監視ソリューションが不要なケースは多い
  • 「自前で持つと管理大変」も、ちゃんと自動化すればそこまでじゃない
  • 最小構成・最小通信で実装することで、セキュリティ要件もクリアできる

おわりに

この仕組みは、無料・かんたん構成で作れるインフラ監視の実例です。
運用監視にちょっと手を加えるだけで、**「手遅れになる前の兆候」**を察知できる。そんな仕組みを、自分たちの手でつくるのもアリじゃないでしょうか。

Discussion