メインコンテンツまでスキップ

Prometheusサービスインストールガイド

オンプレミス環境用のシステムモニタリング機能を使用するためのインストールガイドです。

概要

本文は、kube-prometheus-stack Helm Chartを活用したPrometheusのインストールガイドを提供しています。

※ OVA Virtual Appliance Baseline 2025.09 バージョンからは、プロメテウスが基本仕様としてインストールされています。

プロメテウスがインストールされている場合、次のconfigmap設定でシステム監視機能を有効にすることができます。 (直接インストールする方法とネームスペースが異なります。)

### portal-web-config
VUE_APP_USE_SYSTEM_MONITORING: true
### cloud-spsvr-config
CUSTOM_PROMETHEUS_URL: http://rancher-monitoring-prometheus.monitoring.svc.cluster.local:9090
  • kube-prometheus-stack に含まれているサービスの一覧
サービス機能必須かどうか
prometheusクラスター メトリック データの収集と保存⭕️
prometheus-config-reloaderPrometheusの設定自動検出と反映⭕️
prometheus-operatorPrometheusに関連するリソース管理と自動化⭕️
prometheus-node-exporterノードシステムリソースデータの提供(CPU、メモリ、ディスク、ネットワーク)⭕️
kube-state-metricsKubernetesクラスターで動作するリソースの状態情報を提供⭕️
alertmanagerPrometheusから発生する通知メール、Webhookで送信
grafanaPrometheusで収集したデータを視覚化し、ダッシュボード形式で提供します。

