KunlunDB在0.9版本之后,减少了运维监控平台(Xpanel), 通过集群治理(Cluster_mgr)的HTTP命令接口,能够实现对整个集群环境进行治理和监控。
以下是具体的命令接口介绍:
获取cluster工作状态,POST接口:
curl -d "{\"job_type\":\"get_status\",\"job_id\":\"uuid999\"}" http://127.0.0.1:57000
因为创立集群,和复原一个新集群,会生成新的集群名称,通过get_status这个命令获取状态时,如果返回result为succeed,那info就是新集群的名称。
命令接管:
{"result":"accept"}
胜利返回:
{"result":"done","info":"something done"}
正在工作:
{"result":"ongoing","info":"something ongoing"}
失败返回:
{"result":"failed","info":"something error"}
- 创立机器, 异步,须要查问,不阻塞其余操作。
- 返回result=done/failed,info:create machine succeed(或者错误信息)。
- 操作表记录:info:create machine succeed(或者错误信息)。
门路为根门路,必须存在,total_mem单位是Mbyte。
{"ver":"0.1","job_id":"uuid999","job_type":"create_machine","hostaddr":"127.0.0.1","rack_id":"1","datadir":"/home/kunlun;/nvme2","logdir":"/home/kunlun;/nvme3","wal_log_dir":"/home/kunlun","comp_datadir":"/nvme2","total_mem":"1024","total_cpu_cores":"8","user_name":"zhangsan"}
- 更新机器, 异步,须要查问,不阻塞其余操作。
- 返回result=done/failed时, info:update machine succeed(或者错误信息)。
- 操作表记录:info:update machine succeed(或者错误信息)。
- 门路为根门路,必须存在,total_mem单位是Mbyte。
{"ver":"0.1","job_id":"uuid999","job_type":"update_machine","hostaddr":"127.0.0.1","rack_id":"1","datadir":"/home/kunlun;/nvme2","logdir":"/home/kunlun;/nvme3","wal_log_dir":"/home/kunlun","comp_datadir":"/nvme2","total_mem":"4096","total_cpu_cores":"8","user_name":"zhangsan"}
- 删除机器, 异步,须要查问,不阻塞其余操作。
- 返回result=done/failed时, info:delete machine succeed(或者错误信息)。
- 操作表记录:info:delete machine succeed(或者错误信息)。
{"ver":"0.1","job_id":"uuid999","job_type":"delete_machine","hostaddr":"127.0.0.1","user_name":"zhangsan"}
- 创立集群, 异步,须要查问。
- 返回result=done时, info:集群名称。
- 操作表记录:info:create cluster succeed(或者错误信息)。
- max_storage_size单位是G, innodb_size单位是G。
- innodb_size按要求先默认1G吧,范畴1-16G。
- user_name为网页端应用,保留到操作记录外面。
- machine为指定装置机器,以machine0开始。
{"ver":"0.1","job_id":"uuid999","job_type":"create_cluster","ha_mode":"mgr","shards":"2","nodes":"1","comps":"1","max_storage_size":"20","max_connections":"6","cpu_cores":"8","innodb_size":"1","user_name":"zhangsan","machinelist":[{"hostaddr":"127.0.0.2"},{"hostaddr":"127.0.0.3"}]}
- 删除集群, 异步,须要查问。
- 返回result=done时, info:集群名称。
- 操作表记录:info:delete cluster succeed(或者错误信息)。
{"ver":"0.1","job_id":"uuid999","job_type":"delete_cluster","cluster_name":"cluster001","user_name":"zhangsan"}
- 在现有集群上,新增分片,能够减少多个。
- 返回result=done时, info:shard2;shard3。
- 操作表记录:info:add shards succeed(或者错误信息)。
- 分片名称排列,分隔符改为分号,因为之前创立机器的门路也是分号,对立了比拟好。
{"ver":"0.1","job_id":"uuid999","job_type":"add_shards","cluster_name":"cluster001","shards":"2","user_name":"zhangsan","machinelist":[{"hostaddr":"127.0.0.2"},{"hostaddr":"127.0.0.3"}]}
- 在现有集群上,删除分片,只能一个一个删
- 返回result=done时, info:删除分片名。
- 操作表记录:info:delete shard succeed(或者错误信息)。
{"ver":"0.1","job_id":"uuid999","job_type":"delete_shard","cluster_name":"cluster001","shard_name":"shard1","user_name":"zhangsan"}
- 在现有集群上,新增计算节点,能够减少多个。
- 返回result=done时, info:comp2;comp3。
- 操作表记录:info:add comps succeed(或者错误信息)。
{"ver":"0.1","job_id":"uuid999","job_type":"add_comps","cluster_name":"cluster001","comps":"2","user_name":"zhangsan","machinelist":[{"hostaddr":"127.0.0.2"},{"hostaddr":"127.0.0.3"}]}
- 在现有集群上,删除计算节点,只能一个一个删。
- 返回result=done时, info:删除计算节点名。
- 操作表记录:info:delete shard succeed(或者错误信息)。
{"ver":"0.1","job_id":"uuid999","job_type":"delete_comp","cluster_name":"cluster001","comp_name":"comp1","user_name":"zhangsan"}
- 为集群所有分片减少node, 异步,须要查问。
- 带有shard_name字段,只减少该分片,否则所有分片都减少。
- 返回result=done时, info:ip:port;ip:port,分隔符分号。
- 操作表记录:info:add nodes succeed(或者错误信息)。
- 该操作只能是MGR模式,先备份分片,创立出新NODE, 把备份复原到新NODE, 将新NODE退出分片。
{"ver":"0.1","job_id":"uuid999","job_type":"add_nodes","cluster_name":"cluster001","shard_name":"shard1","nodes":"2","user_name":"zhangsan","machinelist":[{"hostaddr":"127.0.0.2"},{"hostaddr":"127.0.0.3"}]}
- 某个分片删除node, 异步,须要查问。
- 返回result=done时, info:ip:port,分隔符分号。
- 操作表记录:info:delete node succeed(或者错误信息)。
- 该操作只能是MGR模式,先备份分片,创立出新NODE, 把备份复原到新NODE, 将新NODE退出分片。
{"ver":"0.1","job_id":"uuid999","job_type":"delete_node","cluster_name":"cluster001","shard_name":"shard1","ip":"127.0.0.1","port":"57338","user_name":"zhangsan"}
- 备份集群, 异步,须要查问。
- 返回result=done时, info:备份的工夫。
- 操作表记录:info:backup cluster succeed(或者错误信息)。
{"ver":"0.1","job_id":"uuid999","job_type":"backup_cluster","backup_cluster_name":"cluster001","user_name":"zhangsan"}
- 复原集群, 异步,须要查问,该命令敞开,不给客户执行。
- 返回result=done时, info:复原集群名称。
- 操作表记录:info:restore cluster succeed(或者错误信息)。
{"ver":"0.1","job_id":"uuid999","job_type":"restore_cluster","timestamp":"2021-12-20 19:22:20","backup_cluster_name":"cluster003","restore_cluster_name":"cluster004","user_name":"zhangsan"}
- 复原出新集群, 异步,须要查问
- 返回result=done时, info:新集群名称。
- 操作表记录:info:restore new cluster succeed(或者错误信息)。
{"ver":"0.1","job_id":"uuid999","job_type":"restore_new_cluster","timestamp":"2021-12-20 19:22:20","backup_cluster_name":"cluster003","user_name":"zhangsan","machinelist":[{"hostaddr":"127.0.0.2"},{"hostaddr":"127.0.0.3"}]}
获取元数据MGR模式,同步返回。
{"ver":"0.1","job_id":"uuid999","job_type":"get_meta_mode"}
获取元数据节点列表,同步返回。
{"ver":"0.1","job_id":"uuid999","job_type":"get_meta"}
获取所有集群列表,同步返回。
{"ver":"0.1","job_id":"uuid999","job_type":"get_cluster"}
获取集群存储节点列表,同步返回。
{"ver":"0.1","job_id":"uuid999","job_type":"get_storage","cluster_name":"cluster003"}
获取集群计算节点列表,同步返回。
{"ver":"0.1","job_id":"uuid999","job_type":"get_computer","cluster_name":"cluster003"}
获取实例变量,同步返回。
{"ver":"0.1","job_id":"uuid999","job_type":"get_variable","variable":"innodb_buffer_pool_size","ip":"127.0.0.1","port":"57338"}
- 设置实例变量,同步返回。
优先整型value_int, 找不到再找字符串value_str
{"ver":"0.1","job_id":"uuid999","job_type":"set_variable","variable":"innodb_buffer_pool_size","value_int":"134217728","value_str":"134217728","ip":"127.0.0.1","port":"57338"}
- 管制实例,异步,须要查问。
包含进行(stop)/启动(start)/重启(restart)三个操作。
{"ver":"0.1","job_id":"uuid999","job_type":"control_instance","control":"stop","ip":"127.0.0.1","port":"57338","user_name":"zhangsan"}
- 更新prometheus数据,异步,须要查问。
机器IP,从元数据表读取,PORT从配置文件读取。
{"ver":"0.1","job_id":"uuid999","job_type":"update_prometheus","user_name":"zhangsan"}
prometheus连贯到PostgreSQL。
{"ver":"0.1","job_id":"uuid999","job_type":"postgres_exporter","ip":"127.0.0.1","port":"57030","user_name":"zhangsan"}
prometheus连贯到MySQL。
{"ver":"0.1","job_id":"uuid999","job_type":"mysqld_exporter","ip":"127.0.0.1","port":"57330","user_name":"zhangsan"}
KunlunDB我的项目已开源
【GitHub:】
https://github.com/zettadb
【Gitee:】
https://gitee.com/zettadb
END