作者简介:海芊,一个对技术充满热情的文档工程师。
个人频道:Amber Loves OB
背景
运维 OceanBase 涉及到很多相关的变量和参数。实际生产中,如果只靠单一的黑屏工具查看这些参数的话,不仅会流程繁琐,而且查看结果也不够直观,这就降低了我们的工作效率。此外,如果想查询一些表达式,也不是很方便。基于这种背景,OceanBase 监控工具 OBAgent 应运而生。
OBAgent 是一个监控采集框架。OBAgent 支持推、拉两种数据采集模式,可以满足不同的应用场景。OBAgent 默认支持的插件包括主机数据采集、OceanBase 数据库指标的采集、监控数据标签处理和 Prometheus 协议的 HTTP 服务。要使 OBAgent 支持其他数据源的采集,或者自定义数据的处理流程,您只需要开发对应的插件即可。
OBAgent 是一个开源的项目,感兴趣的小伙伴可以去 GitHub 看看项目代码。更多关于 OBAgent 的信息,参考 OBAgent 文档。
P.S. 配合视频教程一起食用效果更佳噢~~视频教程,点击 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 一样:
obagent: global: # Username for HTTP authentication. The default value is admin. http_basic_auth_user: admin # Password for HTTP authentication. The default value is root. http_basic_auth_password: root # Username for debug service. The default value is admin. pprof_basic_auth_user: admin # Password for debug service. The default value is root. pprof_basic_auth_password: root # 以下配置必须与 OceanBase 数据库一致 # Monitor username for OceanBase Database. The user must have read access to OceanBase Database as a system tenant. The default value is root. monitor_user: root # Monitor password for OceanBase Database. The default value is empty. When a depends exists, OBD gets this value from the oceanbase-ce of the depends. The value is the same as the root_password in oceanbase-ce. monitor_password: # The SQL port for observer. The default value is 2881. When a depends exists, OBD gets this value from the oceanbase-ce of the depends. The value is the same as the mysql_port in oceanbase-ce. sql_port: 2881 # The RPC port for observer. The default value is 2882. When a depends exists, OBD gets this value from the oceanbase-ce of the depends. The value is the same as the rpc_port in oceanbase-ce. rpc_port: 2882 # Cluster name for OceanBase Database. When a depends exists, OBD gets this value from the oceanbase-ce of the depends. The value is the same as the appname in oceanbase-ce. cluster_name: obcluster # Cluster ID for OceanBase Database. When a depends exists, OBD gets this value from the oceanbase-ce of the depends. The value is the same as the cluster_id in oceanbase-ce. cluster_id: 1 # Zone name for your observer. The default value is zone1. When a depends exists, OBD gets this value from the oceanbase-ce of the depends. The value is the same as the zone name in oceanbase-ce. zone_name: zone1 # Monitor status for OceanBase Database. Active is to enable. Inactive is to disable. The default value is active. When you deploy an cluster automatically, OBD decides whether to enable this parameter based on depends.
然后使用以下命令启动 OBAgent:
obd cluster deploy only-obagent -c only-obagent.yaml obd cluster start only-obagent
使用以下命令确认进程是否启动成功:
ps -ef | grep monagent admin 3415 3373 0 19:57 pts/0 00:00:00 grep --color=auto monagent admin 28112 1 15 18:55 ? 00:09:51 /home/admin/obagent/bin/monagent -c conf/monagent.yaml
启动成功之后就可以查看相关的指标了:
# 查看主机指标 curl --user admin:root http://172.30.199.47:8088/metrics/node/host # 再查看ob基本指标 curl --user admin:root http://172.30.199.47:8088/metrics/ob/basic # 也可以查看指定指标 curl --user admin: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://your_ip:9090/
就可以用 Prometheus 查看 OceanBase 的指标了。alerts 告警,用来报告异常情况:
接下是 Status,可以看到 Rules 下面的配置规则,当指标超出规则时就会告警。
现在我们尝试查询一个表达式,以当前活跃会话数为例,可以看到具体时间的活跃会话数:
其他的功能请大家自行探索。
联系我们
欢迎广大 OceanBase 爱好者、用户和客户随时与我们联系、反馈,方式如下:
社区版官网论坛
社区版项目网站提 Issue
钉钉群:33254054