AI运维开发平台学习

Prometheus + Grafana 监控平台

配置文件中包含三个配置块:global,rule_files,scrape_configs

启动

systemctl daemon-reload

systemctl enable prometheus.service --now

ss -tlnp | grep :9090

LISTEN 0 128 *:9090 *:* users:(("prometheus",pid=3331,fd=6))

访问 http://192.168.88.1:9090

cd /usr/local/grafana-12.2.1/bin

./grafana-server web

访问 http://localhost:3000

学习

远程传输的scp命令:

scp -r "F:\Study\资料\项目内容\前端打包文件\dist" root@8.155.170.220:/var/www/

scp "F:\Study\资料\项目内容\jdk\openjdk-11.0.0.2_linux-x64.tar.gz" root@47.121.188.153:/export/software/

scp "F:\Study\资料\项目内容\后端打包文件\后端打包文件\zzyl-admin.jar" root@47.121.188.153:/opt/zzyl/backend

基础知识-工单-网络-os-

工单系统:记录,分配,处理工作请求,问题报告,变更申请

工单系统基本流程:提交工单->自动分配->处理反馈->验证关闭

网络通信三要素:

网络通信:不同设备间通过网络链接进行数据传输和交换的过程

协议:定义数据在网络中传输时的规则和格式,常见协议TCP/IP,UDP,HTTPS

IP:唯一标识网络中的每台设备:IPV4,IPV6:

端口:区分同一台设备中的不同程序或者服务,在计算机网络中,一个IP地址可以对应多个服务,每个服务通过不同的端口进行通信,

常见的操作系统

云服务器

云服务器:云主机或者弹性计算服务,是基于云计算技术提供的一种虚拟化服务器,将N多服务器计算机资源

常见的云服务器:aws,阿里云,腾讯云,华为云

linux目录结构

项目

项目部署架构

节点规划:

节点环境初始化:保证三台服务器在同一个可用区中

重新设置主机名:

第一个节点:hostnamectl set-hostname node1.itcast.cn

第二个节点:hostnamectl set-hostname node2.itcast.cn

第三个节点:hostnamectl set-hostname node3.itcast.cn

配置MYSQL服务节点

https://m6on85cty5.feishu.cn/docx/Bp2kdHlWAoFPFfxTQnIcoPSWnr9?from=from_copylink

之后下载MYSQL,配置第一个节点,启动MYSQL的命令如下:

复制代码
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
  • 获取MySQL初始root密码 安装 MySQL 后,会生成一个随机的 root 密码, 可以通过MySQL的启动日志来查看

    日志放置位置: /var/log/mysqld.log

    grep password /var/log/mysqld.log

  • 登录MySQL, 设置MySQL安全相关配置

    mysql_secure_installation

密码Aa123456@

-设置远程访问的权限信息:

复制代码
-- 配置远程连接访问的root用户密码【直接执行即可,暂时不需要关心】:
CREATE USER 'root'@'%' IDENTIFIED BY 'Aa123456@';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;


执行完成后,可以直接quit退出或者使用ctrl +D 即可退出
  • 开放防火墙服务/端口号
    • 云平台服务器本身就是关闭防火墙的, 无需开放, 如果需要对外网访问, 可以在阿里云安全组配置
  • 为什么云服务器默认关闭防火墙?

为了方便用户直接访问服务器上的服务,避免因为拦截规则导致服务已启动但是外部连接不上的问题

但是这样不就导致了可能有大量的攻击到服务器,服务器也能响应嘛?

安全组是云平台的第一道防火墙,所有公网流量都会经过安全组筛选,配置时遵循最小授权原则:

只开放需要的端口,限制访问来源

防火墙设置:

复制代码
# 开放 3306 端口(TCP协议),并设置为永久生效
firewall-cmd --zone=public --add-port=3306/tcp --permanent

# 重新加载防火墙规则,使配置生效
firewall-cmd --reload

# 验证规则是否生效(输出 yes 表示已开放)
firewall-cmd --zone=public --query-port=3306/tcp

项目基础数据导入

将项目的SQL脚本上传到服务器中: /opt/zzyl/sql

将SQL文件导入mysql -uroot -pAa123456@ <ry-zzyl.sql

redis服务器部署

https://m6on85cty5.feishu.cn/docx/ASWLdXucToOkAbxZfjLcoxtGnje

阿里云对象储存空间-OSS+项目接入阿里云OSS

更改后端jar包中的📎application-prod.yml文件,将其accessKey改成阿里云中更新的Key

开通百度千帆模型大授权

部署nginx服务节点

https://m6on85cty5.feishu.cn/docx/ZdoFd3WSdoAZOZxQ2T0cLDPRn6f

