[OpenShift Container Platform][亚马逊EKS][IBM Cloud Pak for Integration]

使用 IBM MQ Operator 时进行监视

IBM® MQ Operator 管理的队列管理器可以生成与 Prometheus兼容的度量。 队列管理器指标已启用,并通过 HTTP 提供。

开始之前

使用 HTTPS 进行队列管理器指标

从 9.4.2.0-r1 可知,队列管理器可通过 HTTPS 提供指标服务。 在 9.4.2.0-r1 之前,队列管理器只能通过 HTTP 提供指标服务。

注意 :所有队列管理器默认通过 HTTP 提供指标。

关于本任务

Prometheus是一个开源的时间序列数据库和度量规则评估引擎。 IBM MQ 容器暴露了一个指标端点,可由 Prometheus 查询。 这些指标由 IBM MQ 队列管理器的系统主题生成。

OpenShift® Container Platform 包含一个预配置、预安装且可自动更新的监控堆栈,该堆栈采用 Prometheus 服务器。 监控 OpenShift Container Platform 堆栈需要进行配置,以便监控用户定义的项目。 请参阅文档 Red Hat® OpenShift关于为用户自定义项目启用监控的说明

若您在部署,可部署 PrometheusAmazon EKS,然后手动在 Prometheus 中配置抓取目标。

当您创建一个启用指标的 QueueManager 时,默认情况下 会 IBM MQ Operator 创建一个 ServiceMonitor , Prometheus 操作符随后可以发现该。 若您采用其他方式部署 Prometheus ,必须禁用 ServiceMonitor ,并手动在 Prometheus 中配置抓取目标。

过程

  • 查看队列管理器指标。
    Red Hat OpenShift
    使用 Red Hat OpenShift Container Platform (OCP) 监控堆栈
    1. 在 中打开 “指标 OCP”选项卡。
    2. 点击 “观察” > “指标”
    Amazon EKS
    1. 设置 .spec.queueManager.metrics.serviceMonitor.enabledfalse ,因为 ServiceMonitors 是默认启用的特定 Red Hat OpenShift 功能。 此功能必须在以下位置明确禁用: Amazon EKS
        spec:
          queueManager:
            metrics:
              enabled: true
              serviceMonitor:
                enabled: false
      
    2. 部署 Prometheus ,然后在 Prometheus 中手动配置抓取目标。
    3. 查看指标。 队列管理器指标通过端口提供服务 9157。 您可以在队列管理器 Pod 内部通过查询此端点查看指标。 例如,运行以下命令,其中 <POD> 是您的队列管理器 Pod 的名称:
      kubectl exec -t <POD> -- curl http://0.0.0.0:9157/metrics
      
  • 通过以下方式提供队列管理指标 HTTPS
    Red Hat OpenShift
    请将 .spec.queueManager.metrics.tls.provider 设置为 openshift
    spec:
      queueManager:
        metrics:
          enabled: true
          tls:
            provider: openshift
    注意: 使用此设置将生成一个 Red Hat OpenShift 证书,该证书由队列管理器的 HTTPS 指标服务器使用。 无法为. 配置其他提供商供其使用 IBM MQ Operator
    Amazon EKS (可选,但不推荐 Red Hat OpenShift
    提供您自己的证书,以便通过 HTTPS 提供队列管理器指标。

    若您正在使用 Red Hat OpenShift,可选择此选项,但不建议这样做,因为这需要禁用 功能 ServiceMonitor ,从而丧失该功能带来的优势。

    在队列管理器的 YAML 文件中设置以下值:
    • .spec.queueManager.metrics.tls.provider: manual
    • .spec.queueManager.metrics.tls.secretName包含您自有证书的TLS Kubernetes 密钥名称。 例如,您可以按照说明创建一对证书,并将它们存储在 OpenSSL 中创建自签名PKI的文档 secret 所述的位置。
    • .spec.queueManager.metrics.serviceMonitor.enabled: false
      spec:
        queueManager:
          metrics:
            enabled: true
            tls:
              provider: manual
              secretName: <my-tls-secret>
            serviceMonitor:
              enabled: false
      
      您可以在队列管理器 Pod 内部通过查询指标端点来查看指标。 例如,使用自签名证书时,请运行以下命令,其中 <POD> 是您的队列管理器 Pod 的名称:
      kubectl exec -t <POD> -- curl https://0.0.0.0:9157/metrics --insecure
      
  • 禁用队列管理器指标。

    .spec.queueManager.metrics.enabled 设置为 false.