EM-LINK部署文档
本文主要介绍EM-LINK的硬件配置要求,及部署过程。
如果您在使用过程中需要帮助,或对文档内容有任何疑问,可以提交工单,技术专员会为您提供技术支持和业务协助。
1 环境要求
关键指标 | 要求 | 推荐值 | 备注 |
---|---|---|---|
操作系统 | Linux | CentOS7、Ubuntu16以上 | 可以使用百度云服务器 |
CPU | ≥4核 | 4核 | intel i7/i9等市场主流CPU均可 |
内存 | ≥8GB | 32(G) | |
硬盘 | >100GB | 500(G) | 基于所需要存储的图片数量自行计算,一般一张事件图大小为200kb-300kb |
2 部署包获取
您可以单击这里,将部署包下载到服务器上。
3 服务部署
3.1 解压部署包
执行tar xvf <部署包文件名>
,解压完成后将得到original目录。
3.2 执行安装部署脚本
先执行cd original/package/Install
切换到脚本所在的目录。在该目录中,install.py即为安装脚本的入口,需要用python2的版本执行。该脚本的使用方法如下:
python install.py inall
:安装部署包中的所有模块python install.py li
:查看当前服务器已经安装的模块python install.py se
:查看部署包包含的模块python install.py in <module>
:单独安装指定模块python install.py rm <module>
:单独卸载指定模块
在这里我们执行python install.py inall
即可。
3.3 跳过环境检查
在执行python install.py inall
后,可能会遇到如下图所示的“Environment checking failed”问题。这是因为安装服务在尝试部署前对机器环境做了一些基本检查,比如硬盘大小、内存大小、cpu型号等,以判断机器是否符合推荐配置。不过该检查可能存在误判,如果您确认自己服务器配置没太大问题,可以通过输入continue+敲击回车跳过该检查。

3.4 验证服务是否部署成功
打开浏览器,访问http://EM-LINK服务器ip:8000。如果访问成功,即已完成服务部署。
部署成功后,可以看到如下容器:

- easymonitor-openresty-1:反向代理服务,配置了ssl证书(证书生成方法见3.6),会与EM-BOX进行双向认证确保安全性;
- easymonitor-link-ui-1:界面服务,可通过http://EM-LINK服务器ip:8000访问
- easymonitor-link-server-1:核心服务,为ui服务提供接口,也为EM-BOX提供接口(通过easymonitor-openresty-1代理转发)。如果您需要进行二次开发,也是调用该服务的接口;
- - easymonitor-message:基于mqtt的消息服务,用于在emlink和embox之间发布消息;可通过http://服务器ip:8085访问其界面服务,默认用户名/密码:admin/public
- easymonitor-storage-1:基于minio对象存储服务,图片、技能安装包等资源会存储在这里;可通过http://EM-LINK服务器ip:9000访问其界面服务,默认用户名/密码:admin/admin123456
- easymonitor-redis-1:redis服务
如果想重启所有服务(或者机器重启后恢复所有服务),可以执行脚本/home/baidu/work/easymonitor-devops/scripts/restart-emlink.sh
3.5 修改embox配置
- 在EM-BOX的系统设置-模式设置中,选择“边云协同模式”,并填写管理平台URL。URL为https://EM-LINK服务器ip:8443。
关于管理平台URL的补充说明:
此处URL也可以为https://EM-LINK服务器ip:8443或http://EM-LINK服务器ip:8001,前者实际是easymonitor-openresty的访问地址,后者实际是easymonitor-link-server的访问地址,他们的区别在于安全性(easymonitor-openresty基于ssl证书做了双向认证)。因此,从安全性角度考虑,建议在实际生产部署时使用https://EM-LINK服务器ip:8443;而由于缺少认证机制,建议不要对外网暴露easymonitor-link-server的8001端口。
- 如果您在EM-BOX上已经配置了人脸库,建议先将EM-BOX上的人脸库删除,切换到边云模式后,再从EM-LINK上统一下发人脸信息。
3.6 证书生成及部署
为了保证EM-BOX及EM-LINK通信的安全性,我们基于ssl做了双向认证。
目前使用的是百度默认提供的证书,如果您只用于测试,可以不用替换该证书。EM-BOX的证书和EM-LINK的证书都在/etc/certs目录下。
如果是生产部署使用,建议生成自己的证书进行替换。可以用以下脚本生成(请先准备好openssl及java运行环境):
#!/bin/bash
openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -sha256 -days 36500 -out ca.pem -subj "/C=CN/ST=Beijing/L=Beijing/O=Baidu/OU=ACG/CN=baidu.com"
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=Baidu/OU=ACG/CN=emlink.baidu.com"
openssl x509 -req -in server.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out server.pem -days 36500 -sha256 -extensions v3_req
openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=Baidu/OU=ACG/CN=embox.baidu.com"
#openssl x509 -req -days 36500 -in client.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out client.pem
openssl x509 -req -in client.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out client.pem -days 36500 -sha256 -extensions v3_req
openssl pkcs12 -export -in client.pem -inkey client.key -out client.p12 -password pass:client
keytool -deststorepass client -srcstorepass client -importkeystore -srckeystore client.p12 -srcstoretype PKCS12 -destkeystore client.jks -deststoretype JKS
keytool -import -keystore truststore.jks -file ca.pem -storepass client -noprompt
rm -f ca.srl client.csr client.p12 server.csr client.key client.pem
执行成功后,会生成以下几个文件:
- ca.key:私钥key文件,请妥善保存,不要泄露
- ca.pem:CA证书文件
- client.jks:EM-BOX使用的客户端keystore文件
- truststore.jks:EM-BOX使用的客户端truststore文件
- server.key:EM-LINK使用的服务端key文件
- server.pem:EM-LINK使用的服务端证书文件
请将其中的ca.key自己保存好;ca.pem、client.jks、truststore.jks复制到EM-BOX中的/etc/certs目录覆盖旧文件;ca.pem、server.key、server.pem复制到EM-LINK服务器的/etc/certs目录覆盖旧文件。完成上述步骤后,重启EM-BOX和EM-LINK服务,即完成了证书替换。
3.7 部署架构示意图