nginx目录结构介绍

  • /etc/nginx/ 目录 【重要】 这是 Nginx 的 主配置目录,存放所有与 Nginx 配置相关的文件。主要包括:

    nginx.conf:
    Nginx 的主配置文件。这里配置了全局设置、HTTP 服务设置、加载的模块等。
    conf.d/:
    存放额外配置文件的目录,通常用于配置虚拟主机等。你可以在这里添加 .conf 文件来定义多个站点的配置。

    mime.types:
    定义了不同文件类型(MIME类型)与扩展名之间的映射,通常 Nginx 会根据这个文件来判断文件的类型。

  • /var/www/目录 【重要】

默认情况下,Nginx 的网站文件(例如 HTML、图片等)通常存放在这个目录下

复制代码
/var/www/html/:这是 Nginx 默认的根目录。你放置的静态文件会从这个目录提供给客户端。默认情况下,index.html 会作为首页展示
  • /usr/share/nginx/目录

这个目录通常包含与 Nginx 程序相关的文件

复制代码
/usr/share/nginx/html/ :
    Nginx 默认的网页目录,通常安装时会有一个默认的 index.html 文件,用来验证 Nginx 是否成功安装。
  • /var/log/nginx/目录 【重要】

Nginx 会把日志文件存放在这个目录下。日志文件帮助你监控 Nginx 的运行情况,排查问题

复制代码
access.log:记录所有的客户端请求,包括请求的 URL、响应状态码、请求来源等。
error.log:记录 Nginx 在运行时遇到的错误信息、警告等。

前端服务部署

编辑主配置文件:vim /etc/nginx/nginx.conf

复制代码
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

   
    include /etc/nginx/conf.d/*.conf;
	# 在HTTP的目录下, 添加以下三个add_header   CORS 配置
	# 这几行配置用于设置 跨域资源共享(CORS),它们在 Nginx 中用来允许其他域名访问你的资源。CORS 是一种机制,允许通过浏览器发起跨域 HTTP 请求,常用于 Web 应用与不同域名的 API 交互时,解决浏览器的同源策略限制。
	add_header Access-Control-Allow-Origin *;
	add_header Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE";
	add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization";
	
    server {
        listen       80;
        listen       [::]:80;
		# 这些配置项与 Nginx 处理客户端请求的请求体大小、请求头缓冲区等相关,主要用于控制 Nginx 在处理上传文件、请求体内容和请求头时的行为
        client_max_body_size 60m; # 限制客户端请求体的最大大小。
		client_body_buffer_size 512k; # 设置 Nginx 用于缓冲客户端请求体的内存大小。
		client_header_buffer_size 2k; # 设置 Nginx 用于缓冲请求头的内存大小。


        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
		
		# 处理 静态页面
        location / {
                root   /var/www/dist;
                index  index.html index.htm;
                proxy_set_header   Upgrade          $http_upgrade;
                proxy_set_header   Connection       upgrade;
                try_files $uri $uri/ /index.html;
        }
        # 处理反向代理
        location /prod-api/ {
                proxy_pass http://node2 IP私网地址:9000/;
                proxy_set_header   Upgrade          $http_upgrade;
                proxy_set_header   Connection       upgrade;
        }
    }



}

vim中删除全部行得命令有:

-----ggdG:gg → 跳到文件开头

dG → 从当前行删除到文件末尾

-----:%d

nginx -s reload

智能客服私有化大模型部署

安装GPU驱动:

第一步: 验证服务器是否安装显卡驱动:lspci | grep -i nvidia

运行以下命令验证驱动是否正确加载:nvidia-smi

找到对应版本:https://developer.nvidia.com/cuda-downloads

复制代码
wget https://developer.download.nvidia.com/compute/cuda/13.0.2/local_installers/cuda_13.0.2_580.95.05_linux.run
sudo sh cuda_13.0.2_580.95.05_linux.run
  1. 准备依赖

    sudo yum install -y epel-release
    sudo yum install -y gcc make kernel-devel kernel-headers dkms

  2. 下载 CUDA 11.8

    wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run

  3. 停止图形界面(如果是图形环境)

    sudo systemctl isolate multi-user.target

  4. 运行安装包

    sudo sh cuda_11.8.0_520.61.05_linux.run

安装时建议:

  • 安装 Driver + Toolkit
  • 同意许可协议
  • 允许 DKMS 安装
  1. 配置环境变量

    echo 'export PATH=/usr/local/cuda-11.8/bin:PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:LD_LIBRARY_PATH' >> ~/.bashrc
    source ~/.bashrc

  2. 验证安装

    nvidia-smi # 查看显卡和驱动信息
    nvcc -V # 查看

因为这个模型基于Python进行开发,所以需要下载anaconda

wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh

启动anaconda:

运维监控告警

cpu负载过高的情况:

top和htop命令去查看当前的资源负载情况

排查原因

内存爆满

内存爆满,直接云监控去查看当前内存使用情况

使用top或者htop命令查看内存使用情况

还有磁盘网络IO出现的异常的情况

ECS服务器巡检报告

云服务器监控可视化大屏

相关推荐
Scott9999HH10 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
腻害兔10 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社11 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海11 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖12 小时前
JDK 26 新特性详解
java·开发语言
马优晨13 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
人邮异步社区14 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大15 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai15 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
维天说15 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json