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

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

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

概要

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

  • kube-prometheus-stackに含まれているサービス一覧
サービス機能必要有無
prometheusクラスターメトリクスデータ収集および保存⭕️
prometheus-config-reloaderPrometheus設定自動検知および反映⭕️
prometheus-operatorPrometheusと関連するリソース管理および自動化⭕️
prometheus-node-exporterノードシステムリソースデータ提供(CPU、メモリ、ディスク、ネットワーク)⭕️
kube-state-metricsKubernetesクラスターで動作するリソース状態情報を提供⭕️
alertmanagerPrometheusで発生するアラートをメール、Webhookで送信
grafanaPrometheusで収集したデータを可視化してダッシュボード形式で提供

インストール方法

  1. 必要なDocker Imageファイルの準備
  • 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 Imageタグ変更
# 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 Image .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
  1. 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
  1. kube-prometheus-stack chart values.yamlファイル設定値の修正
  • kube-prometheus-stack chart values.yaml
# values.yaml
fullnameOverride: "rancher-monitoring"
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: "30s"
evaluationInterval: "30s"
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"
  1. 修正したkube-prometheus-stack Helm Chartのパッケージング
helm package kube-prometheus-stack # kube-prometheus-stack-69.8.2.tgz形式のパッケージファイル作成
  1. 作成したDocker Imageファイルおよびprometheus-operator-crdskube-prometheus-stack Helm Chartを構築サーバーにコピー

  2. Harbor Web UIでローカルHarborにプロジェクト作成

    • Project Name : prometheus
    • Access Level : Public
  3. 構築サーバーローカルHarborにDocker Image load & push

# 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
  1. Prometheus CRDs設定
# Namespace : cattle-monitoring-system
# ReleaseName : prometheus
helm install prometheus-operator-crds prometheus-operator-crds-20.0.0.tgz -n cattle-monitoring-system --create-namespace
  1. Prometheusインストール
# Namespace : cattle-monitoring-system
# ReleaseName : prometheus
helm install prometheus kube-prometheus-stack-69.8.2.tgz -n cattle-monitoring-system --create-namespace

インストール削除

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