🔥
オンプレサーバのディスク枯渇予測を自前で構築した話
はじめに
オンプレミスのサーバ群におけるディスク空き容量の監視と枯渇予測。
市販の統合監視ツールは高額だったり、クラウド前提だったりでマッチしないケースも多い。
この記事では、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