跳到主要内容
版本:3.4.4

Micro-GNSS服务的布署和维护

安装包和许可文件

流媒体服务交付时,将提供一个安装包文件和一个许可文件。

安装包文件为micro-gnss-release-x.x.x.zip(其中x.x.x为版本号)压缩包文件。压缩包内包含以下文件:

文件名说明
config/application.yml配置文件1
config/config.json配置文件2
micro-gnss.serviceMicro-GNSS服务的systemd单元文件
micro-gnss-x.x.x.jarMicro-GNSS服务Jar包(其中x.x.x为版本号)
pwd-md5-1.0.0.jarAPI用户密码摘要计算工具程序
start.sh程序启动脚本文件

许可文件为micro-gnss-cert.json,此文件另行交付。

程序的安装

本文假设:

  • 操作系统为Ubuntu Server 20.04,并已经完成一般性操作系统环境的准备
  • 域名为:n11.gratour.info,按下文配置时,应改为实际的域名
  • 操作系统用户名为:streaming,按下文配置时,应改为实际的用户名
  • Java使用JDK版本,安装在/opt/jdk-11
  • Micro-GNSS服务依赖于Streaming服务,在安装启动Micro-GNSS之前,请确保已经安装并启动了Streaming服务(Streaming服务可安装在本机,也可安装在其它机器)

程序端口规划

Micro-GNSS服务需要在以下端口监听(均为TCP协议),部分只在本机内内部使用,部分需要开放内网访问,部分需要开放外网访问。 对于需要外网访问的端口,本文假设外网端口和内网端口一致。

默认端口号本机内部监听内网访问需求外网访问需求用途
1974Y本地数据库端口(内部使用)
1975Y终端JT/T 808协议接入端口
1976Y终端ADAS附件接收端口
1977YYMicro-GNSS 对外API接口端口(https)
1978YMicro-GNSS 网关对接API接口端口(https)
1979YFTP信令端口
1980-1999YFTP数据端口(passive模式),应设置20个端口号或以上,内外网端口号必须一致

目录规划

  • /opt/strm-fs目录:用于Streaming服务和Micro-GNSS服务存储服务端音视频转储文件、附件等文件
  • /opt/micro-gnss目录:用于安装Micro-GNSS服务
  • /opt/certs目录:用于存放域名的SSL证书文件,此目录应可为服务执行用户(本文假设为streaming)读取

创建这两个目录并将目录属主改为规划的运行用户(本文假设为streaming):

sudo mkdir /opt/micro-gnss
sudo chown streaming:streaming /opt/micro-gnss
sudo mkdir /opt/strm-fs
sudo chown streaming:streaming /opt/strm-fs

以上,如果Streaming服务也安装在本机,并且/opt/strm-fs目录已经创建,则上面的命令中的创建/opt/strm-fs目录的步骤略过。

安装 Micro-GNSS 服务程序

  1. 解压压缩包文件到/opt/micro-gnss目录:
unzip micro-gnss-release-x.x.x.zip -d /opt/micro-gnss
  1. 修改/opt/micro-gnss/start.sh文件中的JAVA_HOME变量的赋值(下图第一个黄色荧光部分),使之符合实际Java的安装路径(此处安装的是JDK版),并将最后一行的命令行的jar文件路径改为实际的文件路径(下图第二个黄色荧光部分):

micro-gnss-start-sh-file-content.png

  1. /opt/micro-gnss/start.sh添加可执行属性:
chmod +x start.sh
  1. 修改/opt/micro-gnss/micro-gnss.service文件中的WorkingDirectory属性,使之符合Micro-GNSS服务实际的安装目录; 修改User属性为执行服务的用户的用户名;修改ExecStart属性中的黄色荧光部分,改为start.sh文件的实际路径:

micro-gnss-service-file-content.png

  1. /opt/strm/micro-gnss.service复制到/etc/systemd/system目录下,并激活(enable)服务(但先不要启动,因为后面还有一些配置要完成):
sudo cp /opt/micro-gnss/micro-gnss.service /etc/systemd/system/
sudo systemctl enable micro-gnss
  1. 将域名的JKS格式的SSL证书文件复制到某个streaming用户可读取的目录,这里假设为/opt/certs目录
  2. 按实际情况和/或需要修改/opt/micro-gnss/config/application.yml文件:

