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-reloader | Prometheusの設定自動検出と反映 | ⭕️ |
| prometheus-operator | Prometheusに関連するリソース管理と自動化 | ⭕️ |
| prometheus-node-exporter | ノードシステムリソースデータの提供(CPU、メモリ、ディスク、ネットワーク) | ⭕️ |
| kube-state-metrics | Kubernetesクラスターで動作するリソースの状態情報を提供 | ⭕️ |
| alertmanager | Prometheusから発生する通知メール、Webhookで送信 | ❌ |
| grafana | Prometheusで収集したデ ータを視覚化し、ダッシュボード形式で提供します。 | ❌ |
インストール方法
-
必要な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
-
-
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 -
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 -
-
修正したkube-prometheus-stack Helm Chartのパッケージング
helm package kube-prometheus-stack # kube-prometheus-stack-69.8.2.tgz 형식의 패키지 파일 생성 -
生成したDockerイメージファイルおよび
prometheus-operator-crds,kube-prometheus-stack Helm Chart構築サーバーにコピー -
HarborウェブUIを使用してローカルHarborにプロジェクトを作成する
Project Name: prometheusAccess Level: Public
-
構築サーバーのローカル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 -
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 -
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