项目部署上线项目介绍中州养老系统为养老院量身定制开发专业的养老管理软件产品涵盖来访管理、入退管理、在住管理、服务管理、财务管理等功能模块涉及从来访参观到退住办理的完整流程。项目原型访问地址https://codesign.qq.com/s/459277624064324 密码: FSTI中州养老项目分为两端一个是管理后台另外一个是家属端➤ 管理后台养老院员工使用入住、退住给老人服务记录AI智能体体检报告分析百度千帆等等➤ 家属端养老院的老人家属使用查看老人信息缴费下订单智能客服等等项目架构及节点规划架构图节点规划项目各节点初始化1.0 阿里云申请三台ECS服务器自定义购买 付费类型抢占式实列 地域河源 网络以及可用区河源,可用区B(注意地区和可用区必须位置是一样的) 我们选择2cpu4G内存即可 购买数量选择3个 实列使用时长无法确定使用时长 单台实列上限价格使用自动出价 实列中断模式直接释放 镜像centos stream 公网ip自动分配ipv4地址 宽带计费模式选择自动计费模式 宽带峰值100Mbps 新建安全组 安全组名称中州养老安全组 安全组类型普通安全组 开发ipv4端口ssh,http,https 密码Aa123456!2.0 使用工具连接三个服务器3.0 修改主机名字hostnamectl set-hostname node1.itcast.cn hostnamectl set-hostname node2.itcast.cn hostnamectl set-hostname node3.itcast.cnmysql数据库部署(node1)参考文档地址https://my.feishu.cn/docx/Bp2kdHlWAoFPFfxTQnIcoPSWnr9业务数据导入(node1)sql文件在资料/项目内容/sql文件里面# 1.0 将sql脚本上传到服务器/opt/zzyl/sql里面mkdir-p/opt/zzyl/sql里面cd/opt/zzyl/sql# 将sql文件上传到这个文件夹下面# 2.0 执行以下mysql命令完成导入mysql-uroot-pAa123456.ry-zzyl.sql# 3.0 校验是否导入成功我们可以进入数据库查看是否有表redis部署(node1)Redis是一个超级快的数据存储工具它可以把数据保存在内存里类似于一个高速缓存。它被广泛用于需要快速读写数据的场景。例如缓存数据、实时数据分析、消息队列等安装参考文档:https://my.feishu.cn/docx/ASWLdXucToOkAbxZfjLcoxtGnje阿里云对象存储oss开通阿里云对象存储 OSS阿里云的 OSSObject Storage Service是一个云端对象存储服务简单来说它就像是一个网上的硬盘用来存储和管理各种文件比如图片、视频、文档等。你可以把它理解为一个可以随时访问、随时上传文件的网盘不过它比普通网盘更强大专门为大规模的数据存储和管理设计。特点➤ 像硬盘但在云上你把文件存到阿里云的 OSS 上就像把文件放进云端的一个 “网盘” 中而这个网盘可以存很多很多数据。➤ 可以随时随地访问无论你身处哪里只要有网络就可以随时上传、下载、管理这些文件。➤ 适合大规模数据存储不仅可以存普通文件还能处理海量数据比如网站的图片、视频甚至是备份文件等。开通流程# 1.0 阿里云开通OSS服务 选择存储然后选择对象存储 # 2.0 选择对象存储oss控制台 # 3.0 创建存储backet桶(容器) Backet列表创建Backet 名字zzyl # 4.0 进入bucket,设置为公用方便访问 # 5.0 生成Accesskey,用于授权访问OSS服务(一定要保存好)项目接入阿里云oss打开后端打包文件找到jar包然后找到jar里面的application-prod.yml生产环境配置文件修改以下内容(注意修改完毕后我们需要将配置文件拖拽回去)oss: endpoint: oss-cn-beijing.aliyuncs.com accessKeyId: LTAI5tJe9A6bWwhFEkYyaXjD# 授权idaccessKeySecret: kcpwmQ6YAS5l0FvsSFuw7aDN3DPNvp#授权secretbucketName: zzyl# bucketName开通百度千帆大模型授权项目中主要是基于百度千帆大模型来分析用户的体检报告故需要注册百度千帆大模型API从而对接百度千帆大模型。生产环境中一般为公司生产环境的百度千帆账号注册地址https://qianfan.cloud.baidu.com/安全认证——Access Key——创建Access Key——保存到我们的记事本里面项目接入百度千帆大模型修改jar包里面的配置文件swagger:# 是否开启swaggerenabled:true# 请求前缀pathMapping: /dev-api# 防止XSS攻击xss:# 过滤开关enabled:true# 排除链接多个用逗号分隔excludes: /system/notice# 匹配链接urlPatterns: /system/*,/monitor/*,/tool/* oss: endpoint: oss-cn-bei****uncs.com accessKeyId: LTAI****LhjMN4****ydEmyj2VY accessKeySecret: bQ2a****ygVfDaTEYUdwA3gUkEJiKb bucketName: ithe****dj-yw baidu:# 我们修改的是这个地方# 授权IDaccessKey: xE09h****zWlU1YpHNt# 授权secretsecretKey: T67Xuyx****JEACQcFCVkd2HnZuKH qianfanModel: ERNIE-4.0-8K-Preview后端后台服务部署修改配置文件ip和密码主要是修改mysql和redis部分文件名application-prod.yml安装jdk(node2)步骤一安装JAVA程序运行环境JDK安装文档https://m6on85cty5.feishu.cn/docx/RQSbdq1bxo0eORxav5Fcm06Jnqg上传jar包并启动# 创建文件并进入目录mkdir-p/opt/zzyl/backend/cd-p/opt/zzyl/backend/# 上传文件(zzyl-admin.jar)# 前台启动项目java-jarzzyl-admin.jar注意 如果报错我们看mysql是否设置了给远程用户访问的权限后台启动项目Linux screen 后台运行 Java Jar 包完整操作文档 # 一、问题说明 执行java -jar运行 jar 包会占用前台控制窗口无法输入其他命令 原因java -jar默认前台阻塞运行。 解决方案使用 Linux screen 会话工具将程序稳定后台挂载运行。 # 二、screen 安装CentOS/RHEL dnf 系统 安装第三方 epel 软件源 dnf install -y epel-release 安装 screen 工具 dnf install -y screen # 三、后台部署 Jar 完整步骤 安装 screen上面两条 dnf 命令 创建并命名持久会话窗口 screen -S zzyl-backend 执行启动 Jar 包命令 java -jar zzyl-admin.jar 后台分离会话程序持续运行 快捷键先按 Ctrl a松开后再按 d # 四、screen 扩展常用操作 查看所有后台会话窗口 screen -ls 重新进入 / 恢复会话 screen -r 彻底关闭销毁当前会话窗口 快捷键Ctrl dnginx组件部署(node3)一、Nginx 基础介绍Nginx发音为 “Engine-X”是一款高性能的 Web 服务器和反向代理服务器。它最初是为了提供更高效的静态文件处理而设计的但现在广泛应用于负载均衡、反向代理、缓存等多种用途。基于 C 语言开发在合适的硬件上如多核 CPU 和足够的内存Nginx 可以处理 50,000 到 100,000 个并发连接甚至更多。二、Nginx 能做什么Web 服务器它可以处理并响应来自用户的 HTTP 请求展示网站内容。反向代理服务器它接收用户的请求然后将请求转发给其他服务器来处理。这对于负载均衡和保护后端服务器很有用。负载均衡它可以把用户的请求分配到多个后端服务器上从而减少单一服务器的负担提高网站的稳定性和处理能力。除此之外还支持缓存、SSL/TLS 加密等能力是目前最常用的 WEB 服务器。安装文档安装地址https://m6on85cty5.feishu.cn/docx/ZdoFd3WSdoAZOZxQ2T0cLDPRn6f前端服务部署(node3)上传前端项目将 dist 目录上传到/var/www/目录下如果目标路径不存在手动创建mkdir-p/var/www/[rootnode3 www]# pwd/var/www[rootnode3 www]# ll总用量0drwxr-xr-x3root root10112月2901:48 dist[rootnode3 www]#配置nginx配置文件nginx配置文件放在nginx配置文件夹下面我们直接复制里面的内容即可重载配置文件nginx -s reload本次我们主要使用了Nginx的那些能力答主要使用Nginx的WEB服务器和反向代理的能力通过Nginx来接收并响应浏览器访问请求WEB能力并对部分请求转发到后台服务进行处理反向代理。智能客服私有化大模型部署申领服务器部署说明本次聊天机器人底座采用 ChatGLM-6B 模型ChatGLM 是由清华大学与智谱 AI 联合开发的开源双语对话语言模型基于 GLMGeneral Language Model架构支持中英双语交互尤其针对中文场景优化。其代表版本 ChatGLM-6B 具备 60 亿参数融合监督微调、人类反馈强化学习等技术适用于金融、营销、公共服务等多领域智能化应用。部署该模型服务器要求操作系统Linux显存GPU最低 4GB建议 8GB 以上内存大于等于 8GBCPU大于等于 4 核磁盘空间建议大于 40GB阿里云申请服务器 自定义购买抢占式实列地区选择河源 实列和镜像架构选择GPU,T4加速 带宽按流量使用(100Mbps) 分配Ipv4地址 安全组新建安全组(私有化大模型安全组)只开SSH(22端口)、 登录: root Aa123456!安装GPU驱动第一步验证服务器是否安装显卡驱动# 查看显卡信息lspci|grep-invidia# 查看驱动是否加载nvidia-smi第二步安装GPU驱动# 进入官网https://developer.nvidia.com/cuda-downloads# 选择Linux——x86架构——RHEL——版本选择9——install Type:runfile(local)添加环境变量# 添加CUDA驱动echoexport PATH/usr/local/cuda/bin:$PATH~/.bashrcechoexport LD_LIBRARY_PATH/usr/local/cuda/lib64:$LD_LIBRARY_PATH~/.bashrcsource~/.bashrc# 校验nvidia-smi基础环境安装由于本次基于 chatglm-6b 大模型部署采用 Python 语言开发会使用大量 Python 核心库因此需要先在服务器安装 Python 环境。本次通过安装 Anaconda 来配置环境Anaconda 是开源 Python 发行版本内置 conda、Python 以及 180 多个科学计算包和对应依赖同时支持虚拟环境可隔离多套 Python 环境避免版本冲突是 Python 项目部署的主流选择。第一步下载Anacondawgethttps://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh第二步安装AnacondashAnaconda3-2024.10-1-Linux-x86_64.sh注意一定不要多回车。 如果没有初始化界面通过以下方式解决cd~# 如果你不是root用户切换到自己的家目录下vim.bashrc# conda initialize # !! Contents within this block are managed by conda init !!__conda_setup$(/root/anaconda3/bin/conda shell.bash hook2/dev/null)if[$?-eq0];theneval$__conda_setupelseif[-f/root/anaconda3/etc/profile.d/conda.sh];then./root/anaconda3/etc/profile.d/conda.shelseexportPATH/root/anaconda3/bin:$PATHfifiunset__conda_setup# conda initialize 第三步退出然后重新连接服务器模型部署上线与测试第一步创建虚拟环境# 创建虚拟环境conda create--namechatglmpython3.10# 进入虚拟环境conda activate chatglm第二步: 下载chatglm-6b模型(知识库)# 创建目录创建一个用于放置大模型项目相关内容的目录mkdir-p/export/data/glm# 切换目录cd/export/data/glm# 安装 国内模型资源平台pipinstall-Uhuggingface_hub# 设置模型资源地址exportHF_ENDPOINThttps://hf-mirror.com# 下载对应模型内容以下为一行huggingface-cli download --resume-download THUDM/chatglm-6b-int4 --local-dir THUDM/chatglm-6b-int4第三步上传ChatGLM-6B代码# 新建一个窗口进入虚拟环境conda activate chatglmcd/export/data/glm/# 将ChatGLM-6B代码上传到这个目录里面第四步安装依赖cd/export/data/glm/ChatGLM-6B pipinstall-rrequirements.txt-ihttps://mirror.sjtu.edu.cn/pypi/web/simple第五步修改代码说明项目部分依赖资源会因存放路径问题出现加载失败需和开发确认资源位置后调整代码。 修改 api.py 内模型路径操作cd/export/data/glm/ChatGLM-6Bviapi.py1. 新增路径变量代码 model_path/export/data/glm/THUDM/chatglm-6b-int42. 修改加载相关参数代码 tokenizerAutoTokenizer.from_pretrained(model_path,trust_remote_codeTrue)modelAutoModel.from_pretrained(model_path,trust_remote_codeTrue).half().cuda()modelmodel.eval()第六步模型部署运行api.py python api.py 启动后会开放大模型调用接口开发人员可通过接口调用大模型。1. 安装额外依赖 pipinstallfastapi uvicorn 说明 服务默认部署在本地8000端口使用 POST 方式调用接口。2. 接口测试curl命令curl-XPOSThttp://127.0.0.1:8000-HContent-Type: application/json-d{prompt: 你好, history: []}监控告警阿里云监控组件介绍与开通阿里云监控组件介绍:阿里云的云监控服务CloudMonitor是一款简单易用、功能强大的监控工具主要用来帮助用户实时监控云上的各种资源比如服务器、数据库、网络等并在出现问题时及时发出警报确保业务稳定运行。开通云监控迁移与运维管理——找到云监控如何开通云主机监控策略开通云主机监控# 1.0 云监控——主机监控 # 2.0 为监控主机安装Agent(有自动执行安装) # 3.0 等待片刻然后重新刷新即可系统报警服务配置:# 1.0 报警服务——设置报警联系人 # 2.0 报警规则——创建报警规则系统运维常见问题CPU 负载如何监测呢答根据 top 和 htop 查看 CPU 1 分钟、5 分钟、15 分钟负载情况一般超过 0.5 表示存在负载过高的问题了内存负载如何监测呢答根据 top 或 htop查看内存剩余使用情况当几乎为 0 的时候表示内存爆满超过 80%表示占用率较高了ECS服务器巡检报告巡检报告主要包含几个部分呢巡检报告有什么作用答巡检报告主要包含五大部分内容性能监控数据、异常问题诊断、安全风险评估、资源使用与配置分析、事件记录与处理建议。巡检报告的作用提升系统稳定性与安全性、优化服务器资源配置、支撑合规审计工作。云服务器监控可视化大屏1.0 打开自定义大盘创建大盘2.0 添加图标3.0 根据需求添加对应检测指标4.0 最后保存大盘资源比如服务器、数据库、网络等并在出现问题时及时发出警报确保业务稳定运行。开通云监控迁移与运维管理——找到云监控如何开通云主机监控策略开通云主机监控# 1.0 云监控——主机监控 # 2.0 为监控主机安装Agent(有自动执行安装) # 3.0 等待片刻然后重新刷新即可系统报警服务配置:# 1.0 报警服务——设置报警联系人 # 2.0 报警规则——创建报警规则系统运维常见问题CPU 负载如何监测呢答根据 top 和 htop 查看 CPU 1 分钟、5 分钟、15 分钟负载情况一般超过 0.5 表示存在负载过高的问题了内存负载如何监测呢答根据 top 或 htop查看内存剩余使用情况当几乎为 0 的时候表示内存爆满超过 80%表示占用率较高了ECS服务器巡检报告巡检报告主要包含几个部分呢巡检报告有什么作用答巡检报告主要包含五大部分内容性能监控数据、异常问题诊断、安全风险评估、资源使用与配置分析、事件记录与处理建议。巡检报告的作用提升系统稳定性与安全性、优化服务器资源配置、支撑合规审计工作。云服务器监控可视化大屏1.0 打开自定义大盘创建大盘2.0 添加图标3.0 根据需求添加对应检测指标4.0 最后保存大盘