license常见问题
1、导入license后租户端页面还是报“没有License”错误
- license从导入到生效最多有60秒的延迟,如果用户是导入完马上使用的,让他静待一会儿
- 检查license是否已导入,通过列表接口查看已导入的license,并查看返回的license的status:1是等待生效、2是已生效、3是已过期、4是已作废、5是无效
curl -i -m 3 -k 'https://localhost:7100/license/list'
- 当且仅当导入请求返回
{"code":0}
时表示导入成功,否则将错误贴给研发,领一张新license,导入成功后不允许重启license-server
- 检查license生效状态,在license-server机器上执行以下命令(私有云的appid为common),当返回中有
"active":true
时表示license已激活
curl -i -m 3 -k 'https://localhost:7100/license/status?product=tsf&appid=[appid]'
- 检查license-server注册地址,在license-server机器上执行
curl 'localhost:8500/v1/health/service/license-server?passing&pretty'
,查看返回的Service.Address
,是否为有效的内网可达的地址,如果不是,将ip a
的结果贴给研发适配,并指导用户在config/license.yml
的配置server.netinterface: [有效网口名]
解决,以网口名eth0
为例:
server:
netinterface: eth0
- 检查
tsf-dispatch
最近的日志是否有抛SSLHandshakeException
异常,有则表示CA证书安装失败。公有云和TCE环境不应当出现该问题,需要研发介入检查。若是独立版环境,需检查所在机器是否有安装tsf-infrastructure
,若有,则将其deploy.log
内容贴给研发检查,若无,则需要用root手动执行安装,安装成功后再重启该机器上所有tsf-oss模块
2、如何手动导入新license
在取得新license后,新license通常长这个样子:
-----BEGIN QCLOUD LICENSE-----
signature: ETGr4PZOAUz/VkUHkS6R7z83QXAC2edxgFvq9HrTFfpmmLb4hQ/XekM8yx+MKa1L6B11Eq5K19KdX/cws4Pe+fe21AZe5tLECfO56Sd672RsB/we9e5cDPcal9WFLsJzzC/0ml2sfvifoz/roPY8H5BHn+Gpl+D5i3EGSQ0li3pOc6du5c8ePwwBM+zncia0qUeY/dNX0EJUl/R5hPwnJiL16b3ic4950xj0qp+MIaDo6lPeTXj0UiEUoi9k28shWbqfqNJBbjHeCDFL0WJ0hngZ9cJ1TDYFL19gzyyMUGphfmm4lEI7yOMrd+s/Cbn7jOKOHvWvL+9Jcr/9HpW3Jg==
version: 0.1
eyJWZXJzaW9uIjoiMC4xIiwicHJvZHVjZXIiOnsib3BlcmF0b3IiOiIifSwiZ3Jh
bnRlZSI6eyJuYW1lIjoieWlxaV96aGlsaWFuIn0sImJpcnRodGltZSI6MTU0Mjk2
NjM2MCwicGVyaW9kIjoiMzBkIiwiYWN0aXZlYmVmb3JlIjoxNTQyOTg4Nzk5LCJw
cm9kdWN0IjpbeyJuYW1lIjoidHNmIiwicmVzb3VyY2UiOlt7Im5hbWUiOiJpbnN0
YW5jZSIsInF1b3RhIjoxMDB9XX1dfQ==
-----END QCLOUD LICENSE-----
从TSF 1.12版本开始在运营端页面上上传license即可,即license-server版本高于0.0.3,版本可通过执行以下命令来观察:
$ ./license-server -version
server version: 0.0.3 # server程序版本号
license version: 0.3 # 其所支持的license文件版本
在TSF**独立版1.12.0以前集成的 license-server,需要在 每台** license-server主机上执行以下命令完成导入,注意要把license content
中的换行替换成\n
,当且仅当返回{"code":0}
时表示导入成功:
curl -i -k -m 3 -X POST "https://localhost:7100/license/upload" -d '{"content":"[license content]"}'
例如:
curl -i -k -m 3 -X POST "https://localhost:7100/license/upload" -d '{"content":"-----BEGIN QCLOUD LICENSE-----\nsignature: o+d4Q42ladm4Cbd+alc6LMgftTx/BzlSnJiDoP9i0TD34DXWqsJ5yCP75+d9siohdjpMrr8G3aTOISPg9HTorM7xtH3YPskjFVHFGIm26X1L8qpYN9mbZ481fGljuBFVCmxKOrQ9AMLgS6oSeyO6L8HbU21YvSQOc5QLggTqLr6DITouvEdJL4AGk2+XZbN1Koj5IxsRDLGiJVAtiGVX6wBR+SfXbCAvqdvE8mwp1tblT6yOtMrJen/ZUP1gINoXi58y5Er30tlXTX47s5f1KP1sJTpNEeL3sFXQ41M5RrJPzcs5JPiXo+5Kb73cYDjCK4G4O4wHnBEyV0lxVWX+ng==\nversion: 0.1\n\neyJWZXJzaW9uIjoiMC4xIiwicHJvZHVjZXIiOnsib3BlcmF0b3IiOiIifSwiZ3Jh\nbnRlZSI6eyJuYW1lIjoiYmxhY2tzdG9uZSJ9LCJiaXJ0aHRpbWUiOjE1NDM4Mzgx\nMDAsInBlcmlvZCI6IjYwZCIsImFjdGl2ZWJlZm9yZSI6MTU0MzkzOTE5OSwicHJv\nZHVjdCI6W3sibmFtZSI6InRzZiIsInJlc291cmNlIjpbeyJuYW1lIjoiaW5zdGFu\nY2UiLCJxdW90YSI6NTB9XX1dfQ==\n-----END QCLOUD LICENSE-----\n"}'
3、license-server启动不起来
如果ps -ef | grep license
的结果里看不到licnse-server
,到安装路径的log目录下查看最近一次启动记录中是否存在CRITICAL的记录,如果CRITICAL记录的message为ip address no found
,表示程序无法自选取注册的服务地址,需要显式在配置文件中指定绑定的网口名,在config/license.yml
的配置server.netinterface: [有效网口名]
解决
4、TSF租户页面提示节点数余量不足
页面上的提醒是前端根据license返回的上限和oss统计的实例数做比较后发现剩余较少或超出时弹出的。可以先查看Consul统计的已注册实例数,再查看许可的实例数上限,即以下命令返回的instance
的quota
,再判断是否需要给用户升级license
curl -i -m 3 -k 'https://[license-server host]:7100/license/status?product=tsf&appid=[appid]'
5、DescribeResourceConfig返回的License结构里的各值都是null
查看tsf-resource
日志,检查是否在请求license-server
时出现了失败
6、license-server升级替换步骤
${dir}为部署目录
- 停止license-server
cd ${dir}/tsf/license/license-server/license-server/bin && ./stop.sh
- 备份license-server
cd ${dir}/tsf/license/license-server/license-server/bin && mv license-server license.back
- 下载新包
cd ${dir}/tsf/license/license-server/license-server/bin && wget https://van-1256974872.cos.ap-guangzhou.myqcloud.com/license-server && chmod +x license-server
- 启动进程
cd ${dir}/tsf/license/license-server/license-server/bin && ./start.sh
- 其余节点重复以上操作