部署文档
此文档以 CentOS 为例子。其他 Linux 可由类似命令替代。以下所有行为都需要具有 sudo 权限。
0. 优化clickhouse性能
此行为是为了优化clickhouse性能,如不使用我方clickhouse,则可以忽略
服务器底层概念—句柄
file-max 是 Linux 操作系统内核参数之一,用于控制系统能够同时打开的文件句柄(文件描述符)的最大数量。
每个打开的文件或套接字都需要一个文件句柄,因此 file-max 决定了系统能够同时处理的文件和套接字的数量上限。
查看服务器句柄
cat /proc/sys/fs/file-max
我们推荐服务器句柄至少在30万以上,不足请按下方命令进行调整
修改方式
vi /etc/sysctl.conf
fs.file-max=15526510 (这个数字按服务器情况自行调整)
sudo sysctl -p
服务器底层概念—云盘的IOPS
IOPS(Input/Output Operations Per Second)是衡量固态存储设备性能的一种指标。
它表示设备在一秒钟内可以执行的输入/输出操作数量。在固态硬盘(SSD)等设备中,IOPS通常用来衡量其读取和写入数据的速度。
较高的IOPS值意味着设备能够更快地处理数据,提供更高的性能。
服务器的IOPS至少需要1万以上,IOPS不足会导致下面的情况:
1、性能下降: IOPS不足可能导致系统响应时间延迟增加,应用程序的性能下降。这可能表现为应用程序响应变慢、页面加载时间延长等。
2、服务中断: 在极端情况下,IOPS不足可能导致服务中断或系统崩溃,从而影响业务连续性。
3、资源争用: 多个应用程序或用户共享同一存储设备时,IOPS不足可能会导致资源争用,使得某些任务无法及时完成。
4、数据丢失或损坏: 在高负载情况下,IOPS不足可能会导致数据丢失或损坏,特别是在写入操作频繁的情况下。
5、延迟增加: 磁盘I/O操作的延迟增加可能导致系统整体的响应时间增加,影响用户体验。
1. 安装系统必要软件
Docker安装(linux)
在线安装
见:
https://docs.docker.com/engine/install/centos/
离线安装
- 把我们提供的 docker 压缩包上传到服务器
- unzip 解压我们提供的 docker-install.zip
- 进入 docker-install/devel 文件夹:yum install *.rpm
- 进入 docker-install/additional 文件夹:yum install *.rpm
- 进入 docker-install/docker 文件夹:yum install *.rpm
- systemctl start docker 启动 docker
- systemctl enable docker 设置 docker 服务器启动时自启动
Docker 安装完成后的 check
- 执行 sudo docker ps 命令,如果显示帮助信息,则证明安装完成并已经启动。
- 执行 sudo docker compose 命令,如果显示帮助信息,则证明 docker 的 compose 插件也顺利安装完成。
- 执行 sudo systemctl enable docker。让系统重启后也能自动运行 docker。
Docker安装(windows)
1、确定电脑开了支持虚拟化
https://zhuanlan.zhihu.com/p/394990397
2、安装docker
https://docs.docker.com/desktop/install/windows-install/
git(可选)
yum install git
时区确认
https://linuxize.com/post/how-to-set-or-change-timezone-on-centos-7/
timedatectl
确认本机的时区
timedatectl list-timezones | grep Shanghai
查找上海的时区,结果为Asia/Shanghai
sudo timedatectl set-timezone Asia/Shanghai
设置时区为上海
timedatectl
再次确认本机时区
私有化部署--白名单开放
若需要对接办公系统、启动语音服务,需要开放下面域名白名单:
企业微信: qyapi.weixin.qq.com
飞书: open.feishu.cn
语音服务要开两个: http://nls-meta.cn-shanghai.aliyuncs.com nls-gateway.cn-shanghai.aliyuncs.com
2. 安装系统
将 yiask_vxxx.tar 文件传入服务器。然后执行:
sudo docker load < yiask_vxx.tar
安装完成。
注:如果客户这边是完全的离线环境,还需要安装 mongodb 和 clickhouse 的 image。方法和安装 yiask 一样,将 mongodb 和 clickhouse 的 docker image 导入到服务器 docker 内。
3. 下载项目的docker-compose文件(我方提供)
-
创建/yiask/项目名/ 目录,这就是项目根目录 项目名自己定义,和docker-compose文件中的项目名保持一致
-
将我们提供的clickhouse_users.xml放入
/yiask/database/mount/文件夹中
4. 运行项目
在项目的根目录,执行:
sudo docker compose up -d
可运行sudo docker ps来检查是否运行成功。
执行完此步骤就可以通过ip:3052访问系统网页端了。
✨至此新项目部署完毕,新项目部署忽略下方操作
项目迁移操作执行步骤⬇️
5. 同步实施内容
在每次实施文件夹的 schemas 和 measurement 和线上不一致时,可以运行:
sudo docker exec yiask npm run project-sync --project=项目名
上述命令默认会是dry模式。dry模式指的是不会真的同步变动,而是把会产生的变动打印到控制台输出,方便实施人员进一步校对。
校对完毕后,执行以下命令将更新推送到线上环境:
sudo docker exec yiask npm run project-sync --no_dry
6. 测试
每次执行完同步后,运行
sudo docker exec yiask npm run project-test --project=项目名
进行测试,保证问答功能可以正常运行。
7. https 配置
本系统默认监听在 3052 端口,可使用公司自己的反向代理配置 https 证书。本系统侧无需配置。
如果域名直接指向本系统,需要通过本系统来配置 https 的。可以把证书的server.key,server.cer文件存入项目实施文件夹的 https 文件夹中(如没有则新建一个)。然后重启系统即可。系统监听端口将强制使用 https。
注: 如何在 https 文件夹里面已经配置证书的情况下,强制让系统不使用 https?
答:在 config.json 文件中,填入 https: false。即可达成上述效果。