こんにちはサイオステクノロジー角川です。
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をセットアップ出来、動作の確認がおこなえたと思います。
参考になりましたら幸いです。
Grafanaのサポートなら!
サイオスOSSよろず相談室にお任せください!
Grafanaだけでなく、各種最新のOSSにも取り組んでおり、現在、150種類以上のOSSのサポートに対応しております。商用製品のサポート品質に匹敵する手厚いサービスを各種OSSでご利用いただけます。
OSSサポートのことでお困りでしたら、お気軽にご相談ください!