10.3. 在 OpenShift 3.11 中启用 heketi 指标
在 OCP 3.11 中,Prometheus 使用 servicemonitors,这是 Prometheus Operator 引入的新资源。需要为每个存储命名空间创建 servicemonitor,并描述了要监控的目标集合。
要在 OCP 3.11 中查看 Prometheus 上的 Heketi 指标,请执行以下命令:
在
heketi-storage服务中添加注解。# oc project app-storage # oc annotate svc heketi-storage prometheus.io/scheme=http # oc annotate svc heketi-storage prometheus.io/scrape=true使用以下模板在 openshift-monitoring 命名空间中创建
heketi-appservicemonitor:# cat heketi-app-sm.yml apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: heketi-app labels: k8s-app: heketi-app namespace: openshift-monitoring spec: endpoints: - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token interval: 30s port: heketi scheme: http targetPort: 0 namespaceSelector: matchNames: - app-storage selector: matchLabels: heketi: storage-service其中,namespaceSelector 和标签需要与 heketi-storage 服务中的值匹配:
# oc describe svc heketi-storage -n app-storage Name: heketi-storage Namespace: app-storage Labels: glusterfs=heketi-storage-service heketi=storage-service Annotations: description=Exposes Heketi service prometheus.io/scheme=http prometheus.io/scrape=true Selector: glusterfs=heketi-storage-pod Type: ClusterIP IP: 172.30.3.92 Port: heketi 8080/TCP TargetPort: 8080/TCP Endpoints: 10.128.4.12:8080 Session Affinity: None Events: <none>设置了正确的选择器后,使用正确的选择器集在 openshift-monitoring 命名空间中创建 servicemonitor。
# oc create -f heketi-app-sm.yml -n openshift-monitoring servicemonitor.monitoring.coreos.com "heketi-app" created# oc get servicemonitor -n openshift-monitoring NAME AGE alertmanager 20d cluster-monitoring-operator 20d heketi-app 1m kube-apiserver 20d kube-controllers 20d kube-state-metrics 20d kubelet 20d node-exporter 20d prometheus 20d prometheus-operator 20d- 如果您有多个 OCS 集群,则需要使用上述步骤为每个 OCS 集群创建一个 servicemonitor。
执行以下命令向 prometheus 添加 cluster-reader 权限:
# oc adm policy add-cluster-role-to-user cluster-reader \ system:serviceaccount:openshift-monitoring:prometheus-k8s -n \ openshift-monitoring cluster role "cluster-reader" added: "system:serviceaccount:openshift-monitoring:prometheus-k8s"- 几分钟后,Prometheus 会加载新的服务监视器。