自宅サーバーを運用してると、最初のうちはSSHでチマチマ確認するだけ。でもサービスが増えると、いちいち手動チェックするのが面倒になる。「どのVMがメモリ食ってるのか」「昨夜ディスク容量が急に減ったのはなぜか」——全部自動で監視したい。
鉄板の組み合わせがPrometheus + Grafanaだ。Prometheusがメトリクスを収集・蓄積し、Grafanaがそれを美しいダッシュボードで可視化する。この2つ、オープンソース監視の最強タッグ。
僕の監視スタック:
- Prometheus — 全サーバー・VMからメトリクス収集。15秒間隔でCPU、メモリ、ディスク、ネットワークを取得。
- Node Exporter — 各VMに入れるPrometheus用エージェント。OSレベルのメトリクスを公開する。
- Grafana — ダッシュボード表示。テンプレート(Node Exporter Full)をインポートするだけで超絶カッコいいダッシュボードが出来上がる。
- Alertmanager — PrometheusのアラートをDiscordに通知。「VMのディスク使用率90%超え」とか「サービスが5分以上ダウン」とか。
実際に設定して驚いたのは、ディスク使用量の増加トレンドが一目でわかること。「このままだと3ヶ月後にディスクが一杯になる」って予測がグラフで見える。ログの肥大化に気づいて助かったことも何度かある。
Lokiも入れてログ集約するとさらに強力。Promtailでログを収集してLokiに送り、Grafanaでメトリクスとログを同じ画面で見られる。トラブルシュートが爆速になる。
参考:Grafana | Prometheus