ocp 监控exporter异常,无法拉取监控数据

【 使用环境 】生产环境
【 OB or 其他组件 】OCP4.3.4 OB4.2.5.2
【 使用版本 】社区版
【问题描述】监控exporter异常,无法拉取监控数据


【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

根据您提供的信息和文档库中的内容,以下是关于 OCP 监控 exporter 异常、无法拉取监控数据问题的详细分析与解决方法:


1. 问题分析

从您的描述和上传的图片来看,OCP 的监控 exporter 出现异常,导致无法正常拉取监控数据。结合文档片段中的信息,可能的原因包括以下几种:

  • exporter 状态异常ocp_exporter_address 表中记录的 exporter 状态为 inactive,这可能导致 OCP 无法采集到对应的监控数据(文档片段 4)。
  • OCP-Agent 故障:OCP-Agent 是负责拉取监控数据的核心组件,如果其出现异常,可能会导致监控数据无法正常采集(文档片段 5 和 8)。
  • 网络问题:OCP 无法访问目标机器上的 exporter 接口,可能是由于网络不通或防火墙限制(文档片段 2 和 5)。
  • 资源不足:如果 ocp_monitor 或 ocp_meta 租户资源不足,也可能影响监控数据的采集(文档片段 8)。

2. 排查步骤

2.1 检查 exporter 状态

  1. 查询 ocp_exporter_address 表,确认 exporter 的状态是否为 inactive

    SELECT * FROM ocp_meta.ocp_exporter_address WHERE status = 'inactive';
    

    如果存在状态为 inactive 的记录,则需要进一步排查。

  2. 在故障机器上通过 Unix Socket 接口测试 exporter 是否可访问:

    sudo curl -s --unix-socket /home/admin/ocp_agent/run/ocp_monagent.$(cat /home/admin/ocp_agent/run/ocp_monagent.pid).sock http://unix-socket-server/metrics/ob/basic
    

    如果返回数据正常,则说明 exporter 本身无问题;否则需要检查 exporter 进程是否运行正常。

  3. 在 OCP 服务器上测试是否能访问目标机器的 exporter 接口:

    curl http://<目标IP>:62889/metrics/ob/basic
    

    如果无法访问,可能是网络问题,请参考 网络故障排查


2.2 检查 OCP-Agent 状态

  1. 查看 OCP-Agent 日志,确认是否存在异常:

    • 日志路径通常为 /home/admin/ocp_agent/log/
    • 关键字搜索:errorexception
  2. 如果发现 OCP-Agent 异常,可以尝试重启 OCP-Agent:

    sudo systemctl restart ocp-agent
    
  3. 如果重启后问题仍未解决,可以尝试重装 OCP-Agent(文档片段 8 提供了相关建议)。


2.3 检查资源使用情况

  1. 检查 ocp_monitor 和 ocp_meta 租户的资源使用情况:

    SELECT tenant_name, used_mem, max_mem, used_disk, max_disk FROM oceanbase.__all_tenant;
    

    如果资源接近上限,需对租户进行扩容。

  2. 如果系统资源(如 CPU、内存、磁盘 I/O)不足,也可能导致监控数据采集失败。可以通过以下命令检查系统资源使用情况:

    top
    free -m
    iostat -x 1 5
    

2.4 检查告警信息

根据您上传的图片,告警 ID 为 3284077,告警名称为 monitor_exporter_unavaliable。结合文档片段 9 的信息,该告警表示某些 exporter 的状态不可用。建议:

  1. 核实实际工作的 exporter 数量是否满足预期(例如,部署了 OBServer 和 OBProxy 的主机应有 8 个 exporter)。
  2. 如果实际数量不足,定位未启动的 exporter 并恢复其运行。

3. 解决方案

根据排查结果,采取以下措施解决问题:

  1. 修复 exporter 状态异常

    • 如果 exporter 状态为 inactive,可以尝试重启对应的服务(如 OBServer 或 OBProxy)。
    • 如果问题仍未解决,可以参考 OCP-Agent 运维脚本 进行进一步排查。
  2. 修复 OCP-Agent 故障

    • 重启或重装 OCP-Agent。
    • 升级 OCP-Agent 到最新版本(如 V4.2.1),以优化采集性能(文档片段 8)。
  3. 解决网络问题

    • 确保 OCP 与目标机器之间的网络连通。
    • 检查防火墙规则,确保 exporter 的端口(如 62889)未被阻断。
  4. 扩容资源

    • 如果 ocp_monitor 或 ocp_meta 租户资源不足,对其进行扩容。

4. 后续建议

  • 定期检查 ocp_exporter_address 表的状态,及时发现并处理异常。
  • 配置白屏监控(文档片段 7 提到 OCP 已采集指标但未配置白屏监控),以便更直观地监控系统状态。
  • 使用 OceanBase 敏捷诊断工具 obdiag 收集诊断信息,便于快速定位问题。

如果您按照上述步骤仍无法解决问题,建议联系 OceanBase 的人工答疑团队获取进一步支持。

具体信息可参考以下文档:

  1. monitor_exporter_unavaliable 监控 exporter 异常
  2. 查询告警通知历史
  3. 监控指标概述
  4. 配置自定义监控
  5. ocp_collect_metric_failure_rate_high OCP-Server 采集监控失败率过高
  6. OCP-Agent 时序监控数据拉取方案