服务名称:管理服务
模块名称:manager-service
管理服务,是Fox-Edge中的内核级服务,它作用是进行 仓库的管理 、服务的管理 、 升级的管理 、 配置的管理 。
它是一个关键性的基础服务,被定义为 内核 级别。
Fox-Edge主要包括仓库的管理、服务的管理、升级的管理、配置的管理
Fox-Edge采用的是 积木式架构 ,也就是说,整个系统就像积木一样,由各种形式的部件搭建而成。Fox-Edge提供了组件仓库,作为可选部件的素材。
在Fox-Edge中包括云端仓库和本地组件两个概念。
云端仓库指的是线上Fox-Cloud所提供的远程仓库,灵狐在公网上提供了公共仓库的服务。 用户可以从云端仓库中,寻找自己需要的各种部件,然后选择进行安装到本地Fox-Edge之中。
其中包含,服务模块、静态解码器、动态解码、动态模板、前端模块,这几种部件,用户可以根据需要进行安装。
本地组件指的是从云端的组件仓库下载各种部件之后,落地到本地Fox-Edge系统中的部件。 用户在安装组件到Fox-Edge本地之后,可以对这些部件直接使用,也可以进行必要的配置和修改。
在安装完成各种部件之后,Fox-Edge会呈现出由这些组件所提供的各种相应功能。
为了方便用户对进程进行管理,针对服务模块,Fox-Edge提供服务管理,来显示运行的服务进程状态,并进行启动、停止、卸载,配置为随机启动的功能。
在安装完成各种部件之后,Fox-Edge就能够进行各种工作参数的配置。
各服务安装完成,并完成了进程的启动后,它们会通告给管理服务,请求生成对应的全局配置项目。
通过为该服务进行全局参数的配置后,重启服务进程,就可以进行生效。
注意:每个服务都有自己的全局参数配置格式,具体如何修改配置,请查阅相关的服务文档。
全局参数配置完毕后,用户就可以在Fox-Edge中,添加基础的 通道配置、设备配置、监控任务 配置,以及其他操作任务、设备模型、周期任务、计算任务等各种配置信息。
Fox-Edge的开发者会不断将新的部件和版本,提交到云端的中央仓库,供Fox-Edge的用户进行安装、升级。 用户可以从组件仓库页面中,进行部件的升级操作。
管理服务,自身也有全局参数的配置,主要包括云端仓库的连接配置,MQTT管理接口的配置,系统进程的监控配置,Fox-Edge进程的启动配置,license的配置。
在全局参数之中,管理服务默认有个 repositoryConfig 的配置
该参数主要是指明,如何连接云端的仓库的配置参数。如果用户使用Fox-Cloud搭建自己的云端仓库,可以将连接信息修改为自己的服务器信息。
管理服务会根据该参数,自动登录Fox-Cloud云端。出厂配置中,默认已经填写了灵狐的Fox-Cloud公网仓库信息
注意:Fox-Cloud系统的获得者,只能在自己或者甲方的内网之中,搭建组件仓库,不可以将其应用在公网之中。
{
"file": "http://repository.fox-tech.cn",
"host": "http://repository.fox-tech.cn/prod-api",
"lockdown": 60,
"password": "****",
"username": "Fox-Edge-Public"
}
配置说明:连接云端仓库的配置信息
{
"file": "http://repository.fox-tech.cn",--------------云端仓库的HTTP文件服务器位置
"host": "http://repository.fox-tech.cn/prod-api",-----云端仓库的API位置
"lockdown": 60,---------------------------------------自动登录云端仓库失败后,重新登录的时间间隔
"password": "****",-----------------------------------登录密码:默认12345678
"username": "Fox-Edge-Public"-------------------------登录账户:默认Fox-Edge-Public
}
在全局参数之中,管理服务默认有个 systemProcessConfig 的配置
该参数主要是指明,如何查询非Fox-Edge的系统进程信息。例如,MySQL服务、Redis缓存、Nacos配置管理服务、NODE-RED服务。
这些服务,并不是Fox-Edge的应用服务,但是用户往往又需要将这些服务纳入Fox-Edge中进行统一管理,这样就对整个边缘端系统的运行状况,了如指掌。
通过在这个配置中,指明各服务的特征,那么Fox-Edge就可以使用Linux的ps -aux|grep xxxx命令,去查找这个进程,并在Fox-Edge的进程管理页面中呈现出来。
{
"node-red": "node-red",
"redis-server": "/bin/redis-server",
"nacos-server": "/nacos-server",
"mysql-server": "/sbin/mysqld",
"maria-server": "/sbin/mariadbd"
}
配置说明:Linux中,PS命令中的进程的特征,例如redis会形成,ps -aux|grep redis-server的命令行
{
"node-red": "node-red",-------------------------------node-red的特征
"redis-server": "/bin/redis-server",--------------------redis的特征
"nacos-server": "/nacos-server",----------------------nacos的特征
"mysql-server": "/sbin/mysqld",----------------------mysql的特征
"maria-server": "/sbin/mariadbd"---------------------mariadb的特征
}
在全局参数之中,管理服务默认有个 mqttConfig 的配置
用户可以通过MQTT协议,对Fox-Edge进行远程管理。该参数主要是指明,如何连接云端的MQTT服务器。
{
"mqtt": {
"host": "192.168.1.21",
"name": "Mica-Mqtt-Client",
"port": 1883,
"enabled": true,
"timeout": 5,
"use-ssl": false,
"version": "mqtt_3_1_1",
"clientId": "",
"password": "****",
"reconnect": true,
"user-name": "mica",
"re-interval": 5000,
"clean-session": true,
"keep-alive-secs": 60,
"buffer-allocator": "heap",
"read-buffer-size": "8KB",
"max-bytes-in-message": "10MB"
},
"topic": {
"request": "/fox/manager/c2e/{edgeId}/forward",
"respond": "/fox/manager/e2c/forward/{edgeId}"
},
"enable": true
}
配置说明:MQTT的连接参数
注意:请提前百度了解MQTT协议的一些基础概念
{
"mqtt": {-------------------------------------------------MQTT服务器的连接信息
"host": "192.168.1.21",------------------------------IP地址
"name": "Mica-Mqtt-Client",--------------------------名称
"port": 1883,----------------------------------------端口号
"enabled": true,
"timeout": 5,
"use-ssl": false,
"version": "mqtt_3_1_1",-----------------------------MQTT版本号
"clientId": "",--------------------------------------服务器分配的clientId
"password": "****",----------------------------------密码
"reconnect": true,
"user-name": "mica",---------------------------------用户
"re-interval": 5000,
"clean-session": true,
"keep-alive-secs": 60,
"buffer-allocator": "heap",
"read-buffer-size": "8KB",
"max-bytes-in-message": "10MB"
},
"topic": {------------------------------------------------TOPIC的参数格式,其中{edgeId}会被自动替换为具体的edgeId
"request": "/fox/manager/c2e/{edgeId}/forward",------发送TOPIC
"respond": "/fox/manager/e2c/forward/{edgeId}"-------订阅TOPIC
},
"enable": true--------------------------------------------是否使用MQTT连接云端
}
在全局参数之中,管理服务默认有个 serviceStartConfig 的配置
这个参数是服务进程的启动配置.
注意:该参数是由管理服务自动进行配置的,不可修改。
{
"services": [
{
"appLoad": true,
"appName": "channel-serialport",
"appPort": 9014,
"appType": "service"
},
{
"appLoad": true,
"appName": "channel-udpsocket-service",
"appPort": 9017,
"appType": "service"
},
{
"appLoad": true,
"appName": "channel-udp-server",
"appPort": 9010,
"appType": "service"
}
]
}
配置说明:进程的启动配置
{
"services": [------------------------------------进程的启动配置
{
"appLoad": true,-----------------------是否随机启动
"appName": "channel-serialport",-------进程的名称
"appPort": 9014,-----------------------进程的服务端口
"appType": "service"-------------------进程的服务级别
},
{
"appLoad": true,
"appName": "channel-udpsocket-service",
"appPort": 9017,
"appType": "service"
},
{
"appLoad": true,
"appName": "channel-udp-server",
"appPort": 9010,
"appType": "service"
}
]
}
在全局参数之中,管理服务默认有个 kernelEnableConfig 的配置
这个参数是不同版本的管理服务,进行版本服务识别的配置信息。通过这个配置项目,会过滤掉不支持的服务列表。
注意:该参数是由管理服务自动进行配置的,不可修改。
{
"kernel": {
"enable": [
{
"appName": "manager-compose",
"appType": "kernel"
}
],
"disable": [
{
"appName": "manager-service",
"appType": "kernel"
},
{
"appName": "gateway-service",
"appType": "kernel"
},
{
"appName": "controller-service",
"appType": "system"
},
{
"appName": "period-service",
"appType": "service"
}
]
}
}
配置说明:使能和去使能的服务
{
"kernel": {
"enable": [---------------------------------------指明当前版本,启用的是呢些服务
{
"appName": "manager-compose",-----------启动的是compose版本的manager
"appType": "kernel"
}
],
"disable": [--------------------------------------指明当前版本,禁止了哪些服务
{
"appName": "manager-service",-----------compose版本的时候,要禁掉local版本的manager
"appType": "kernel"
},
{
"appName": "gateway-service",-----------也禁止掉gateway,manager-compose占用9000端口,跟gateway是冲突的
"appType": "kernel"
},
{
"appName": "controller-service",--------也禁止掉controller,manager-compose已经包含这个模块了
"appType": "system"
},
{
"appName": "period-service",------------也禁止掉period,也是因为manager-compose已经包含该模块了
"appType": "service"
}
]
}
}
在全局参数之中,管理服务默认有个 license 的配置
Fox-Edge根据CPU ID生成为设备生成的license注册信息,用于制造商在销售时对用户进行注册管理。
说明:灵狐在将Fox-Edge开源后,就不再计划使用该功能。下游厂商如果希望使用lisense功能,可以跟灵狐讨论具体的技术方案。
{
"cpuid": "C3060400FFFBEBBF",
"license": "gvd3oFIqC9fc2aY+Tv64ux077ux1/2Fi7ggMrgsG0kT/IJ2Rjy9r3IoDYVe2p3s5qsL72ofOKDXA1ztfGcgdnSK5XBgxJhNHy5xeX/MG1QS/Ed2gxVnVwCe9D29vBW6k/XWDHPGiad6ewpb7k1HXLSLK4n8ZmL+sgxXktnIKueI="
}
配置说明:license的配置
{
"cpuid": "C3060400FFFBEBBF",--------------------CPU的ID,在首页可以看到
"license": "HXLSLK4n8ZmL+sgxXktnIKueI="---------序列号,用户可以跟厂商获得一个license后,才可以进行登录管理
}