Prometheusは、さまざまなサービスからメトリクスを収集するために広く使用されている強力なオープンソースの監視・アラートツールキットです。VPS上にPrometheusをセルフホストすることで、監視設定を完全にコントロールできます。このガイドでは、Dockerを使った簡単な管理とデプロイを行いながら、仮想プライベートサーバー(VPS)にPrometheusをインストールする方法をご案内します。
Step 1: VPSプロバイダーの選択
まずは、VPSプロバイダーを選びましょう。以下は、Prometheusのホスティングに適したいくつかの人気VPSオプションの比較です。
| プロバイダー | 価格(毎月) | 特徴 | リンク |
|---|---|---|---|
| Contabo VPS | 5.99 EUR | 高RAM、SSDストレージ | Contabo |
| Hetzner Cloud | 4.15 EUR | 優れたパフォーマンス、スケーラブルなソリューション | Hetzner Cloud |
| DigitalOcean | 6 USD | 使いやすいインターフェース、豊富なクレジット | DigitalOcean |
| Vultr | 6 USD | 広範な地理的ロケーション | Vultr |
| Linode (Akamai) | 5 USD | シンプルな価格設定、信頼性 | Linode |
開発者やホームラボユーザーには、競争力のある価格とパフォーマンスでHetzner Cloudが特におすすめです。
Step 2: VPSのセットアップ
VPSプロバイダーを選択したら、少なくとも1 GBのRAMと適切なCPUを持つインスタンスを立ち上げましょう。以下のサーバー準備手順に従います。
-
SSHを使ってサーバーに接続:
ssh root@your_vps_ip -
システムをアップデート:
sudo apt update && sudo apt upgrade -y -
Dockerをインストール:
sudo apt install docker.io -y -
Dockerを起動し、有効化:
sudo systemctl start docker sudo systemctl enable docker
Step 3: Dockerを使ったPrometheusのインストール
Dockerがインストールされたら、Prometheusをコンテナに素早く展開できます。
-
公式のPrometheus Dockerイメージをプル:
sudo docker pull prom/prometheus -
Prometheus用の設定ファイルを作成します。デフォルト設定を使用するか、自分でカスタマイズしてください。こちらはシンプルな例です:
global: scrape_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] -
この設定を
prometheus.ymlとして保存。 -
Dockerを使ってPrometheusを起動:
sudo docker run -d \ -p 9090:9090 \ --name prometheus \ -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus -
Prometheusにアクセス: Webブラウザで
http://your_vps_ip:9090にアクセスし、ダッシュボードを確認。
Step 4: Prometheusの設定
Prometheusが動作したら、さらに監視対象の設定やアラートルールの追加などを行えます。基本的な設定例は次のとおりです。
- 追加ターゲットの設定:
prometheus.ymlを編集して、監視したいサービスを追加。 - アラートルール:別ファイルにアラートルールを設定し、Alertmanagerと連携。
Step 5: データの保存
Prometheusは時系列データベースを使用してメトリクスを効率的に保存します。デフォルトではメモリ上にデータを保持しますが、必要に応じて永続化設定も可能です。
よくある質問(FAQs)
VPS上のPrometheusをどのように保護すればよいですか?
以下の対策を講じて、Prometheusインスタンスのセキュリティを強化しましょう。
- HTTPSの使用:NginxのようなWebサーバーを設定し、Proxy経由でHTTPSを提供。
- 基本認証の設定:NginxやWebサーバーに認証レイヤーを追加。
- ファイアウォールルール:アクセスを自分のIPまたは信頼できるネットワークのみに制限。
これにより、不正アクセスからデータを保護できます。
Prometheusで他のサービスも監視できますか?
はい。Prometheusの大きな特徴の一つは、さまざまなサービスからメトリクスを収集できることです。
- Prometheus互換のエンドポイントを公開しているアプリケーションメトリクスの監視
- MySQL、PostgreSQLなどのエクスポーターやRedis、Nginxといったサービスの監視
- 独自アプリケーションの
/metricsエンドポイントを公開してのカスタムメトリクス取得
これにより、包括的な監視体制が構築可能です。
Prometheusでアラート通知を設定するには?
ルールに基づいてアラートを行うことができます。基本的な設定例は次のとおりです。
-
アラートルールの定義:YAMLファイルにアラート定義を記述。 例:
groups: - name: example rules: - alert: HighLoad expr: job:load1:avg5m > 0.7 for: 10m labels: severity: critical annotations: summary: "インスタンス {{ $labels.instance }} で高負荷" -
Alertmanagerの設定:アラートを受け取るためにインストールし、設定。
-
通知チャネルの設定:EmailやSlackなどの通知方法をAlertmanagerに設定。
詳細な設定については、Prometheusの公式ドキュメントを参照してください。
結論
VPSにPrometheusをセルフホストすることで、アプリケーションやインフラの監視に強固なソリューションを構築できます。上記の手順に従えば、インストールから設定、カスタマイズまで簡単に行えます。VPSの詳細比較はこちらの full VPS comparison をご覧ください。良い監視体験を!