本文介绍如何通过部署 OBCloud Exporter 和 Prometheus 进行 OceanBase 云数据库的监控。
背景信息
OBCloud Exporter 是云数据库 OceanBase 提供的一款数据库数据处理工具,可通过该工具完成 OceanBase 数据库的鉴权和数据获取。再结合本地 Prometheus 工具对数据库进行相应的监控。
下文通过系统直接部署和通过 docker 部署两种方式说明相应的工具使用方法。
前提条件
已部署 Java 8 及以上的运行环境。
已完成 Docker 部署。
系统运行 Prometheus 监控 OceanBase 云数据
下载 OBCloud Exporter。
说明目前 OBCloud Exporter 暂未放开直接下载,可联系技术支持人员获取。
部署 OBCloud Exporter。
解压 OBCloud Exporter 安装包,安装目录为
/opt/obcloud-exporter
。mkdir /opt/obcloud-exporter tar -zxvf Obcloud_Exporter.tar.gz -C /opt/obcloud-exporter --strip-components=1
解压后目录包含如下文件:
Dockerfile:Docker 容器构建文件。
muticloud_metric_config.yaml:指标配置文件,此文件默认不需要修改。
application.yaml:采集配置文件。
obcloud-exporter-1.0-SNAPSHOT-jar-with-dependencies.jar:OBCloud Exporter 程序。
readme.md:项目说明。
编辑配置文件 application.yaml。
# 监控名称 aliyun_monitor: # 身份凭据 credential: access_key_id: xxx access_key_secret: xx region_id: ap-southeast-1 # 终端地址 end_point: xxx # 是否定时刷新 metric 指标,默认为 false。 metric_meta_auto_refresh: false instances: # 实例 ID - instance_id: xxx # 查询集群下指定租户,需配置 tenant_id tenant_id: xxx # 实例类型:cluster 集群实例,tenant 租户实例/Serverless 实例。 instance_type: tenant metrics:
参数说明:
access_key_id、access_key_secret:鉴权信息,可在对应平台申请。具体操作,请参见,创建AccessKey。
region_id、end_point:请参见 公有云服务区域说明。
metric_meta_auto_refresh:是否定时刷新 metric 指标,默认为 false。
instances:监控实例,可包含多个集群、租户实例,通过短划线(-)并列填入。
instance_id:集群 ID、serverless 实例 ID、租户实例 ID。
说明不支持使用集群下的租户 ID。
instance_type:固定为 cluster(集群)或 tenant(租户)。当 instance_id 为集群实例时,填入 cluster;当 instance_id 为租户实例、Serverless 实例时,填入 tenant。
tenant_id:查询集群下指定租户,需配置 tenant_id。
metrics:指标信息,不填表示采集全部指标。当需要采集指定指标时,格式如下:
instances: -instance_id: xxx tenant_id: xxx instance_type: cluster metrics: - sql_all_rt - sql_delete_rt
说明采集指标过多可能会影响采集速度,适当情况下拆分为多个 exporter。
通过 Java 直接运行 OBCloud Exporter。
java -jar /opt/obcloud-exporter/obcloud-exporter-1.0-SNAPSHOT-jar-with-dependencies.jar
通过浏览器验证部署结果,访问对应 IP 地址的 9400 端口,确认是否获取到监控数据。
说明实际使用中,根据实际配置的地址端口进行访问。
下载 Prometheus 软件,在官网找到所需版本的 Prometheus 安装包,进行下载,如下以 2.50.1 的 Linux 版本为例。
wget https://github.com/prometheus/prometheus/releases/download/v2.50.1/prometheus-2.50.1.linux-amd64.tar.gz
部署 Prometheus。
解压并安装 Prometheus 软件,安装目录为
/opt/prometheus
。mkdir -p /opt/prometheus tar -zxvf prometheus-2.50.1.linux-amd64.tar.gz -C /opt/prometheus --strip-components=1
转移配置文件 prometheus.yml 到工作目录,并根据需要进行编辑。
mv /opt/prometheus/prometheus.yml /usr/local/bin/ vi /usr/local/bin/prometheus.yml
修改如下参数:
global: scrape_interval: 30s scrape_timeout: 20s scrape_configs: - job_name: "nodes" static_configs: - targets: ['localhost:9400']
新建 Prometheus 服务文件和相关数据存储目录。
mkdir /var/lib/prometheus/ sudo vim /etc/systemd/system/Prometheus.service
填写如下内容并保存。
说明User(用户)和 Group(用户组)参数是可选的,设置方法请参考下一步骤 设置用户名和用户组。
[Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Restart=on-failure ExecStart=/opt/prometheus/prometheus \ --config.file /usr/local/bin/prometheus.yml \ --storage.tsdb.path /var/lib/prometheus/ [Install] WantedBy=multi-user.target
(可选)设置用户名和用户组,上一步骤中配置已有的用户/用户组或者没有配置,可忽略此步骤。
sudo groupadd prometheus sudo useradd -r -g prometheus prometheus sudo chown -R prometheus:prometheus /opt/prometheus /var/lib/prometheus sudo chmod -R 755 /opt/prometheus /var/lib/prometheus
启动 Prometheus 服务。
# 加载新的 systemd 配置 sudo systemctl daemon-reload # 启动 Prometheus 服务 sudo systemctl start prometheus # 设置开机启动 sudo systemctl enable prometheus # 检查服务状态 sudo systemctl status prometheus
确认 Prometheus 是否启动成功。
sudo netstat -ntlp | grep 9090
通过 docker 部署 prometheus 监控 OceanBase 云数据库
下载 OBCloud Exporter。
说明目前 OBCloud Exporter 暂未放开直接下载,可联系技术支持人员获取。
部署 OBCloud Exporter。
解压 OBCloud Exporter 安装包,安装目录为
/opt/obcloud-exporter
。mkdir /opt/obcloud-exporter tar -zxvf Obcloud_Exporter.tar.gz -C /opt/obcloud-exporter --strip-components=1
解压后目录包含如下文件:
Dockerfile:Docker 容器构建文件。
muticloud_metric_config.yaml:指标配置文件,此文件默认不需要修改。
application.yaml:采集配置文件。
obcloud-exporter-1.0-SNAPSHOT-jar-with-dependencies.jar:OBCloud Exporter 程序。
readme.md:项目说明。
编辑配置文件 application.yaml。
# 监控名称 aliyun_monitor: # 身份凭据 credential: access_key_id: xxx access_key_secret: xx region_id: ap-southeast-1 # 终端地址 end_point: xxx # 是否定时刷新 metric 指标,默认为 false。 metric_meta_auto_refresh: false instances: # 实例 ID - instance_id: xxx # 查询集群下指定租户,需配置 tenant_id tenant_id: xxx # 实例类型:cluster 集群实例,tenant 租户实例/Serverless 实例。 instance_type: tenant metrics:
参数说明:
access_key_id、access_key_secret:鉴权信息,可在对应平台申请。具体操作,请参见,创建AccessKey。
region_id、end_point:请参见 公有云服务区域说明。
metric_meta_auto_refresh:是否定时刷新 metric 指标,默认为 false。
instances:监控实例,可包含多个集群、租户实例,通过短划线(-)并列填入。
instance_id:集群 ID、serverless 实例 ID、租户实例 ID。
说明不支持使用集群下的租户 ID。
instance_type:固定为 cluster(集群)或 tenant(租户)。当 instance_id 为集群实例时,填入 cluster;当 instance_id 为租户实例、Serverless 实例时,填入 tenant。
tenant_id:查询集群下指定租户,需配置 tenant_id。
metrics:指标信息,不填表示采集全部指标。当需要采集指定指标时,格式如下:
instances: -instance_id: xxx tenant_id: xxx instance_type: cluster metrics: - sql_all_rt - sql_delete_rt
说明metric 指标的详细介绍,请参见 监控指标清单。
采集指标过多可能会影响采集速度,适当情况下拆分为多个 exporter。
通过 Docker 启动 OBCloud Exporter。
在
/opt/obcloud-exporter
目录下,构建 obcloud-exporter 容器。cd /opt/obcloud-exporter docker build -t obcloud-exporter:1.0 .
启动容器或者映射外部配置文件启动。
直接启动 Docker 容器
docker run -itd -p9400:9400 --name obcloud-exporter obcloud-exporter:1.0
通过映射外部配置文件启动 Docker 容器。
docker run -itd -p9400:9400 -v /opt/obcloud-exporter/application.yaml:/app/application.yaml --name obcloud-exporter obcloud-exporter:1.0
通过浏览器验证部署结果,访问对应 IP 地址的 9400 端口,确认是否获取到监控数据。
说明实际使用中,根据实际配置的地址端口进行访问。
创建 Prometheus 配置文件 prometheus.yml。
vi /usr/local/bin/prometheus.yml
编辑配置文件内容:
global: scrape_interval: 30s evaluation_interval: 30s scrape_configs: - job_name: obcloud-exporter-test static_configs: # 本地服务器加端口 - targets: ['obcloud-exporter:9400'] labels: instance: obcloud-exporter
启动 Prometheus 服务。
docker run -d \ -p 9090:9090 \ -v /usr/local/bin/prometheus.yml:/etc/prometheus/prometheus.yml \ --link obcloud-exporter \ --name prometheus \ prom/prometheus
确认 Prometheus 是否启动成功。
sudo netstat -ntlp | grep 9090
通过 Prometheus 查看数据库监控
通过浏览器访问 Prometheus 服务地址:http://localhost:9090/targets
,查看相应的监控信息。
监控指标清单
配置 OBCloud Exporter 时,其支持的指标项遵循 OceanBase 云数据库自身所涵盖的指标范围。在运行时,系统会同步 OceanBase 云数据库集群的自定义监控指标,包括集群自定义监控指标中的 集群主机 部分及租户级别下的所有自定义监控指标。详细内容,请参见 集群监控指标清单,租户监控指标清单。
当 application.yaml 配置文件中的 metric_meta_auto_refresh 参数设置为 false 时,支持的指标保持初次访问返回的结果;当 metric_meta_auto_refresh 参数设置为 true 时,则每 10 分钟会更新一次支持的指标清单。