インストール方法

  1. 必要なDockerイメージファイルを準備する

    • Docker Image Pull

      # prometheus
      docker pull quay.io/prometheus/prometheus:v3.2.1

      # prometheus-operator
      docker pull quay.io/prometheus-operator/prometheus-operator:v0.80.1

      # prometheus-node-exporter
      docker pull quay.io/prometheus/node-exporter:v1.9.0

      # prometheus-config-reloader
      docker pull rancher/mirrored-prometheus-operator-prometheus-config-reloader:v0.59.1

      # kube-state-metrics
      docker pull rancher/mirrored-kube-state-metrics-kube-state-metrics:v2.6.0
    • 閉鎖ネットワーク環境でのHarbor経由のDockerイメージタグ変更

      # prometheus
      docker tag quay.io/prometheus/prometheus:v3.2.1 harbor.local:5050/prometheus/prometheus:v3.2.1

      # prometheus-operator
      docker tag quay.io/prometheus-operator/prometheus-operator:v0.80.1 harbor.local:5050/prometheus/prometheus-operator:v0.80.1

      # prometheus-node-exporter
      docker tag quay.io/prometheus/node-exporter:v1.9.0 harbor.local:5050/prometheus/prometheus-node-exporter:v1.9.0

      # prometheus-config-reloader
      docker tag rancher/mirrored-prometheus-operator-prometheus-config-reloader:v0.59.1 harbor.local:5050/prometheus/prometheus-config-reloader:v0.59.1

      # kube-state-metrics
      docker tag rancher/mirrored-kube-state-metrics-kube-state-metrics:v2.6.0 harbor.local:5050/prometheus/kube-state-metrics:v2.6.0
    • Dockerイメージを .tar ファイルとして保存

      # prometheus
      docker save -o prometheus.tar harbor.local:5050/prometheus/prometheus:v3.2.1

      # prometheus-operator
      docker save -o prometheus-operator.tar harbor.local:5050/prometheus/prometheus-operator:v0.80.1

      # prometheus-node-exporter
      docker save -o node-exporter.tar harbor.local:5050/prometheus/prometheus-node-exporter:v1.9.0

      # prometheus-config-reloader
      docker save -o prometheus-config-reloader.tar harbor.local:5050/prometheus/prometheus-config-reloader:v0.59.1

      # kube-state-metrics
      docker save -o kube-state-metrics.tar harbor.local:5050/prometheus/kube-state-metrics:v2.6.0
  2. kube-prometheus-stack Helm Chartの準備

    # helm 저장소 추가
    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm repo update

    # prometheus-operator-crds 다운로드
    helm pull prometheus-community/prometheus-operator-crds

    # kube-prometheus-stack chart 다운로드
    helm pull prometheus-community/kube-prometheus-stack
  3. kube-prometheus-stackチャートのvalues.yamlファイルの設定値を修正する

    • kube-prometheus-stack チャート values.yaml

      # values.yaml
      fullnameOverride: "rancher-monitoring"
      alertmanager:
      enabled: false #사용 안함
      grafana:
      enabled: false #사용 안함
      kubeApiServer:
      enabled: false #사용 안함
      kubeControllerManager:
      enabled: false #사용 안함
      coreDns:
      enabled: false #사용 안함
      kubeEtcd:
      enabled: false #사용 안함
      kubeScheduler:
      enabled: false #사용 안함
      kubeProxy:
      enabled: false #사용 안함
      prometheusOperator:
      image:
      registry: harbor.local:5050 #로컬 Harbor 주소로 변경 필요
      repository: prometheus/prometheus-operator
      tag: "v0.80.1"
      prometheusConfigReloader:
      image:
      registry: harbor.local:5050 #로컬 Harbor 주소로 변경 필요
      repository: prometheus/prometheus-config-reloader
      tag: "v0.59.1"
      prometheus:
      prometheusSpec:
      scrapeInterval: "60s"
      evaluationInterval: "60s"
      retention: 10d #데이터 보관 주기기
      image:
      registry: harbor.local:5050 #로컬 Harbor 주소로 변경 필요
      repository: prometheus/prometheus
      tag: v3.2.1
      volumeClaimTemplate: #PVC 설정
      spec:
      storageClassName: longhorn
      accessModes: ["ReadWriteOnce"]
      resources:
      requests:
      storage: 10Gi
    • prometheus-node-exporter サブチャート values.yaml

      # charts\prometheus-node-exporter\values.yaml
      image:
      registry: harbor.local:5050 #로컬 Harbor 주소로 변경 필요
      repository: prometheus/prometheus-node-exporter
      tag: "v1.9.0"
    • kube-state-metrics サブチャート values.yaml

      # charts\kube-state-metrics\values.yaml
      image:
      registry: harbor.local:5050 #로컬 Harbor 주소로 변경 필요
      repository: prometheus/kube-state-metrics
      tag: "v2.6.0"

    ※ 収集メトリックを制限する必要がある場合

    PVCの容量制限により収集メトリックを制限する必要がある場合、values.yamlで以下の値を追加で変更する必要があります。

    kubelet:
    serviceMonitor:
    enabled: false #kubelet default job 제외 처리
    prometheusOperator:
    serviceMonitor:
    selfMonitor: false #prometheus-operator default job 제외 처리
    prometheus:
    serviceMonitor:
    selfMonitor: false #prometheus default job 제외 처리
    prometheusSpec:
    additionalScrapeConfigs:
    - job_name: "node-exporter-custom"
    kubernetes_sd_configs:
    - role: endpoints
    namespaces:
    names: ["cattle-monitoring-system"]
    relabel_configs:
    - source_labels: [__meta_kubernetes_namespace]
    regex: cattle-monitoring-system
    action: keep
    - source_labels:
    [__meta_kubernetes_service_label_app_kubernetes_io_name]
    regex: prometheus-node-exporter
    action: keep
    - source_labels: [__meta_kubernetes_endpoint_port_name]
    regex: http-metrics
    action: keep
    - source_labels: [__meta_kubernetes_endpoint_address_target_kind]
    regex: Pod
    action: keep
    - source_labels: [__meta_kubernetes_pod_node_name]
    target_label: instance
    action: replace
    metric_relabel_configs:
    - source_labels: [__name__]
    regex: node_uname_info|node_cpu_seconds_total|node_load1|node_load5|node_load15|node_memory_MemTotal_bytes|node_memory_MemAvailable_bytes|node_memory_Active_bytes|node_memory_.*|node_filesystem_(size|avail|free|used)_bytes|node_network_(receive|transmit)_bytes_total
    action: keep
  4. 修正したkube-prometheus-stack Helm Chartのパッケージング

    helm package kube-prometheus-stack # kube-prometheus-stack-69.8.2.tgz 형식의 패키지 파일 생성
  5. 生成したDockerイメージファイルおよびprometheus-operator-crds, kube-prometheus-stack Helm Chart構築サーバーにコピー

  6. HarborウェブUIを使用してローカルHarborにプロジェクトを作成する

    • Project Name : prometheus
    • Access Level : Public
  7. 構築サーバーのローカルHarborにDockerイメージをロード&プッシュ

    # prometheus
    docker load -i prometheus.tar
    docker push harbor.local:5050/prometheus/prometheus:v3.2.1

    # prometheus-operator
    docker load -i prometheus-operator.tar
    docker push harbor.local:5050/prometheus/prometheus-operator:v0.80.1

    # prometheus-node-exporter
    docker load -i node-exporter.tar
    docker push harbor.local:5050/prometheus/prometheus-node-exporter:v1.9.0

    # prometheus-config-reloader
    docker load -i prometheus-config-reloader.tar
    docker push harbor.local:5050/prometheus/prometheus-config-reloader:v0.59.1

    # kube-state-metrics
    docker load -i kube-state-metrics.tar
    docker push harbor.local:5050/prometheus/kube-state-metrics:v2.6.0
  8. Prometheus CRDs の設定

    既に設定されているPrometheus CRDを削除する

    # CRD 조회
    kubectl get crd | grep monitoring.coreos.com

    # 위 명령어 실행 결과로 나온 CRD 삭제
    kubectl delete crd <CRD 명>

    CRDを削除した後、コピーしたCRDsヘルムチャートでCRDをインストールします。

    # Namespace : cattle-monitoring-system
    # ReleaseName : prometheus

    helm install prometheus-operator-crds prometheus-operator-crds-20.0.0.tgz -n cattle-monitoring-system --create-namespace
  9. Prometheusのインストール

    # Namespace : cattle-monitoring-system
    # ReleaseName : prometheus

    helm install prometheus kube-prometheus-stack-69.8.2.tgz -n cattle-monitoring-system --create-namespace

    ※ 収集メトリックを制限する必要がある場合、次のコマンドを実行することで基本メトリックの収集を防ぐことができます。

    kubectl delete servicemonitor prometheus-prometheus-node-exporter -n cattle-monitoring-system
    kubectl delete servicemonitor prometheus-kube-state-metrics -n cattle-monitoring-system

インストールの削除

Prometheusをアンインストールする必要がある場合は、次のコマンドを使用して削除できます。

helm uninstall prometheus -n cattle-monitoring-system

追加設定

管理センター configMap 設定

管理センターのシステムモニタリング機能を使用するためには、管理センターのフロントエンド/バックエンドのconfigMap値が正しく設定されている必要があります。

  • Security365管理センターフロントエンドconfigMap

    VUE_APP_USE_SYSTEM_MONITORING: システムモニタリング機能の使用有無

    ### portal-web-config
    VUE_APP_USE_SYSTEM_MONITORING: true
  • Security365 管理センター バックエンド configMap

    CUSTOM_PROMETHEUS_URL: Prometheusサービスのクラスター内部アドレス

    ### cloud-spsvr-config
    CUSTOM_PROMETHEUS_URL: http://rancher-monitoring-prometheus.cattle-monitoring-system.svc.cluster.local:9090