中的server.port属性的值为Micro-GNSS服务API接口端口的端口号; 修改server.ssl.key-store属性的值设为域名SSL证书文件的文件路径; 修改server.ssl.key-store-password属性的值为证书文件的密码; 修改server.ssl.key-alias属性的值为密钥别名。

文件的初始内容大致如下:

micro-gnss-application-yml-file-cotent.png

文件中的黄色荧光标注的属性说明如下:

属性名数据类型修改说明
gnss.instance-id字符串实例ID;可分配任意要可见ASCII字符;如果整个系统中(即使不在同一台机器上)有多个Micro-GNSS服务实例,则应分配不同的ID给每个实例
gnss.data-path字符串本地数据存储文件目录;一般为Micro-GNSS服务的安装目录下的data子目录;必须为服务执行用户可读写的目录;如果目录不存在,则服务在启动时将创建该目录
server.port整数Micro-GNSS服务API接口的端口号;此端口需要外网访问,如不开放外网,则只能内网访问
server.private-port整数Micro-GNSS服务网关对接模式下的API接口的端口号,此端口不应开放外网访问
server.ssl.key-store字符串域名SSL证书文件的文件路径
server.ssl.key-store-password字符串域名SSL证书文件的密码
server.ssl.key-alias字符串域名SSL证书文件的密钥别名
  1. 将许可文件micro-gnss-cert.json文件复制到/opt/micro-gnss/config目录下(不要修改此文件的内容)
  2. 预先设计或随机生成一个长度大于等于8的API访问用户的密码(此密码用于登录接口),然后执行/opt/micro-gnss/pwd-md5-1.0.0.jar工具程序以生成这个密码的摘要:
/opt/jdk-11/bin/java -jar /opt/micro-gnss/pwd-md5-1.0.0.jar

命令发出后,将出提示:

Please input the password: 

此时输入此前设计好或随机生成的API密码,注意,输入密码时,程序不回显。回车后程序将输出所输入密码的随机填充数据(pwdSeed)及其摘要(pwdMd5),如下图:

micro-gnss-pwd-md5-result.png

记下pwdSeedpwdMd5这两项数据,后面设置config.json文件时需要用到。

  1. 按实际情况和/或需要修改/opt/micro-gnss/config/config.json文件:

文件的初始内容大致如下:

micro-gnss-config-json-file-content.png

文件中的各属性说明如下:

