当前位置: 首页 > news >正文

设备管理平台项目全流程部署指南:从环境到ELK日志监控

文章目录

    • 一、部署前准备:环境规划与核心说明
      • 1.1 节点与服务分配
      • 1.2 前置操作(所有节点必做)
    • 二、分步部署:从核心服务到前端
      • 2.1 第一步:部署MySQL(数据存储)
        • 1. 上传压缩包
        • 2. 解压并安装RPM包
        • 3. 初始化配置
        • 4. 配置业务账号密码
        • 5. 导入业务SQL并验证
      • 2.2 第二步:部署Redis(缓存服务)
        • 1. 上传并解压安装包
        • 2. 配置Redis服务
        • 3. 允许外部访问
      • 2.3 第三步:部署Java微服务
        • 1. 安装OpenJDK
        • 2. 启动微服务
      • 2.4 第四步:部署Nginx(前端+反向代理)
        • 1. 上传安装包
        • 2. 安装依赖与Nginx
        • 3. 配置Nginx系统服务(自启动)
        • 4. 部署前端页面
        • 5. 配置反向代理(关键)
        • 6. 验证前端访问


在运维工作中,一套清晰的项目部署流程能极大减少踩坑概率。最近刚完成某设备管理平台的部署,涉及MySQL、Redis、Java微服务、Nginx反向代理和ELK日志收集,过程中踩了不少细节坑,整理成这篇实操指南,希望能帮到有类似需求的同学。

一、部署前准备:环境规划与核心说明

在动手部署前,先明确整体架构和节点分配——这套平台需要5个核心节点,分别承载不同服务,重点注意IP固定规则和资源配置要求,避免后续踩“IP变动导致服务失联”的坑。

1.1 节点与服务分配

节点名称IP地址部署服务关键说明
mysql172.16.0.100MySQL + FilebeatIP不可变,存储业务数据
nginx172.16.0.10Nginx + Filebeat + Kibana前端部署+反向代理+日志收集
java172.16.0.11OpenJDK + Filebeat运行Java微服务
redis172.16.0.12RedisIP不可变,缓存服务
elk172.16.0.13Elasticsearch + Logstash日志存储与解析(资源要求高)

1.2 前置操作(所有节点必做)

  1. 关闭防火墙和SELinux:避免端口被拦截,命令如下:
    # 关闭防火墙(永久)
    systemctl stop firewalld && systemctl disable firewalld
    # 关闭SELinux(临时+永久)
    setenforce 0
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    
  2. 资源配置:所有节点最低1核2G,ELK节点建议2核4G以上(ES和Logstash对内存消耗较大)。

二、分步部署:从核心服务到前端

按照“数据存储→缓存→微服务→前端”的顺序部署,每一步都做好验证,确保前序服务正常再推进下一步。

2.1 第一步:部署MySQL(数据存储)

MySQL是业务数据核心,需注意初始密码修改、配置优化和SQL导入验证。

1. 上传压缩包

mysql5720_rpms.tar.gz(MySQL安装包)和 yl_app.sql(业务SQL脚本)上传到 172.16.0.100/opt 目录(可通过scp命令上传,例:scp 本地文件路径 root@172.16.0.100:/opt/)。

2. 解压并安装RPM包
# 解压压缩包
tar zxvf mysql5720_rpms.tar.gz
# 进入解压目录
cd mysql5720_rpms
# 本地安装(自动处理依赖)
yum localinstall -y *.rpm
3. 初始化配置
  • 启动MySQL服务
    systemctl start mysqld && systemctl enable mysqld
    
  • 获取初始密码并修改:MySQL安装后会生成临时密码,存放在日志中:
    # 提取初始密码并修改为 Admin@123
    mysql -uroot -p$(grep "password" /var/log/mysqld.log | awk '{print $NF}') --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123';"
    
  • 优化配置文件:编辑 /etc/my.cnf,新增密码策略、日志配置(方便后续ELK收集日志):
    vim /etc/my.cnf
    
    [mysqld] 节点下新增:
    # 降低密码强度(仅检查长度)
    validate_password_policy=LOW
    # 最小密码长度6位
    validate_password_length=6
    # 错误日志路径
    log_error = /var/log/mysql/mysql_error.log
    # 开启慢查询日志(超过2秒记录)
    slow_query_log = 1
    slow_query_log_file = /var/log/mysql/mysql_slow.log
    long_query_time = 2
    # 记录未使用索引的查询(便于优化)
    log_queries_not_using_indexes = ON
    
  • 创建日志目录并授权
    mkdir -p /var/log/mysql
    chown -R mysql:mysql /var/log/mysql
    # 重启生效
    systemctl restart mysqld
    
4. 配置业务账号密码

微服务需用 root/123456 访问MySQL,因此修改密码:

mysql -uroot -pAdmin@123 -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';"
5. 导入业务SQL并验证
# 导入SQL脚本
mysql -uroot -p123456 < /opt/yl_app.sql# 验证是否成功(执行后应看到23张表)
mysql -uroot -p123456 -e "use yl_app; show tables;"

若输出 mv_devicessys_user 等23张表,说明MySQL部署完成。

2.2 第二步:部署Redis(缓存服务)

Redis用于微服务缓存,重点配置“允许外部访问”和服务自启动。

1. 上传并解压安装包

redis-5.0.7.tar.gz 上传到 172.16.0.12/opt 目录,执行:

