将Grafana引入OpenShift环境

首先

由于OpenShift 4.11中已废弃Grafana用户界面,因此OpenShift环境默认不再存在Grafana。
因此,本文将介绍在OpenShift 4.11及更高版本中安装Grafana的步骤。

❯ oc get deployment -n openshift-monitoring
NAME                                    READY   UP-TO-DATE   AVAILABLE   AGE
cluster-monitoring-operator             1/1     1            1           4h3m
kube-state-metrics                      1/1     1            1           3h23m
openshift-state-metrics                 1/1     1            1           3h23m
prometheus-adapter                      2/2     2            2           3h23m
prometheus-operator                     1/1     1            1           3h24m
prometheus-operator-admission-webhook   2/2     2            2           3h50m
telemeter-client                        1/1     1            1           3h23m
thanos-querier                          2/2     2            2           3h23m
image.png

设定步骤

1. 預先準備

1. 创建项目

本次我们将在特定的项目中部署Grafana Operator和Grafana实例。
为此,我们将先创建一个用于部署的项目。

❯ oc new-project grafana
Now using project "grafana" on server "https://xsss.com:6443".

❯ oc project
Using project "grafana" on server "https://xsss.com:6443"

2. 建立Grafana系统

2.1 引入Grafana Operator

首先,我会解释Grafana Operator的安装方法。
打开Openshift Web控制台,从管理员界面的菜单中点击OperatorHub。

スクリーンショット 2023-10-02 15.08.02.png

在搜索框中输入”Grafana”,然后点击显示的Grafana Operator。

スクリーンショット 2023-10-02 15.08.21.png

因为这是一个安装选择屏幕,所以选择渠道等。根据以下内容选择并点击安装。

項目値更新チャネルalphaインストールモードクラスターの特定のnamespaceインストール済のnamespacegrafana更新の承認自動
スクリーンショット 2023-10-02 15.13.35.png

将会显示如下的安装中界面。

スクリーンショット 2023-10-02 15.13.59.png

在安装完成后,画面将如下所示。

スクリーンショット 2023-10-02 15.16.22.png

2.2 引入Grafana

我将从这里开始安装Grafana。

打开Openshift Web控制台,从菜单中选择已安装的Operator,然后点击Grafana Operator。

image.png

点击创建Grafana实例。

image.png

这次我们将使用默认设置创建。

如果您想要更改管理员用户名或密码,请切换到YAML视图,并更改spec.security.admin_user和spec.security.admin_password。

image.png

可以看到已经创建了名为 pod(grafana-a-deployment-5bcd5dbd48-k7cfq)、service(grafana-a-service)和service account(grafana-a-sa) 的实体。

❯ oc get pod -n grafana
NAME                                                 READY   STATUS    RESTARTS   AGE
grafana-a-deployment-5bcd5dbd48-k7cfq                1/1     Running   0          38s
grafana-operator-controller-manager-c749dd5b-z6pqj   1/1     Running   0          6d2h

❯ oc get service -n grafana
NAME                                        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
grafana-a-service                           ClusterIP   xxx.xx.xx.xxx   <none>        3000/TCP   3m13s
grafana-operator-operator-metrics-service   ClusterIP   xxx.xx.xx.xxx   <none>        8443/TCP   10d

❯ oc get sa -n grafana
NAME                                  SECRETS   AGE
builder                               1         10d
default                               1         10d
deployer                              1         10d
grafana-a-sa                          1         55s
grafana-operator-controller-manager   1         10d

因为我们不创建路线。

❯ oc get route -n grafana
No resources found in grafana namespace.

我将以以下方式自己创建。

❯ oc create route edge --service=grafana-a-service -n grafana
route.route.openshift.io/grafana-a-service created

❯ oc get route -n grafana
NAME                HOST/PORT                                                                   PATH   SERVICES            PORT      TERMINATION   WILDCARD
grafana-a-service   grafana-a-service-grafana.apps.xxx.xxx.xxx.xxx.com          grafana-a-service   grafana   edge          None

只需给出一个选项,请用中文对以下内容进行释义:
打开 https://grafana-a-service-grafana.apps.xxx.xxx.xxx.xxx.com,如果展示以下界面,则表示成功。
如果保持默认设置,输入以下值即可登录。

項目値Email or usernamerootPasswordstart
image.png

登录成功后会显示以下屏幕。

image.png

3. Grafana和Prometheus的集成

我会解释如何与默认部署在OpenShift上的Prometheus进行配合。

❯ oc get deployment -n openshift-monitoring
NAME                                    READY   UP-TO-DATE   AVAILABLE   AGE
cluster-monitoring-operator             1/1     1            1           11d
kube-state-metrics                      1/1     1            1           11d
openshift-state-metrics                 1/1     1            1           11d
prometheus-adapter                      2/2     2            2           11d
prometheus-operator                     1/1     1            1           11d
prometheus-operator-admission-webhook   2/2     2            2           11d
telemeter-client                        1/1     1            1           11d
thanos-querier

给予Grafana服务账号访问权限到Prometheus。

首先,将garana的服务帐户(grafana-a-sa)应用cluster-monitoring-view策略。

❯ oc adm policy add-cluster-role-to-user cluster-monitoring-view -z grafana-a-sa -n grafana
clusterrole.rbac.authorization.k8s.io/cluster-monitoring-view added: "grafana-a-sa"

创建Grafana服务账户(garafana-a-sa)的令牌。

❯ oc sa new-token grafana-a-sa -n grafana
xxxxtokenxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

创建Grafana数据源3.2

打开 OpenShift Web 控制台,创建 Grafana 数据源的实例。

image.png
image.png

根据下方的YAML示例,将Token用作HTTP请求的身份验证标头。

apiVersion: grafana.integreatly.org/v1beta1
kind: GrafanaDatasource
metadata:
  name: grafanadatasource-sample
  namespace: grafana
spec:
  datasource:
    jsonData:
      timeInterval: 5s
      tlsSkipVerify: true
      httpHeaderName1: 'Authorization'
    access: proxy
    editable: true
    isDefault: true
    name: prometheus
    secureJsonData:
        httpHeaderValue1: 'Bearer xxxxtokenxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    type: prometheus
    url: 'https://thanos-querier.openshift-monitoring.svc.cluster.local:9091'
  instanceSelector:
    matchLabels:
      dashboards: grafana-a
  plugins:
    - name: grafana-clock-panel
      version: 1.3.0

接下来,我们将确认数据源是否已成功注册。

image.png
image.png

在Grafana上创建一个仪表盘。

使用 Prometheus 的数据,我们尝试创建一个由 OpenShift 提供的仪表盘。
请从这里下载 pod-dashboard.json 文件。

点击左侧菜单中的“仪表盘”,并选择“浏览”。

image.png
image.png

当屏幕显示以下内容时,请直接点击导入。

image.png

如果出现以下画面,则表示成功。
如果命名空间仍然是默认的话,将不会显示,因此请选择openshift-monitoring。

image.png

你可以可视化该namespace中存在的Pod资源的状态。

image.png

请参考。

    Custom Grafana dashboards for Red Hat OpenShift Container Platform 4
广告
将在 10 秒后关闭
bannerAds