【Helm】helmfileでPrometheusとGrafanaを構築する

スポンサーリンク

はじめに

helmfileを使ってKubernetes上にPrometheusとGrafanaをデプロイしてみたいと思います。

今回はローカルのKubernetes上にデプロイして、Grafanaを使ってみます。

helmfileについては下記で解説しています。

【Helm】helmfile使ってみる
はじめにHelmfileについてざっくり解説し、シンプルな例で実際に使ってみたいと思います。Helmについては下記で解説しています。HelmfileとはHelmfileとは、Helmチャートを宣言的にデプロイするツールです。He...

PrometheusとGrafanaでダッシュボードを作成する方法については下記で解説しています。

ローカルでPrometheusとGrafanaでダッシュボード作成してみる
はじめに今回は、ローカルでPromethesとGrafana動かし、メトリクスの可視化をしてみたいと思います。PrometheusとGrafanaPrometheusは、メトリクス管理ツールです。詳しくは、下記で解説しています。...

今回はhelmfileを使ってPrometheusのチャートとGrafanaのチャートをインストールします。

用意するファイルとディレクトリ構成

用意するファイルとディレクトリ構成は下記の通りになります。

.
├── helmfile.yaml       # 全体のhelmfile
├── grafana
│   ├── grafana.yaml    # grafanaのvaluesファイル
│   └── helmfile.yaml   # grafanaのhelmfile
└── prometheus
    ├── helmfile.yaml   # prometheusのhelmfile
    └── prometheus.yaml # prometheusのvaluesファイル

helmfile.yamlの作成

全体を取りまとめるhelmfile.yamlを作成します。

PrometheusとGrafanaのhelmfile.yamlのパスを指定します。

helmfiles:
  - ./prometheus/helmfile.yaml
  - ./grafana/helmfile.yaml

Prometheus用ファイルの作成

Prometheus用のファイルを作成します。

今回利用するチャートは下記のprometheus-community/prometheusです。

helm-charts/charts/prometheus at main · prometheus-community/helm-charts
Prometheus community Helm charts. Contribute to prometheus-community/helm-charts development by creating an account on GitHub.

下記のチャートは非推奨になっています。

charts/README.md at master · helm/charts
⚠️(OBSOLETE) Curated applications for Kubernetes. Contribute to helm/charts development by creating an account on GitHub.

prometheus/helmfile.yamlは下記の通りです。

releases:
  - name: prometheus
    namespace: default
    chart: prometheus-community/prometheus
    values:
      - ./prometheus.yaml

prometheus/prometheus.yamlは下記の通りです。

alertmanager:
  enabled: false
kubeStateMetrics:
  enabled: false
pushgateway:
  enabled: false

Grafana用ファイルの作成

Grafana用のファイルを作成します。

利用するチャートは下記のgrafana/grafanaです。

Build software better, together
GitHub is where people build software. More than 73 million people use GitHub to discover, fork, and contribute to over 200 million projects.

grafana/helmfile.yamlは下記の通りです。

releases:
  - name: grafana
    namespace: default
    chart: grafana/grafana
    values:
      - ./grafana.yaml

grafana/grafana.yamlは下記の通りです。

service:
  port: 8080

helmfileの適用

まずはGrafanaとPrometheusのチャートがあるリポジトリを追加します。

helm repo add grafana https://grafana.github.io/helm-charts
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

helmfileでチャートのインストールをします。

helmfile apply

PrometheusとGrafanaのチャートがインストールされたのが確認できます。

❯ helm list
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
grafana         default         1               2021-12-17 22:20:51.414171 +0900 JST    deployed        grafana-6.20.1          8.3.3
prometheus      default         2               2021-12-17 22:20:44.423359 +0900 JST    deployed        prometheus-11.12.1      2.20.1

Grafanaにアクセスしてみる

Grafanaにログインしてみます。

まずは初回ログインのパスワードを下記コマンドから取得します。

kubectl get secret --namespace default grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

ローカルからアクセスできるようにポートフォワードしておきます。

kubectl port-forward svc/grafana 8080:8080

adminユーザーと先ほど取得したパスワードでGrafanaにログインできます。

これでGrafanaが使えるようになりました。

片付け

最後に用済みの場合は下記で削除します。

helmfile delete

参考

タイトルとURLをコピーしました