KunlunDB在0.9版本之后,增加了运维监控平台(Xpane,通过集群管理的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':'somethingdone'}
正在工作:
{'result':'ongoing','info':'somethingongoing'}
失败返回:
{'result':'failed','info':'somethingerror'}
创建机器,异步,需要查询,不阻塞其他操作。
返回result=done/failed,info:createmachinesucceed(或者错误信息)。操作表记录:info:createmachinesucceed(或者错误信息)。路径为根路径,必须存在,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:updatemachinesucceed(或者错误信息)。操作表记录:info:updatemachinesucceed(或者错误信息)。路径为根路径,必须存在,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:deletemachinesucceed(或者错误信息)。操作表记录:info:deletemachinesucceed(或者错误信息)。
{
'ver':'0.1',
'job_id':'uuid999',
'job_type':'delete_machine',
'hostaddr':'127.0.0.1',
'user_name':'zhangsan'
}
创建集群,异步,需要查询。
返回result=done时,info:集群名称。操作表记录:info:createclustersucceed(或者错误信息)。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:deleteclustersucceed(或者错误信息)。
{
'ver':'0.1',
'job_id':'uuid999',
'job_type':'delete_cluster',
'cluster_name':'cluster001',
'user_name':'zhangsan'
}
在现有集群上,新增分片,可以增加多个。
返回result=done时,info:shard2;shard操作表记录:info:addshardssucceed(或者错误信息)。分片名称排列,分隔符改为分号,因为之前创建机器的路径也是分号,统一了比较好。
{
'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:deleteshardsucceed(或者错误信息)。
{
'ver':'0.1',
'job_id':'uuid999',
'job_type':'delete_shard',
'cluster_name':'cluster001',
'shard_name':'shard1',
'user_name':'zhangsan'
}
在现有集群上,新增计算节点,可以增加多个。
返回result=done时,info:comp2;comp操作表记录:info:addcompssucceed(或者错误信息)。
{
'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:deleteshardsucceed(或者错误信息)。
{
'ver':'0.1',
'job_id':'uuid999',
'job_type':'delete_comp',
'cluster_name':'cluster001',
'comp_name':'comp1',
'user_name':'zhangsan'
}
0.为集群所有分片增加node,异步,需要查询。
带有shard_name字段,只增加该分片,否则所有分片都增加。返回result=done时,info:ip:port;ip:port,分隔符分号。操作表记录:info:addnodessucceed(或者错误信息)。该操作只能是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:deletenodesucceed(或者错误信息)。该操作只能是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:backupclustersucceed(或者错误信息)。
{
'ver':'0.1',
'job_id':'uuid999',
'job_type':'backup_cluster',
'backup_cluster_name':'cluster001',
'user_name':'zhangsan'
}
恢复集群,异步,需要查询,该命令关闭,不给客户执行。
返回result=done时,info:恢复集群名称。操作表记录:info:restoreclustersucceed(或者错误信息)。
{
'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:restorenewclustersucceed(或者错误信息)。
{
'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'
}
0.获取实例变量,同步返回。
{
'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':'120.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'
}
{
'ver':'0.1',
'job_id':'uuid999',
'job_type':'postgres_exporter',
'ip':'127.0.0.1',
'port':'57030',
'user_name':'zhangsan'
}
{
'ver':'0.1',
'job_id':'uuid999',
'job_type':'mysqld_exporter',
'ip':'127.0.0.1',
'port':'57330',
'user_name':'zhangsan'
}
KunlunDB项目已开源
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点