# 解压到/opt
tar zxvf redis-5.0.7.tar.gz -C /opt/
# 进入目录编译安装
cd /opt/redis-5.0.7/
make && make PREFIX=/usr/local/redis install
2. 配置Redis服务
  • 执行安装脚本:自动生成配置文件和服务脚本:
    cd /opt/redis-5.0.7/utils
    ./install_server.sh  # 全程按回车,直到提示“Enter path to executable”
    
    此时需手动输入Redis可执行文件路径:/usr/local/redis/bin/redis-server,后续继续回车。
  • 创建符号链接:让系统全局识别Redis命令:
    ln -s /usr/local/redis/bin/* /usr/local/bin/
    
3. 允许外部访问

编辑Redis配置文件 /etc/redis/6379.conf

vim /etc/redis/6379.conf

修改以下两处:

  • 第70行:bind 0.0.0.0(允许所有IP访问)
  • 第89行:protected-mode no(关闭保护模式)

重启Redis生效:

/etc/init.d/redis_6379 restart

2.3 第三步:部署Java微服务

Java节点需先装JDK,再启动微服务Jar包。

1. 安装OpenJDK
yum install -y java
# 验证(输出1.8+版本即正常)
java -version
2. 启动微服务

yl_application-1.0-SNAPSHOT.jar 上传到 172.16.0.11/opt 目录,执行:

# 后台启动(设置内存:初始512M,最大2G)
nohup java -Xms512m -Xmx2g -jar yl_application-1.0-SNAPSHOT.jar &# 查看日志(确认启动成功,无报错即可)
tail -f /opt/logs/yulin-2025-09-30.0.log

2.4 第四步:部署Nginx(前端+反向代理)

Nginx负责部署前端页面,并将API请求转发到Java微服务。

1. 上传安装包

nginx-1.20.2.tar.gz(Nginx安装包)和 dist.zip(前端压缩包)上传到 172.16.0.10/opt 目录。

2. 安装依赖与Nginx
# 安装编译依赖
yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel unzip# 创建Nginx运行用户(无登录权限)
useradd -M -s /sbin/nologin nginx# 解压并编译安装
cd /opt
tar zxvf nginx-1.20.2.tar.gz -C /opt/
cd nginx-1.20.2/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_ssl_module# 编译安装
make && make install# 全局识别Nginx命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
3. 配置Nginx系统服务(自启动)

创建服务文件:

cat > /lib/systemd/system/nginx.service <<EOF
[Unit]
Description=nginx
After=network.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target
EOF

设置权限并启动:

chmod 754 /lib/systemd/system/nginx.service
systemctl daemon-reload
systemctl start nginx.service && systemctl enable nginx.service
4. 部署前端页面

解压前端压缩包到Nginx的HTML目录:

unzip /opt/dist.zip -d /usr/local/nginx/html
5. 配置反向代理(关键)

备份原配置文件,再修改:

# 备份
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak# 编辑配置
vim /usr/local/nginx/conf/nginx.conf

修改 server 节点内容如下(核心是 /ylApp 路径转发到Java微服务):

server {listen 80;server_name 172.16.0.10;  # Nginx节点IPcharset utf-8;index index.html index.htm;root /usr/local/nginx/html/dist;  # 前端页面路径# 反向代理到Java微服务(Java节点IP:8090)location /ylApp {proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-NginX-Proxy true;proxy_pass http://172.16.0.11:8090;  # 注意:原文档此处IP错写为100,已修正!proxy_redirect off;}# 错误页面error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}
}

重启Nginx生效:

systemctl restart nginx
6. 验证前端访问

打开浏览器,输入 http://172.16.0.10,应看到设备管理平台的登录页,默认账号可使用文档中的 admin/123456(具体以实际业务配置为准)。

在这里插入图片描述

http://www.dtcms.com/a/454204.html

相关文章:

  • Easyx使用(小游戏开发)
  • C++面经|小林coding|(2)
  • 前端学习day01
  • 怎样攻击网站设计师素材网站e
  • 13-verilog实现LED呼吸灯效果
  • 哪里有做网站设计查网站权重
  • 可以做围棋题的网站厂家招商
  • 利用ps制作网站的设计查企企官网
  • 大型地方门户网站源码网页平面设计教程
  • 网站建设600分站优缺点网站开发 群
  • 行业网站联盟wordpress响应式视频
  • 建设网站要多少页面销售网站html源码
  • C++类和对象(3)6个类的默认成员函数之构造函数和析构函数
  • 英文网站建设szjijie山东省和城乡建设厅网站首页
  • 计算机视觉(opencv)——疲劳检测
  • 网站建设与运营的预算方案模板做图骂人的图片网站
  • 网站开发报告参考文献安卓优化大师最新版
  • 【代码随想录算法训练营——Day28】贪心算法——452.用最少数量的箭引爆气球、435.无重叠区间、763.划分字母区间
  • 企业在建设自己网站时哪个网站可以免费做推广
  • 数据备份-从策略到实战
  • 598网站建设推广渠道有哪些
  • 一文畅览 Qt 控件类
  • 高校网站建设招标公告企业网站模板推荐
  • 网站建设所需域名百度推广优化是什么?
  • 网站的颜色搭配专业营销网站开发
  • 第八个实验——浮动路由
  • 西安网站建设云阔网络熊掌号网站建设骗
  • 爱唐山做贡献月评十佳投票网站网站空间稳定性
  • 江苏省城乡建设网站玉溪做网站的公司
  • 专业柳州网站建设多少钱中卫网站推广营销