(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Openshift/Grafana】デフォルトのPrometheusをDatasourceとして利用する

スポンサーリンク

はじめに

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

初期ユーザでログインすることで

データソースを追加することが可能です。

f:id:mtiit:20210719221647p:plain
GrafanaのGUIからDatasourceを追加する

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

認証情報は下記の画面のように選択した上で

f:id:mtiit:20210719222514p:plain
GUIからチェックを入れる
Basic Auth Details欄にUserを”internal”としてパスワードをSecret内に記載があったものを入れると正常に接続ができ、Grafana上からPrometheusで収集した情報を閲覧できます。
f:id:mtiit:20210719222838p:plain
Queryを利用して収集したデータが確認できる

終わりに

Operatorで用意したPrometheusの場合はこのような認証情報はありませんが、標準でインストールされているPrometheusは同情報を利用しないと接続ができません。ちなみに認証情報を入れずにDatasouceを追加すると「HTTP Error Bad Gateway」と出て追加に失敗してしまいます。

以上、ご参考になれば幸いです。