3.2. 监控 Fuse 在线集成和与 Prometheus 的基础架构组件


您可以使用 Prometheus 监控 Fuse Online 基础架构组件和 Fuse Online 集成。您还可以使用 Grafana 仪表板来视觉化 Prometheus 收集的指标。

重要

红帽对 Prometheus 的支持仅限于红帽产品文档中提供的设置和配置建议。

Grafana 是社区支持的功能。红帽生产服务级别协议(SLA)不支持部署 Grafana 来监控 Red Hat Fuse 产品。

除了监控 Fuse Online 集成外,您还可以使用 Prometheus 监控以下 Fuse Online 基础架构组件公开的指标:

Syndesis Server
syndesis-server 组件与 Micrometer 进行了检测,默认自动公开所有 JVM Micrometer 指标。另外,syndesis-server 会公开有关 REST API 端点的指标,如请求率、错误率和延迟。
Syndesis Meta
syndesis-meta 组件已与 Micrometer 检测,默认自动公开所有 JVM Micrometer 指标。它还会公开其 REST API 端点的指标。
Syndesis DB
Fuse Online Postgres 数据库的指标使用 第三方 Prometheus 导出器 导出。
集成
集成 指标在创建集成后可见,并使用官方 JMX 导出器导出,该导出默认公开几个 JVM 指标。另外,集成指标会公开特定于 Apache Camel 的指标,如消息率和错误率。

先决条件

  • Fuse Online 在 OCP 4.9 (或更新版本)上安装并运行。
  • 已安装 oc 客户端工具,并连接到安装了 Fuse Online 的 OCP 集群。
  • 有 OCP 集群的 admin 访问权限。
  • 您的 Fuse 在线安装启用了 ops addon。如果需要,您可以使用以下命令启用它:

    oc patch syndesis/app --type=merge -p '{"spec": {"addons": {"ops": {"enabled": true}}}}'
    Copy to Clipboard Toggle word wrap

