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}}}}'oc patch syndesis/app --type=merge -p '{"spec": {"addons": {"ops": {"enabled": true}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
步骤
如果有现有的
openshift-monitoring配置,请跳至第 2 步。否则,创建一个
openshift-monitoring配置,将用户工作负载监控选项设置为true,然后跳至第 3 步:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果存在现有的
openshift-monitoring配置:检查现有的
openshift-monitoring配置,以确定 用户工作负载监控 选项是否设置为 true :oc get -n openshift-monitoring cm/cluster-monitoring-config -ojsonpath='{.data.config\.yaml}'oc get -n openshift-monitoring cm/cluster-monitoring-config -ojsonpath='{.data.config\.yaml}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果结果为
enableUserWorkload: true,则用户工作负载监控选项设置为 true。跳至第 3 步。如果结果显示任何其他配置,请继续下一步,以便通过编辑 ConfigMap 来启用用户工作负载的监控。
在编辑器中打开 ConfigMap 文件,例如:
oc -n openshift-monitoring edit cm/cluster-monitoring-config
oc -n openshift-monitoring edit cm/cluster-monitoring-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 enableUserWorkload 设置为 true。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存 ConfigMap 文件。
使用以下命令监控
openshift-user-workload-monitoring命名空间中的 pod 状态:oc -n openshift-user-workload-monitoring get pods -w
oc -n openshift-user-workload-monitoring get pods -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 等待 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
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 RunningCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Prometheus 中是否启用了 Fuse Online 警报规则:
访问内部 prometheus 实例
oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090
oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
打开浏览器到
localhost:9090 -
选择 Status> Targets。您应该会看到三个
复合端点。 -
按 CTRL-C 终止
端口转发进程。
-
在 OperatorHub 中,将 Grafana Operator 版本 4 安装到您选择的命名空间,例如
grafana-middleware命名空间。使用更新频道v4 添加集群角色和集群角色绑定,以允许
grafana-operator列出节点和命名空间:从
grafana-operator网站下载集群角色 YAML 文件:curl https://raw.githubusercontent.com/grafana-operator/grafana-operator/v4/deploy/cluster_roles/cluster_role_grafana_operator.yaml > tmp_role.yaml
curl https://raw.githubusercontent.com/grafana-operator/grafana-operator/v4/deploy/cluster_roles/cluster_role_grafana_operator.yaml > tmp_role.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为
grafana-operator添加集群权限以读取其他命名空间和节点:Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f tmp_role.yaml
oc apply -f tmp_role.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用
DASHBOARD_NAMESPACES_ALL环境变量从其他命名空间中读取 Grafana 仪表板,以限制命名空间:oc -n grafana-middleware patch subs/grafana-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"DASHBOARD_NAMESPACES_ALL","value":"true"}]}}}'oc -n grafana-middleware patch subs/grafana-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"DASHBOARD_NAMESPACES_ALL","value":"true"}]}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
grafanapod 是否已重新创建:oc -n grafana-middleware get pods -w
oc -n grafana-middleware get pods -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,还可查看
grafana-operator日志:oc -n grafana-middleware logs -f `oc -n grafana-middleware get pods -oname|grep grafana-operator-controller-manager` -c manager
oc -n grafana-middleware logs -f `oc -n grafana-middleware get pods -oname|grep grafana-operator-controller-manager` -c managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加 Grafana 自定义资源 以启动 Grafana 服务器 pod,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 允许
grafana-operator读取监控信息:oc -n grafana-middleware adm policy add-cluster-role-to-user cluster-monitoring-view -z grafana-serviceaccount
oc -n grafana-middleware adm policy add-cluster-role-to-user cluster-monitoring-view -z grafana-serviceaccountCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加
GrafanaDatasource以查询thanos-querier:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看 grafana 服务器日志:
oc logs -f `oc get pods -l app=grafana -oname`
oc logs -f `oc get pods -l app=grafana -oname`Copy to Clipboard Copied! Toggle word wrap Toggle overflow 访问 grafana URL 并查看 Fuse 在线仪表板:
echo "https://"$(oc -n grafana-middleware get route/grafana-route -ojsonpath='{.spec.host}')echo "https://"$(oc -n grafana-middleware get route/grafana-route -ojsonpath='{.spec.host}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Grafana 控制台左侧面板中,点搜索按钮。此时会显示包含每个 Syndesis 实例的仪表板的文件夹(OCP 命名空间名称)。
- 对于 Fuse Online 集成,请选择 Integration - Camel。此仪表板显示 Apache Camel 集成应用程序公开的标准指标。
对于 Fuse Online 基础架构组件,请选择以下基础架构仪表板之一:
- Infrastructure - DB
- 显示与 Fuse Online Postgres 实例相关的指标。
- 基础架构 - JVM
-
显示关于为
syndesis-meta或syndesis-server应用运行 JVM 的指标。从仪表板顶部的 应用程序 下拉列表中,选择您要监控的应用程序。 - 基础架构 - REST API
-
显示与 Fuse Online 基础架构 API 端点相关的指标,如
请求。从仪表板顶部的 Application 下拉列表中选择要监控的应用程序。吞吐量和延迟
其他资源
有关 Prometheus 入门的详情,请参考: https://prometheus.io/docs/prometheus/latest/getting_started/