属性名数据类型修改说明
domain字符串服务器的域名
ip字符串服务器的IP,必填
fs.rootPath字符串服务转储文件根目录
fs.avUploadCleanup.enabled布尔值是否执行终端上传的录像文件清理;一般应设为true
fs.avUploadCleanup.cron字符串执行终端上传的录像文件自动清理 Spring CRON 调度时间表达式,服务将依照此表达式定义的时间执行周期性的清理工作
fs.avUploadCleanup.keepDays整数执行终端上传的录像文件自动清理时,保留的最近上传文件的天数;上传时间在此天数内的文件不会被清理掉;应大于0
db.username字符串本地数据库用户名,默认为sa不要修改
db.pwd字符串本地数据库密码,默认为空字符串,不要修改
db.users[*].userName字符串API访问用户1的用户名
db.users[*].pwdSeed字符串API访问用户1的密码填充数据,填入此前pwd-md5-1.0.0.jar程序产生的pwdSeed数据即可
db.users[*].pwdMd5字符串API访问用户1的密码摘要数据,填入此前pwd-md5-1.0.0.jar程序产生的pwdMd5数据即可
db.port整数本地数据库的服务监听端口,内部使用,只要不与操作系统中的其它服务的端口号冲突即可
jt808.endPoints[*].port字符串终端JT/T 808协议接入端口;此端口要求外网访问
api.enabledTermCmds字符串数组允许经由POST /term_cmd接口下发的指令的消息号(各指令的消息号请参阅JT/T 808标准)字符串组成的数组;可设为空数据
spi.urlPrefix字符串网关对接模式下的企业应用端的API地址,设置为空时,spi.extTokenValidate, spi.gatewayExternalized, spi.onlineTermsQrySupport等设置无效
spi.extTokenValidate布尔值是否启用访问令牌的外部验证,参见GET /token接口
spi.gatewayExternalized布尔值是否启用网关对接模式
spi.onlineTermsQrySupport布尔值网关对接模式中,企业应用端是否提供GET /online_terms接口
strm[*].instanceId字符串流媒体服务的实例ID,本设置中唯一即可;用于工具程序https://wx.gratour.info:3001中列示已注册媒体服务时,作为区分多个流媒体服务的标识
strm[*].disabled布尔值是否禁用此流媒体服务注册项,禁用后,该注册项不起作用。需要至少一个启用的流媒体服务注册项。注意:要连接到媒体服务的私有服务端口,否则,媒体服务调用将返回-11: 拒绝访问错误
strm[*].apiUrl字符串此流媒体服务的API地址
strm[*].username字符串登录到此流媒体服务的用户名,此用户名应为/opt/strm/config/trusted-clients.json文件中的其中一个用户的用户名(username)
strm[*].pasword字符串登录到此流媒体服务的密码,此密码应为/opt/strm/config/trusted-clients.json文件中的其中一个用户的密码(password)
almAtt.port整数Micro-GNSS内置的主动安全附件接收服务的监听端口号;此端口要求外网访问
almAtt.audoUpload布尔值是否启用主动安全附件自动提取功能,禁用时,需要调用接口才启动附件提取任务
almAtt.lvl2AlmOnly布尔值是否只提取二级报警产生的主动安全附件;仅当almAtt.audoUpload设为true时有效
almAtt.filterAlm布尔值是否对主动安全报警进行报警类型过滤。当设为true时,服务仅提取almAtt.acceptAlmTypes设置的报警类型产生的附件;本设置项仅当almAtt.autoUpload设为true时有效
almAtt.acceptAlmTypes字符串数组主动安全报警类型代码列表,各类型代码参见ADAS报警类型编码;本设置项仅当almAtt.autoUploadalmAtt.lvl2AlmOnly均为true时有效
almAtt.cleanup.enabled布尔值是否执行主动安全附件文件自动清理;一般应设为true
almAtt.cleanup.cron字符串主动安全附件文件自动清理 Spring CRON 调度时间表达式;服务将依照此表达式定义的时间执行周期性的主动安全附件文件清理工作
almAtt.cleanup.keepDays整数执行主动安全附件文件自动清理时,保留的最近转储文件的天数;提取完成时间在此天数内的文件不会被清理掉;应大于0
ftp.port整数Micro-GNSS内置的FTP服务的信令端口;此端口要求外网访问
ftp.passivePorts字符串FTP服务的数据端口(passive模式),格式支持范围,如:1980-1999,也可单独指定,如:1980,1982,3000-3017;应设置20个端口或以上,内外网端口号必须一致
fpt.users[*].username字符串FTP用户名,不要修改此项
ftp.users[*].upload布尔值是否允许该用户上传,不要修改此项
ftp.users[*].download布尔值是否允许该用户下载,不要修改此项
1: API访问用户系指通过调用 [`POST /login`](../micro-gnss-api/http-api/login) 接口登录来获得后续操作令牌的用户。API调用者也可以直接使用企业系统的令牌,而不经由`POST /login`接口登录, 此时需要启用`spi.extTokenValidate`选项(见上文)。
  1. 根据前述端口需求,设置好防火墙和端口映射

  2. 启动服务

sudo systemctl start micro-gnss

日常维护

服务的启动、停止、重启

  1. 启动Streaming服务可执行:
sudo systemctl start micro-gnss
  1. 停止Streaming服务可执行:
sudo systemctl stop micro-gnss
  1. 重启Streaming服务可执行:
sudo systemctl restart micro-gnss

SSL证书更换

  1. 将jks的格式证书y上传到服务器的某个目录
  2. 修改 config/application.yml 文件中的 server.ssl.key-store,使之指向新的证书文件,修改server.ssl.key-store-password, 改为新的证书密码
  3. 重启服务

日志文件

日志文件为服务安装目录(本文为opt/micro-gnss)下的log子目录下的gnss.log文件。