OpenShift集群中的Router服务作为几乎所有南北流量的入口非常重要,对它的监控有很大的意义,既能够查看流量的变化,及时发现业务的变化,也可以发现异常请求及时发现问题。
红帽对于Router服务其实已经开启了监控指标的服务,但是默认并没有与Prometheus服务对接,需要手动对接,具体对接的操作如下。

  1. 获取Router应用的访问用户名与密码

    1
    2
    3
    4
    $ oc set env dc/router -n default --list  | grep STATS
    STATS_PASSWORD=Oby3Y2FXs5
    STATS_PORT=1936
    STATS_USERNAME=admin
  2. 在prometheus项目下创建访问Router指标的密钥

    1
    $ oc create secret generic router-auth --from-literal=user=admin --from-literal=password=Oby3Y2FXs5 -n openshift-monitoring
  3. 在openshift-monitoring项目下创建ServiceMonitor

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    $ cat <<EOF | oc create -f -
    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
    name: router-metrics
    metadata:
    labels:
    k8s-app: haproxy-router
    namespace: openshift-monitoring
    spec:
    endpoints:
    - basicAuth:
    password:
    name: router-auth
    key: password
    username:
    name: router-auth
    key: user
    interval: 5s
    path: /metrics
    port: 1936-tcp
    scheme: http
    jobLabel: k8s-app
    namespaceSelector:
    matchNames:
    - default
    selector:
    matchLabels:
    router: router
    EOF

    但是此时只是完成了Prometheus监控Router服务的指标,而没有通过Grafana查看。所以还需要单独部署Grafana

  4. 部署独立的Grafana

  5. 导入Haproxy的监控面板