暂无图片
使用Prometheus+Grafana监控OceanBase
最近更新:2024-01-16 15:51:34

适用范围

|软件|版本| |-|-| |OceanBase|3.2.4.5| |OBAgent|obagent-4.2.1-100000142023121217.el7.x86_64.rpm| |OCP|4.1.0-20230901135653| |Prometheus|prometheus-2.49.0-rc.0.linux-amd64.tar.gz| |Grafana|grafana-enterprise-10.1.2-1.x86_64.rpm| |操作系统|BigCloud Enterprise Linux For Euler release 21.10 (LTS-SP2)|

OceanBase 监控解决方案

方案一:OCP 云管平台

OCP 云管平台是 OceanBase 官方提供的一站式管理解决方案,它的架构如下: image.png 从上面的体系架构可以看出 OCP 管理服务提供打包好的一站式监控告警和运维服务,OCP 管理服务会将数据存储在 OceanBase 集群中,对应创建的 [元信息数据库] 和 [监控数据库] 中,并在 OBServer、OBProxy 和 主机上提供 OCP Agent 代理服务,用来收集信息和执行任务。

方案二:基于 Prometheus + Grafana 的监控(本文重点)

基于 Prometheus + Grafana 的监控方案主要是配合 OBProxy 暴露的 2884 端口,以及社区生态工具 OBAgent 形成的解决方案,可以满足企业已有 Prometheus 集群监控体系的接入。针对这个方案,借用参考文档阿福的一张图,方便大家理解逻辑架构: image.png

实施步骤

1. 前置条件

整个方案,我们需要提前准备好一些基础条件,下面简单列出一些需要的内容,如果大家已经具备部分条件,可以忽略,只针对性的准备需要的内容即可。

  • OceanBase:本文章不涉及集群部署,请参考官方文档提前部署 OceanBase 集群。
  • OBProxy:按理说 OBProxy 是在 OceanBase 集群中部署的,但是在 Docker 和 单机部署环境中,也可以只部署 OBServer 而不部署 OBProxy。这里单独强调一下,是因为 OBProxy 也提供单独的 Prometheus 监控服务,在本文中也会涉及。
  • Prometheus 软件:Prometheus 软件是监控服务的核心,用来收集监控数据,提供存储、查询和告警功能,Prometheus 所需要的配置文件,OBAgent 会帮我们自动生成。
  • Alert Manager 软件: Prometheus 监控的告警组件。
  • Grafana 软件:Grafana 是视图展示层,取 Prometheus 存储的数据,社区也有发布对应的 Dashboard 方便大家一键集成。 Grafana Dashboard: Oceanbase Metrics:https://grafana.com/grafana/dashboards/15215 Host Metrics:https://grafana.com/grafana/dashboards/15216 Obproxy Metrics:https://grafana.com/grafana/dashboards/15354

2. 基础环境架构

本文中我采用了一个最简单的三节点 OceanBase 集群架构,OBProxy 与 OBServer 共用服务器,另外配置了一台部署 OceanBase 组件的机器和一台部署 Prometheus 和 Grafana 的机器,服务器使用说明如下:

|IP地址|承载的服务| |-|-| |133.96.123.43|OCP、ODC、OBD| |133.96.123.36|OceanBase、OBProxy、OBAgent| |133.96.123.37|OceanBase、OBProxy、OBAgent| |133.96.123.38|OceanBase、OBProxy、OBAgent| |133.96.123.96|Prometheus、Grafana|

未命名文件.jpg

3. OBAgent 简介

OBAgent 是一个用 GO 语言开发的监控采集和运维框架,通常部署在所有 OBServer 节点上。

  • 监控部分,OBAgent 支持推、拉两种数据采集模式,可以满足不同的应用场景。OBAgent 默认支持的插件包括主机数据采集、OceanBase 数据库指标的采集、日志信息采集、监控数据标签处理和 Prometheus 协议的 HTTP 服务。支持推送数据到 pushgateway、vmagent、es、sls、alertmanager。要使 OBAgent 支持其他数据源的采集,或者自定义数据的处理流程,您只需要开发对应的插件即可。
  • 运维部分,OBAgent 支持配置热更新,同时提供了对 Agent 自身运维的接口,以及文件操作和 RPM 包操作的接口,您可以根据自身需求来使用这些接口。

OBAgent的详细介绍参考官方文档:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000220263

OBAgent 提供使用 OBD 部署和手动部署。若要手动部署 OBAgent,您要配置 OBAgent、Prometheus 和 Prometheus Alertmanager(可选)。推荐使用 OBD 部署 OBAgent。本文将介绍如何使用 OBD 单独部署 OBAgent。

4. 部署和配置 OBD

OceanBase 安装部署工具(OceanBase Deployer,OBD)是 OceanBase 开源软件的安装部署工具。 OBD的使用说明参考官方文档:https://www.oceanbase.com/docs/obd-cn

  • 离线安装 OBD
[root@ob4 ~]# rpm -ivh ob-deploy-2.5.0-2.el7.x86_64.rpm
Verifying...                          ################################# [100%]
......