背景
运维OceanBase涉及到很多相关的参数和参数。实际生产中,如果只靠单一的黑屏工具查看这些参数的话,不仅会流程繁琐,而且查看结果也不够仔细,这就降低了我们的工作效率。另外,如果想查询一些表,也不是很方便。基于这样的背景,OceanBase监控工具OBAgent应该运而生。
OBAgent 是一个监控采集框架。OBAgent 支持推、拉两种数据采集模式,可以满足不同的应用场景。OBAgent 默认支持的插件包括主机数据采集、OceanBase 数据库指标的采集流程、监控数据标签处理和 Prometheus 协议的 HTTP 服务。要使 OBAgent 支持其他数据源的采集,或者自定义数据的处理,您只需开发对应的插件即可。
OBAgent 是一个项目,感兴趣的开源小伙伴可以去 GitHub 项目代码。更多关于OBAgent 的信息,参考 OBAgent 文档。
PS配合视频教程一起获得效果更佳哦~~视频教程,点击 OceanBase监控工具OBAgent。
使用
介绍完OBAgent的功能,接下来我们聊聊怎么使用它。要使用OBAgent,我们首先把这个进程启动起来。然后再使用Prometheus接入,虽然Prometheus是一个可选的步骤,但是使用起来还是很方便的,这里我们也介绍一下。
配置 OBAgent 有两种方式,一种是手动配置,一种是使用 OBD 部署。手动配置 OBAgent 需要配置 KV、monagent 和 Prometheus (可选,根据你的实际需求决定)。更多信息,参考 配置文件文档。相比之下,使用 OceanBase 开源软件的安装部署工具 OBD 就需要配置简单很多。只需一个 OBAgent 配置文件就可以把服务启动起来。而且,OBD 还会根据你的实际情况自动生成一个 Prometheus的配置文件,还会把Prometheus的规则写好。你可以使用默认的规则,也可以根据需要对规则做出调整。
部署OBAgent
接下来我们使用 OBD,一起部署 OBAgent 服务。OBAgent 可以同时启动 OceanBase 集群,也可以先启动一个 ObceanBase 集群,再启动 OBAgent。我在启动 OBAgent 之前已经有了一个 ObceanBase 集群,所以我跟单独启动 OBAgent 就可以了。我的集群信息如下:
使用 OBD 启动 OBAgent 的示例配置文件参考 这里,配置文档参考 这里。
OBAgent 的以下配置字段必须与 OceanBase 一样:
代理: 全球的: # HTTP 身份验证的用户名。默认值为 admin。 http_basic_auth_user: 管理员 # HTTP 身份验证的密码。默认值为 root。 http_basic_auth_密码: root # 调试服务的用户名。默认值为 admin。 pprof_basic_auth_user:管理员 # 调试服务的密码。默认值为root。 pprof_basic_auth_密码: root # 以下配置必须与 OceanBase 数据库一致 # OceanBase数据库监控用户名,该用户必须具有系统租户OceanBase数据库的读权限,默认值为root。 监控用户:root # OceanBase数据库监控密码,默认为空,当存在依赖时,OBD会从依赖的oceanbase-ce中获取该值,与oceanbase-ce中的root_password一致。 监控密码: # observer的SQL端口,默认为2881,当存在depends时,OBD会从depends的oceanbase-ce中获取该值,与oceanbase-ce中的mysql_port一致。 sql_端口:2881 # observer的rpc端口,默认为2882,当存在depends时,OBD会从depends的oceanbase-ce获取该值,与oceanbase-ce中的rpc_port一致。 rpc_端口:2882 # OceanBase Database 集群名称,当存在依赖时,OBD 从依赖的 oceanbase-ce 获取该值,该值与 oceanbase-ce 中的 appname 相同。 群集名称:obcluster # OceanBase数据库的集群ID,当存在依赖时,OBD会从依赖的oceanbase-ce中获取该值,与oceanbase-ce中的cluster_id相同。 集群ID:1 # 观察者的区域名称。默认值为 zone1。当存在依赖项时,OBD 会从依赖项的 oceanbase-ce 获取此值。该值与 oceanbase-ce 中的区域名称相同。 区域名称:zone1 # OceanBase数据库监控状态,active为开启,inactive为关闭,默认为active,在自动部署集群时,OBD会根据depends决定是否开启该参数。
然后使用以下命令启动OBAgent:
obd 集群部署 only-obagent -c only-obagent.yaml obd 集群仅启动-obagent
使用以下命令确认进程是否启动成功:
ps -ef | grep monagent 管理员 3415 3373 0 19:57 点/0 00:00:00 grep --color=auto monagent 管理员 28112 1 15 18:55 ? 00:09:51 /home/admin/obagent/bin/monagent -c conf/monagent.yaml
启动成功之后就可以查看相关的指标了:
# 主机指标 curl --用户管理员:root http://172.30.199.47:8088/metrics/node/host # 重新查看 ob 基本指标 curl --用户管理员:root http://172.30.199.47:8088/metrics/ob/basic # 另请参阅 curl --用户管理员:root http://172.30.199.47:8088/metrics/ob/basic | grep ob_cache_size_bytes
其中,主机指标的返回结果如下图:
部署Prometheus(可选)
我们再试试Prometheus,大家自行下载,相信都会。使用OBD配置OBAgent会自动生成一份Prometheus配置文件,接下来我们假设目标机器上的配置文件复制到中控机器。
# 配置文件路径 $obagent_working_directory/conf/prometheus_config/
来到 Prometheus 的安装目录,现在启动它:
cd prometheus-2.30.3.linux-amd64 ./prometheus --config.file=../prometheus_config/prometheus.yaml
打开浏览器,输入以下网址
http://你的 ip:9090/
就可以用Prometheus查看OceanBase的指标了。警报同样,用于报告异常情况:
接下的是状态,可以看下面规则的配置规则,当指标超出规则时就会同样。
现在我们尝试查询一个表达式,以查看当前的活跃会话数为例,可以具体时间的活跃会话数:
其他的功能请大家自行探索。
想了解更多干货,可通过下方扫码关注
可扫码添加上智启元官方客服微信👇