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
  1. 下载 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
  1. 停止图形界面(如果是图形环境)
sudo systemctl isolate multi-user.target
  1. 运行安装包
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
  1. 验证安装
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服务器巡检报告

云服务器监控可视化大屏

### 运维开发学习路径 #### 初级阶段:基础知识积累 在初级阶段,重点在于打牢基础。需要熟悉操作系统的基础知识以及脚本编程能力。以下是具体的内容: - 掌握 Linux 基础命令和系统管理[^3]。 - 学习 Python 或 Shell 脚本编写,用于日常任务的自动化处理[^4]。 ```bash #!/bin/bash # Example of a simple bash script to automate file backup. SOURCE_DIR="/path/to/source" DESTINATION_DIR="/path/to/destination" if [ -d "$SOURCE_DIR" ]; then cp -r $SOURCE_DIR/* $DESTINATION_DIR/ echo "Backup completed successfully." else echo "Source directory does not exist!" fi ``` #### 中级阶段:进阶技能提升 中级阶段的目标是扩展技术栈并提高解决问题的能力。此阶段应注重以下几个方面: - 深入理解网络协议及其工作原理[^2]。 - 开始接触配置管理和持续集成工具,例如 Ansible, Jenkins 等。 ```yaml --- - name: Install Apache web server on Ubuntu hosts: webservers become: yes tasks: - apt: name: apache2 state: present - service: name: apache2 state: started ``` #### 高级阶段:专业化与实战演练 高级阶段强调理论联系实际,并通过项目实践巩固所学的知识点。这一时期可以考虑的方向有: - AI运维的应用探索,包括但不限于机器学习模型训练、预测分析等。 - 对于云计算环境下的运维优化方案设计,比如利用 Kubernetes 实现容器编排。 ```python from sklearn.ensemble import RandomForestClassifier import pandas as pd def train_model(data_path): df = pd.read_csv(data_path) X = df.drop('target', axis=1).values y = df['target'].values model = RandomForestClassifier() model.fit(X, y) return model ``` ### 注意事项 在整个学习过程中保持开放的心态接受新的技术和理念是非常重要的。同时也要积极参与社区讨论或者开源贡献活动来增强个人影响力和技术水平[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值