步骤

  1. 如果有现有的 openshift-monitoring 配置,请跳至第 2 步。

    否则,创建一个 openshift-monitoring 配置,将用户工作负载监控选项设置为 true,然后跳至第 3 步:

    oc apply -f - <<EOF
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cluster-monitoring-config
      namespace: openshift-monitoring
    data:
      config.yaml: |
       enableUserWorkload: true
    EOF
    Copy to Clipboard Toggle word wrap
  2. 如果存在现有的 openshift-monitoring 配置:

    1. 检查现有的 openshift-monitoring 配置,以确定 用户工作负载监控 选项是否设置为 true

      oc get -n openshift-monitoring cm/cluster-monitoring-config -ojsonpath='{.data.config\.yaml}'
      Copy to Clipboard Toggle word wrap

      如果结果为 enableUserWorkload: true,则用户工作负载监控选项设置为 true跳至第 3 步。

      如果结果显示任何其他配置,请继续下一步,以便通过编辑 ConfigMap 来启用用户工作负载的监控。

    2. 在编辑器中打开 ConfigMap 文件,例如:

      oc -n openshift-monitoring edit cm/cluster-monitoring-config
      Copy to Clipboard Toggle word wrap
    3. enableUserWorkload 设置为 true。例如:

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: cluster-monitoring-config
        namespace: openshift-monitoring
      data:
        config.yaml: |
         enableUserWorkload: true
      Copy to Clipboard Toggle word wrap
    4. 保存 ConfigMap 文件。
  3. 使用以下命令监控 openshift-user-workload-monitoring 命名空间中的 pod 状态:

    oc -n openshift-user-workload-monitoring get pods -w
    Copy to Clipboard Toggle word wrap

    等待 pod 的状态为 Running,例如:

    prometheus-operator-5d989f48fd-2qbzd   2/2     Running
    prometheus-user-workload-0             5/5     Running   prometheus-user-workload-1             5/5     Running
    thanos-ruler-user-workload-0           3/3     Running
    thanos-ruler-user-workload-1           3/3     Running
    Copy to Clipboard Toggle word wrap
  4. 验证 Prometheus 中是否启用了 Fuse Online 警报规则:

    1. 访问内部 prometheus 实例

      oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090
      Copy to Clipboard Toggle word wrap
    2. 打开浏览器到 localhost:9090
    3. 选择 Status> Targets。您应该会看到三个 复合 端点。
    4. CTRL-C 终止 端口转发 进程。
  5. 在 OperatorHub 中,将 Grafana Operator 版本 4 安装到您选择的命名空间,例如 grafana-middleware 命名空间。使用更新频道 v4
  6. 添加集群角色和集群角色绑定,以允许 grafana-operator 列出节点和命名空间:

    1. grafana-operator 网站下载集群角色 YAML 文件:

      curl https://raw.githubusercontent.com/grafana-operator/grafana-operator/v4/deploy/cluster_roles/cluster_role_grafana_operator.yaml > tmp_role.yaml
      Copy to Clipboard Toggle word wrap
    2. grafana-operator 添加集群权限以读取其他命名空间和节点:

      cat <<EOF >> tmp_role.yaml
        - apiGroups:
            - ""
          resources:
            - namespaces
            - nodes
          verbs:
            - get
            - list
            - watch
      EOF
      Copy to Clipboard Toggle word wrap
      oc apply -f tmp_role.yaml
      Copy to Clipboard Toggle word wrap
      oc apply -f - <<EOF
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
        name: grafana-operator
      roleRef:
        name: grafana-operator
        kind: ClusterRole
        apiGroup: ""
      subjects:
        - kind: ServiceAccount
          name: grafana-operator-controller-manager
          namespace: grafana-middleware
      EOF
      Copy to Clipboard Toggle word wrap
  7. 使用 DASHBOARD_NAMESPACES_ALL 环境变量从其他命名空间中读取 Grafana 仪表板,以限制命名空间:

    oc -n grafana-middleware patch subs/grafana-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"DASHBOARD_NAMESPACES_ALL","value":"true"}]}}}'
    Copy to Clipboard Toggle word wrap
  8. 检查 grafana pod 是否已重新创建:

    oc -n grafana-middleware get pods -w
    Copy to Clipboard Toggle word wrap
  9. 另外,还可查看 grafana-operator 日志:

    oc -n grafana-middleware logs -f `oc -n grafana-middleware get pods -oname|grep grafana-operator-controller-manager` -c manager
    Copy to Clipboard Toggle word wrap
  10. 添加 Grafana 自定义资源 以启动 Grafana 服务器 pod,例如:

    oc apply -f - <<EOF
    apiVersion: integreatly.org/v1alpha1
    kind: Grafana
    metadata:
      name: grafana-middleware
      namespace: grafana-middleware
    spec:
      config:
        auth:
          disable_signout_menu: true
        auth.anonymous:
          enabled: true
        log:
          level: warn
          mode: console
        security:
          admin_password: secret
          admin_user: root
      dashboardLabelSelector:
      - matchExpressions:
        - key: app
          operator: In
          values:
          - grafana
          - syndesis
      ingress:
        enabled: true
    EOF
    Copy to Clipboard Toggle word wrap
  11. 允许 grafana-operator 读取监控信息:

    oc -n grafana-middleware adm policy add-cluster-role-to-user cluster-monitoring-view -z grafana-serviceaccount
    Copy to Clipboard Toggle word wrap
  12. 添加 GrafanaDatasource 以查询 thanos-querier

    oc apply -f - <<EOF
    apiVersion: integreatly.org/v1alpha1
    kind: GrafanaDataSource
    metadata:
      name: prometheus-grafanadatasource
      namespace: grafana-middleware
    spec:
      datasources:
        - access: proxy
          editable: true
          isDefault: true
          jsonData:
            httpHeaderName1: 'Authorization'
            timeInterval: 5s
            tlsSkipVerify: true
          name: Prometheus
          secureJsonData:
            httpHeaderValue1: "Bearer $(oc get secret $(oc get secret | grep grafana-serviceaccount-token | awk '{print$1}') -o=jsonpath="{.data.token}" | base64 -d)"
          type: prometheus
          url: "https://$(oc get route thanos-querier -n openshift-monitoring -ojsonpath='{.spec.host}')"
      name: prometheus-grafanadatasource.yaml
    EOF
    Copy to Clipboard Toggle word wrap
  13. 查看 grafana 服务器日志:

    oc logs -f `oc get pods -l app=grafana -oname`
    Copy to Clipboard Toggle word wrap
  14. 访问 grafana URL 并查看 Fuse 在线仪表板:

    echo "https://"$(oc -n grafana-middleware get route/grafana-route -ojsonpath='{.spec.host}')
    Copy to Clipboard Toggle word wrap

    在 Grafana 控制台左侧面板中,点搜索按钮。此时会显示包含每个 Syndesis 实例的仪表板的文件夹(OCP 命名空间名称)。

    • 对于 Fuse Online 集成,请选择 Integration - Camel。此仪表板显示 Apache Camel 集成应用程序公开的标准指标。
    • 对于 Fuse Online 基础架构组件,请选择以下基础架构仪表板之一:

      Infrastructure - DB
      显示与 Fuse Online Postgres 实例相关的指标。
      基础架构 - JVM
      显示关于为 syndesis-metasyndesis-server 应用运行 JVM 的指标。从仪表板顶部的 应用程序 下拉列表中,选择您要监控的应用程序。
      基础架构 - REST API
      显示与 Fuse Online 基础架构 API 端点相关的指标,如 请求 吞吐量和延迟 。从仪表板顶部的 Application 下拉列表中选择要监控的应用程序。

其他资源

有关 Prometheus 入门的详情,请参考: https://prometheus.io/docs/prometheus/latest/getting_started/

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat