OceanBase企业版中,已经提供了OceanBase云平台(OceanBase Cloud Platform,OCP)对OB集群进行管理、监控等,社区版2021年10月份提供了OBAgent进行信息收集,可将ob信息推送至prometheus,在2021年11月中旬提供了grafana监控面板,可将prometheus的监控数据在grafana上进行展示。
2021年12月31日推出了社区版OCP,支持使用OCP部署Oceanbase-ce 3.1.2,但该版本目前不支持OBD部署的OceanBase集群接管,OCP下个迭代版本会考虑支持,计划 2 月份。
0. ENV
0.1 基础环境
CentOS 7.6;
OceanBase-ce 3.1.2;
obproxy (OceanBase 3.2.0 1);
0.2 监控组件
OBAgent 1.1.0;
prometheus主程序:prometheus-2.32.1.linux-amd64.tar.gz;
grafana主程序:grafana-8.3.3-1.x86_64.rpm。
注:node_exporter不需要下载,OBAgent自带主机和OceanBase数据库监控组件。
0.3 部署架构
当前采用单机部署:3observer+3proxy+3obagent+prometheus+grafana
CPU:
[admin@ob3 ~]$ cat /proc/cpuinfo | grep process | wc -l24
内存:
[admin@ob3 ~]$ free -htotal used free shared buff/cache availableMem: 53G 41G 4.7G 11M 7.9G 6.7GSwap: 0B 0B 0B
磁盘空间:
[admin@ob3 ~]$ df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/centos-root 99G 9.0G 85G 10% /devtmpfs 27G 0 27G 0% /devtmpfs 27G 0 27G 0% /dev/shmtmpfs 27G 12M 27G 1% /runtmpfs 27G 0 27G 0% /sys/fs/cgroup/dev/sda1 190M 114M 63M 65% /boot/dev/mapper/centos-home 30G 9.4G 19G 34% /home/dev/mapper/centos-data_1 109G 78G 26G 76% /data/1/dev/mapper/vg_data_3-data_3 109G 78G 26G 76% /data/3/dev/mapper/centos-data_log1 128G 60M 123G 1% /data/nfs_server/dev/mapper/vg_data_2-data_2 109G 78G 26G 76% /data/2tmpfs 5.4G 0 5.4G 0% /run/user/0
1. OBAgent安装
1.1 OBAgent简介
1.2 环境依赖
构建OBAgent需要 Go 1.14 版本及以上。
1.3 前提条件
在部署 OBAgent 之前,您需要确认以下信息:
OceanBase 数据库服务已经部署并启动。
OBAgent已经安装。详细信息,请参考安装OBAgent(章节1.4)。
OBAgent的默认端口 8088、8089 未占用。您也可以自定义端口。
1.4 安装OBAgent软件
OBAgent提供使用 OBD 部署和手动部署。要手动部署 OBAgent,您要配置 OBAgent、Prometheus和Prometheus Alertmanager(可选),推荐您使用OBD部署OBAgent。
接下来我们使用 OBD,一起部署 OBAgent 服务。OBAgent 可以跟 OceanBase 集群同时启动,也可以先启动一个 ObceanBase 集群,再启动 OBAgent。我在启动 OBAgent 之前已经有了一个 ObceanBase 集群,因此我单独启动 OBAgent 就可以了。
1) 使用OBD在线安装OBAgent软件
[rootn@ob3 ~]# su - admin[admin@ob3 ~]$ sudo yum install -y yum-utils[admin@ob3 ~]$ sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo[admin@ob3 ~]$ sudo yum -y install obagent[admin@ob3 ~]$ sudo rpm -qa | grep obagent #安装完本身没有rpm[admin@ob3 ~]$
2) 也可RPM方式离线安装OBAgent
OBAgent 提供 RPM 包,您可以去 Release 页面下载 RPM 包,然后使用以下命令安装:
rpm -ivh obagent-1.1.0-1.el7.x86_64.rpm
Release页面:
https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/
1.5 单独部署OBAgent
ObceanBase集群已经运行,因此我单独部署OBAgent。
当前采用单机部署3个OBAgent,模拟3台主机上部署,
1) 创建部署文件
vim obagent.yamlobagent:servers:# 使用单机模拟3台主机,实际环境更换为自己的IP- name: server1# Please don't use hostname, only IP can be supportedip: 127.0.0.1- name: server2ip: 127.0.0.1- name: server3ip: 127.0.0.1global:# 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: rundba# 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: rundba# 以下配置必须与 OceanBase 数据库一致# 抓取数据信息用到的OceanBase数据库用户 root@sys,也可单独创建一个监控用户monitor_user: root# root用户的密码monitor_password: rundba_mon# 更改为自己的集群名称cluster_name: rundba#cluster_id: 1server1:# 单机模拟3台OBAgent部署,故部署路径中添加1/2/3进行区分home_path: /home/admin/obagent/1server_port: 8088pprof_port: 8089sql_port: 2881rpc_port: 2882zone_name: zone1log_path: log/monagent.loglog_size: 30log_expire_day: 7log_file_count: 10server2:home_path: /home/admin/obagent/2server_port: 9088pprof_port: 9089sql_port: 3881rpc_port: 3882zone_name: zone2log_path: log/monagent.loglog_size: 30log_expire_day: 7log_file_count: 10server3:home_path: /home/admin/obagent/3server_port: 10088pprof_port: 10089sql_port: 4881rpc_port: 4882zone_name: zone3log_path: log/monagent.loglog_size: 30log_expire_day: 7log_file_count: 10
如果不是root用户进行监控,需要在sys租户下创建监控用户,如monitor用户:
grant select on oceanbase.* to monitor identified by 'rundba_mon';
查看用户:
select host,user,password from mysql.user;
2) 部署OBAgent
[admin@ob3 ~]$ obd cluster deploy obagent -c obagent.yamlobagent-1.1.0 already installed.+---------------------------------------------------------------------------+| Packages |+------------+---------+---------+------------------------------------------+| Repository | Version | Release | Md5 |+------------+---------+---------+------------------------------------------+| obagent | 1.0.0 | 1.el7 | e45f0daf05a9995843c799014fb59d388d51eae2 |+------------+---------+---------+------------------------------------------+Repository integrity check okParameter check okOpen ssh connection okRemote obagent-1.1.0-e45f0daf05a9995843c799014fb59d388d51eae2 repository install okRemote obagent-1.1.0-e45f0daf05a9995843c799014fb59d388d51eae2 repository lib check okCluster status check okInitializes obagent work home okobagent deployed
3) 查看OBAgent
[admin@ob3 ~]$ obd cluster list+--------------------------------------------------------------+| Cluster List |+---------+----------------------------------+-----------------+| Name | Configuration Path | Status (Cached) |+---------+----------------------------------+-----------------+| rundba | /home/admin/.obd/cluster/rundba | running || obagent | /home/admin/.obd/cluster/obagent | deployed |+---------+----------------------------------+-----------------+
4) 启动OBAgent
[admin@ob3 ~]$ obd cluster start obagentGet local repositories and plugins okOpen ssh connection okCluster param config check okCheck before start obagent okobagent program health check ok+-----------------------------------------------+| obagent |+-----------+-------------+------------+--------+| ip | server_port | pprof_port | status |+-----------+-------------+------------+--------+| 127.0.0.1 | 8088 | 8089 | active || 127.0.0.1 | 9088 | 9089 | active || 127.0.0.1 | 10088 | 10089 | active |+-----------+-------------+------------+--------+obagent running
也可手动启动服务
[admin@ob3 ~]$ cd /home/admin/obagent/1 && nohup ./bin/monagent -c conf/monagent.yaml >> ./log/monagent_stdout.log 2>&1 &
5) 查看OBAgent进程信息
查看OBAgent进程
[admin@ob3 ~]$ ps -ef | grep monagent | grep -v grepadmin 79193 1 60 14:23 pts/0 01:51:59 /home/admin/obagent/1/bin/monagent -c conf/monagent.yamladmin 79236 1 58 14:23 pts/0 01:48:39 /home/admin/obagent/2/bin/monagent -c conf/monagent.yamladmin 79283 1 59 14:23 pts/0 01:50:50 /home/admin/obagent/3/bin/monagent -c conf/monagent.yaml
查看OBAgent进程号
[admin@ob3 ~]$ pidof monagent79283 79236 79193[admin@ob3 ~]$ pgrep monagent791937923679283
6) 停止OBAgent--命令参考
使用obd停止OBAgent
obd cluster stop obagent
手动停止服务
kill -9 `pidof monagent`ORkill -9 `pgrep monagent`
旨在交流,不足之处,还望抛砖。
作者:王坤,微信公众号:rundba,欢迎转载,转载请注明出处。
如需公众号转发,请联系wx: landnow。





