Prometheus Operatorを使ってPrometheus+Grafana検証環境を構築

★★★ Live配信告知 ★★★ぜひお申込みください!
◆◇世界一わかりみの深いクラウドネイティブ on Azure◆◇
8/4(木) 19:00~ 第17回:コンテナをサーバーレスでラクラク実行 〜 Azure Container InstancesとDocker CLIで実現 〜 今回は、コンテナをサーバーレスで実行するテクノロジとDocker CLIとの連携を紹介します。
◆◇PS Live◆◇
8/5(金) 12:00~ 第18回:アウトプットはイイぞ 〜サイオステクノロジーLT大会〜 エンジニア初級者向けから、個人ネタまで、エンジニア脳を体感できるプログラムです。

こんにちはサイオステクノロジー角川です。

Kubernetes環境の監視をおこなう際に監視ツールとしてPrometheusが多く使われます。
また、Prometheusで監視データを取得してGrafanaというモニタリングツールで監視データをグラフ化するという組み合わせが多く用いられます。

PrometheusとGrafanaを利用するにはそれぞれセットアップする必要がありますが、
kube-prometheus-stackというPrometheusのOperatorを利用することでKubernetes上に簡易にPrometheusとGrafana環境をインストールすることが出来ます。
簡易にセットアップ出来るためMinikubeなどローカルPC上で動作を確認する際に大変便利です。
今回はそのセットアップ手順についてご紹介します。

 

Namespaceを作成

Prometheus用にmonitoringというNamespaceを作成します。

kubectl create namespace monitoring

 

Helmリポジトリを追加

下記のようにHelmのリポジトリを追加します。

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

 

Helmインストール

追加したHelmリポジトリからkube-prometheus-stackのChartを取得して先程作成したmonitoringというNamespaceにインストールします。

helm install [NAME] prometheus-community/kube-prometheus-stack -n monitoring

上記の[NAME] は kube-prometheus-stack など任意の名前にしてください。

実行後、以下のような表示になりインストールがおこなわれたことが確認出来ます。

NAME: kube-prometheus-stack
LAST DEPLOYED: Wed Jul 20 12:00:00 2022
NAMESPACE: monitoring
STATUS: deployed
REVISION: 1
NOTES:
kube-prometheus-stack has been installed. Check its status by running:
kubectl --namespace monitoring get pods -l "release=kube-prometheus-stack"

Visit https://github.com/prometheus-operator/kube-prometheus for instructions on how to create & configure Alertmanager and Prometheus instances using the Operator.

 

Deploymentを確認

新規作成したmonitoringというNamespace内のDeploymentを確認します。

$ kubectl get deployment -n monitoring
NAME READY UP-TO-DATE AVAILABLE AGE
kube-prometheus-stack-grafana 1/1 1 1 10m
kube-prometheus-stack-kube-state-metrics 1/1 1 1 10m
kube-prometheus-stack-operator 1/1 1 1 10m
$

Serviceを確認

各サービス名とポート番号が確認出来ます。

$ kubectl get svc -n monitoring
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
alertmanager-operated ClusterIP None <none> 9093/TCP,9094/TCP,9094/UDP 10m
kube-prometheus-stack-alertmanager ClusterIP 10.109.30.220 <none> 9093/TCP 10m
kube-prometheus-stack-grafana ClusterIP 10.105.183.129 <none> 80/TCP 10m
kube-prometheus-stack-kube-state-metrics ClusterIP 10.101.51.134 <none> 8080/TCP 10m
kube-prometheus-stack-operator ClusterIP 10.97.253.200 <none> 443/TCP 10m
kube-prometheus-stack-prometheus ClusterIP 10.110.5.17 <none> 9090/TCP 10m
kube-prometheus-stack-prometheus-node-exporter ClusterIP 10.100.136.84 <none> 9100/TCP 10m
prometheus-operated ClusterIP None <none> 9090/TCP 10m
$

 

Grafanaのモニタリング画面表示

下記のように先程Serviceを確認した際に表示されたサービス名とポート番号を指定してポートフォワードすることでブラウザからモニタリング画面の確認が出来ます。

$ kubectl port-forward svc/kube-prometheus-stack-grafana -n monitoring 8080:80

ブラウザで以下のように8080番ポートへアクセスすることでGrafanaのモニタリング画面が表示されます。
http://127.0.0.1:8080/

 

 

ログインユーザ名はadmin、パスワードはデフォルトでprom-operatorとなっています。

 

Prometheus画面表示

Grafanaのモニタリング画面と同様にPrometheusの画面も表示可能です。

$ kubectl port-forward svc/kube-prometheus-stack-prometheus -n monitoring 9090:9090

ブラウザで以下のように9090番ポートへアクセスすることでGrafanaのモニタリング画面が表示されます。
http://127.0.0.1:9090/

 

最後に

いかがだったでしょうか。

Kubernetes上に簡易にPrometheusとGrafanaをセットアップ出来、動作の確認がおこなえたと思います。

参考になりましたら幸いです。

 





ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!


ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

Be the first to comment

Leave a Reply

Your email address will not be published.


*