Skip to content

OceanBase OBProxy 监控

监控指标体系

1. 基本指标

  • 进程状态:OBProxy 进程是否正常运行
  • CPU 使用率:OBProxy 进程占用的 CPU 资源百分比
  • 内存使用率:OBProxy 进程占用的内存资源百分比
  • 连接数:当前连接到 OBProxy 的客户端数量

2. 性能指标

  • 请求吞吐量:OBProxy 每秒处理的请求数量
  • 响应时间:OBProxy 处理请求的平均响应时间
  • 错误率:请求处理失败的比例
  • 转发延迟:请求从 OBProxy 转发到后端节点的延迟

3. 连接指标

  • 活跃连接数:当前活跃的客户端连接数量
  • 连接创建速率:每秒创建的新连接数量
  • 连接关闭速率:每秒关闭的连接数量
  • 连接超时数:超时的连接数量

4. 资源指标

  • 文件句柄使用量:当前使用的文件句柄数量
  • 网络带宽使用率:OBProxy 占用的网络带宽百分比
  • 磁盘 I/O 使用率:OBProxy 占用的磁盘 I/O 百分比

监控工具

1. 内置监控工具

OBProxy 状态命令

bash
# 查看 OBProxy 状态
obproxy -s status

# 查看 OBProxy 版本信息
obproxy -v

# 查看 OBProxy 配置
obproxy -c /home/admin/obproxy/conf/obproxy.conf

SQL 监控命令

sql
-- 查看 OBProxy 连接信息
SELECT * FROM oceanbase.GV$OB_PROXY_CONNECTIONS;

-- 查看 OBProxy 会话信息
SELECT * FROM oceanbase.GV$OB_PROXY_SESSIONS;

-- 查看 OBProxy 性能统计
SELECT * FROM oceanbase.GV$OB_PROXY_STATISTICS;

2. 第三方监控工具

Prometheus + Grafana

  • 部署方法:配置 Prometheus 采集 OBProxy 指标,使用 Grafana 可视化展示
  • 优势:开源免费,支持灵活的告警配置,可视化效果好
  • 适用场景:大规模集群监控,需要自定义监控面板

Zabbix

  • 部署方法:配置 Zabbix Agent 监控 OBProxy 进程和资源使用情况
  • 优势:功能全面,支持多种告警方式
  • 适用场景:已有 Zabbix 监控体系的环境

OCP 监控

  • 部署方法:使用 OceanBase 企业管理器(OCP)监控 OBProxy
  • 优势:与 OceanBase 深度集成,支持一键部署和配置
  • 适用场景:生产环境,需要全面的 OceanBase 监控

监控配置

1. 开启 OBProxy 监控

修改 OBProxy 配置

bash
# 编辑 OBProxy 配置文件
vi /home/admin/obproxy/conf/obproxy.conf

# 开启监控功能
enable_metrics = true
metrics_listen_port = 2884

重启 OBProxy 使配置生效

bash
sudo systemctl restart obproxy

2. 配置 Prometheus 采集

添加 Prometheus 配置

yaml
# prometheus.yml
scrape_configs:
  - job_name: 'obproxy'
    static_configs:
      - targets: ['obproxy1:2884', 'obproxy2:2884']
    scrape_interval: 15s

重启 Prometheus 使配置生效

bash
sudo systemctl restart prometheus

3. 配置 Grafana 面板

导入 OBProxy 监控模板

  • 从 Grafana 官网或 OceanBase 社区下载 OBProxy 监控模板
  • 导入到 Grafana 中,配置数据源为 Prometheus
  • 根据需要调整监控面板和告警规则

监控告警

1. 告警规则设计

基本告警

  • OBProxy 进程异常:OBProxy 进程停止运行
  • CPU 使用率过高:CPU 使用率持续超过 90%
  • 内存使用率过高:内存使用率持续超过 90%
  • 连接数过多:连接数超过最大连接数的 80%

性能告警

  • 响应时间过长:平均响应时间超过 1 秒
  • 错误率过高:错误率持续超过 1%
  • 转发延迟过高:转发延迟超过 500ms

资源告警

  • 文件句柄不足:文件句柄使用率超过 90%
  • 网络带宽不足:网络带宽使用率超过 90%

2. 告警通知方式

  • 邮件通知:发送告警邮件到指定邮箱
  • 短信通知:发送告警短信到指定手机
  • 即时通讯工具:通过微信、钉钉等发送告警通知
  • 监控系统集成:与现有监控系统集成,统一管理告警

监控最佳实践

1. 监控覆盖范围

  • 全面监控:监控所有 OBProxy 实例,包括主备节点
  • 关键指标优先:优先监控影响业务的关键指标
  • 分层监控:实现从基础设施到应用层的分层监控

2. 监控频率设置

  • 基础指标:建议每 15 秒采集一次
  • 性能指标:建议每 30 秒采集一次
  • 资源指标:建议每分钟采集一次
  • 日志指标:建议每 5 分钟采集一次

3. 告警阈值设置

  • 基于历史数据:根据历史数据设置合理的告警阈值
  • 动态调整:根据业务负载动态调整告警阈值
  • 分级告警:设置不同级别的告警阈值,实现分级告警

4. 监控数据分析

  • 趋势分析:分析监控数据的趋势,预测可能出现的问题
  • 关联分析:关联不同指标的变化,定位问题根因
  • 异常检测:使用机器学习算法检测异常行为

常见问题(FAQ)

Q1: 如何快速定位 OBProxy 性能问题?

A1: 定位方法:

  • 查看 OBProxy 响应时间和错误率指标,确认性能问题
  • 检查后端 OceanBase 节点状态,确认是否为后端问题
  • 分析 OBProxy 日志,寻找错误信息
  • 使用 SQL 命令查看 OBProxy 会话和连接信息

Q2: 如何优化 OBProxy 监控性能?

A2: 优化建议:

  • 合理设置监控采集频率,避免过度采集
  • 只监控必要的指标,减少监控数据量
  • 使用高性能的监控存储,如 Prometheus TSDB
  • 定期清理监控数据,释放存储空间

Q3: 如何实现 OBProxy 监控的高可用?

A3: 实现方法:

  • 部署多个监控采集节点,避免单点故障
  • 配置监控数据的备份和恢复机制
  • 实现监控告警的冗余通知,确保告警能够及时送达

Q4: 如何监控 OBProxy 与后端节点的通信?

A4: 监控方法:

  • 监控 OBProxy 到后端节点的网络连接状态
  • 监控 OBProxy 转发到后端节点的延迟
  • 监控 OBProxy 与后端节点的心跳状态
  • 分析 OBProxy 日志中的后端节点通信信息

Q5: 如何使用监控数据优化 OBProxy 配置?

A5: 优化方法:

  • 分析连接数和资源使用情况,调整 OBProxy 最大连接数
  • 根据响应时间和错误率,调整 OBProxy 超时参数
  • 根据网络带宽使用情况,调整 OBProxy 网络配置
  • 根据业务负载变化,动态调整 OBProxy 资源配置