はじめに
OpenShiftをインストールした時点で監視を担うPrometheusがopenshift-monitoringネームスペースにデプロイされており、同Prometheusのデータを可視化するGrafanaもデフォルトでインストールされています。
$ oc get deployment -n openshift-monitoring NAME READY UP-TO-DATE AVAILABLE AGE cluster-monitoring-operator 1/1 1 1 x grafana 1/1 1 1 x kube-state-metrics 1/1 1 1 x openshift-state-metrics 1/1 1 1 x prometheus-adapter 2/2 2 2 x prometheus-operator 1/1 1 1 x telemeter-client 1/1 1 1 x thanos-querier 2/2 2 2 x
しかしこのGrafanaは仕様によってデータソースをカスタマイズできないため、自前のGrafanaを用意する場合があります。
その際に、同Prometheusで収集されているデータをOperatorで作成したGrafanaから利用する手順について説明します。
環境情報
$ oc get prometheus -A NAMESPACE NAME VERSION REPLICAS AGE openshift-monitoring k8s v2.20.0 2 ...
- Grafana Operator 3.10.2 provided by Red Hat
OperatorのGrafanaを用意
OperatorHubよりGrafanaを検索するとコミュニティ版のGrafana Operatorがあるのでインストールし、インスタンスを作成すると以下のようにPodが生成され
$ oc get pod NAME READY STATUS RESTARTS AGE grafana-deployment-678bdff94c-tdpqz 1/1 Running 0 x grafana-operator-678447879b-czp8c 1/1 Running 0 x
Routeが用意されるのでブラウザからアクセスができます。
$ oc get route NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD grafana-route grafana-route-xx. grafana-service 3000 edge None
初期ユーザでログインすることで
データソースを追加することが可能です。
Prometheusとの接続情報
デフォルトのGrafanaはデフォルトのPrometheusをデータソースとしていますが、その情報は以下のSecretに格納されていて
$ oc get secret grafana-datasources -n openshift-monitoring
実体はその中にあるdatasources.yamlとprometheus.yamlにあります。
その中に以下情報が格納されているので「basicAuthPassword」の文字列を控えておきます。
"basicAuth": true, "basicAuthPassword": "xx", "basicAuthUser": "internal", "editable": false, "jsonData": { "tlsSkipVerify": true }, "name": "prometheus", "orgId": 1, "type": "prometheus", "url": "https://prometheus-k8s.openshift-monitoring.svc:9091
Datasouceから追加する
URLは下記情報を入れた上でAccessは”Server (default)”を選択し
"url": "https://prometheus-k8s.openshift-monitoring.svc:9091
認証情報は下記の画面のように選択した上でBasic Auth Details欄にUserを”internal”としてパスワードをSecret内に記載があったものを入れると正常に接続ができ、Grafana上からPrometheusで収集した情報を閲覧できます。
終わりに
Operatorで用意したPrometheusの場合はこのような認証情報はありませんが、標準でインストールされているPrometheusは同情報を利用しないと接続ができません。ちなみに認証情報を入れずにDatasouceを追加すると「HTTP Error Bad Gateway」と出て追加に失敗してしまいます。
以上、ご参考になれば幸いです。