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

设备管理平台项目部署实验流程

一、环境规划与前置准备

1. 节点分配

节点名称IP 地址部署服务
mysql172.16.0.100mysql、filebeat
nginx172.16.0.10nginx、filebeat、kibana
java172.16.0.11openjdk、filebeat
redis172.16.0.12redis
elk172.16.0.13ES(Elasticsearch)、logstash

2. 前置操作(所有节点执行)

关闭防火墙及增强功能(以 CentOS 系统为例):

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

二、各节点部署流程

1. mysql 节点部署(IP:172.16.0.100)

(1)上传安装包

mysql5720_rpms.tar.gz(mysql 安装包)和yl_app.sql(项目数据库脚本)上传至 mysql 节点任意目录(如/opt)。

(2)安装 mysql
# 解压安装包
tar zxvf mysql5720_rpms.tar.gz
cd mysql5720_rpms
# 本地安装rpm包(自动处理依赖)
yum localinstall -y *.rpm
(3)配置 mysql
# 启动mysql服务
systemctl start mysqld
systemctl enable mysqld# 提取初始密码并修改为临时密码(Admin@123)
initial_pwd=$(grep "password" /var/log/mysqld.log | awk '{print $NF}')
mysql -uroot -p"$initial_pwd" --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123';"# 修改配置文件/etc/my.cnf
vim /etc/my.cnf
# 在[mysqld]模块下添加/修改以下内容(原有配置如datadir、socket保留)
[mysqld]
validate_password_policy=LOW  # 降低密码强度策略(仅检查长度)
validate_password_length=6    # 最小密码长度设为6位
log_error = /var/log/mysql/mysql_error.log  # 错误日志路径
slow_query_log = ON           # 开启慢查询日志(原文档缺失"ON",补充修正)
slow_query_log_file = /var/log/mysql/mysql_slow.log  # 慢查询日志路径
long_query_time = 2           # 超过2秒判定为慢查询
log_queries_not_using_indexes = ON  # 记录未使用索引的查询# 创建日志目录并授权
mkdir -p /var/log/mysql
chown -R mysql:mysql /var/log/mysql# 重启mysql使配置生效
systemctl restart mysqld
(4)设置项目访问密码并导入数据库
# 将root密码修改为项目使用密码(123456)
mysql -uroot -pAdmin@123 -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';"# 导入项目数据库脚本(假设yl_app.sql在/opt目录)
mysql -uroot -p123456 < /opt/yl_app.sql# 验证导入结果
mysql -uroot -p123456 -e "show databases; use yl_app; show tables;"
# 预期输出:23张表,包括mv_devices、sys_dict、tbl_device_info等
(5)安装并配置 filebeat
# 上传filebeat-6.6.1-x86_64.rpm至/opt目录,执行安装
cd /opt
rpm -ivh filebeat-6.6.1-x86_64.rpm# 备份并修改filebeat配置文件
cd /etc/filebeat
cp filebeat.yml filebeat.yml.bak
vim filebeat.yml# 配置输入(采集mysql日志)和输出(指向logstash)
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/mysql/mysql_error.log  # 错误日志路径fields:service_name: mysql_error_loglog_type: mysql_errorfields_under_root: true
- type: logenabled: truepaths:- /var/log/mysql/mysql_slow.log   # 慢查询日志路径fields:service_name: mysql_slow_loglog_type: mysql_slowfields_under_root: true# 注释所有Elasticsearch output配置,启用Logstash output
# ------------------------------Elasticsearch output------------------------------
# 所有相关配置行前加#注释
# ------------------------------Logstash output----------------------------------
output.logstash:hosts: ["172.16.0.13:6000"]  # 指向elk节点logstash(原文档IP错误,修正为elk节点IP)# 启动filebeat并验证
filebeat -e -c filebeat.yml &  # 后台运行
filebeat test output  # 验证连接logstash是否正常,预期输出"talk to server... OK"

2. redis 节点部署(IP:172.16.0.12)

(1)上传并安装 redis
# 上传redis-5.0.7.tar.gz至/opt目录
cd /opt
tar zxvf redis-5.0.7.tar.gz -C /opt/
cd /opt/redis-5.0.7/# 编译安装(需提前安装gcc,若未安装执行yum install -y gcc)
make && make PREFIX=/usr/local/redis install# 执行脚本配置redis服务
cd /opt/redis-5.0.7/utils
./install_server.sh  # 全程回车,出现"Please select the redis executable path"时,输入/usr/local/redis/bin/redis-server# 创建符号链接便于系统调用
ln -s /usr/local/redis/bin/* /usr/local/bin/
(2)修改配置文件并启动
# 编辑redis配置文件(默认端口6379)
vim /etc/redis/6379.conf
# 修改以下内容
bind 0.0.0.0        # 允许所有IP访问(原文档70行)
protected-mode no   # 关闭保护模式(原文档89行)# 重启redis服务
/etc/init.d/redis_6379 restart
# 验证启动:redis-cli ping,预期返回PONG

3. java 节点部署(IP:172.16.0.11)

(1)安装 java 环境
# 安装openjdk(默认安装1.8版本,满足项目需求)
yum install -y java-1.8.0-openjdk-devel
# 验证安装:java -version,预期输出openjdk版本信息
(2)部署微服务 jar 包
# 上传项目jar包(yl_application-1.0-SNAPSHOT.jar)至/opt目录
cd /opt# 启动微服务(设置内存:初始512MB,最大2GB)
nohup java -Xms512m -Xmx2g -jar yl_application-1.0-SNAPSHOT.jar &# 验证启动:查看日志(日志自动生成在/opt/logs目录)
tail -f /opt/logs/yulin-2025-09-30.0.log  # 日志文件名按实际日期调整,预期无报错
(3)安装并配置 filebeat
# 上传filebeat-6.6.1-x86_64.rpm至/opt目录,执行安装
cd /opt
rpm -ivh filebeat-6.6.1-x86_64.rpm# 备份并修改filebeat配置文件
cd /etc/filebeat
cp filebeat.yml filebeat.yml.bak
vim filebeat.yml# 配置输入(采集微服务日志)和输出(指向logstash)
filebeat.inputs:
- type: logenabled: truepaths:- /opt/logs/yulin-*.log  # 采集所有微服务日志fields:service_name: yulin_log  # 原文档"yvlin_log"拼写错误,修正为"yulin_log"log_type: java_businessfields_under_root: true# 注释Elasticsearch output,启用Logstash output
# ------------------------------Elasticsearch output------------------------------
# 所有相关配置行前加#注释
# ------------------------------Logstash output----------------------------------
output.logstash:hosts: ["172.16.0.13:6002"]  # 指向elk节点logstash(原文档IP错误,修正为elk节点IP)# 启动filebeat并验证
filebeat -e -c filebeat.yml &
filebeat test output  # 验证连接,预期"talk to server... OK"

4. nginx 节点部署(IP:172.16.0.10)

(1)安装 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# 上传nginx-1.20.2.tar.gz至/opt目录,解压并编译安装
cd /opt
tar zxvf nginx-1.20.2.tar.gz -C /opt/
cd /opt/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# 创建符号链接便于系统调用
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
(2)配置 nginx 系统服务并启动
# 创建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  # 原文档缺失\,修正为\$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# 验证启动:curl http://127.0.0.1,预期返回nginx默认页面
(3)部署前端项目并修改 nginx 配置
# 上传前端压缩包dist.zip至/opt目录,解压到nginx html目录
unzip /opt/dist.zip -d /usr/local/nginx/html# 备份并修改nginx配置文件(指向微服务)
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
vim /usr/local/nginx/conf/nginx.conf# 修改server模块配置(替换原有server内容)
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微服务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错误,修正为java节点IPproxy_redirect off;}# 错误页面配置error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}
}# 重启nginx使配置生效
systemctl restart nginx
(4)安装 kibana
# 上传kibana-6.6.1-x86_64.rpm至/opt目录,执行安装
cd /opt
rpm -ivh kibana-6.6.1-x86_64.rpm# 备份并修改kibana配置文件
cp /etc/kibana/kibana.yml /etc/kibana/kibana.yml.bak
vim /etc/kibana/kibana.yml# 修改以下配置(取消注释并调整)
server.port: 5601  # kibana默认端口
server.host: "0.0.0.0"  # 允许所有IP访问
elasticsearch.hosts: ["http://172.16.0.13:9200"]  # 原文档IP错误,修正为elk节点ES地址
kibana.index: ".kibana"  # ES中kibana索引名# 启动kibana并设置开机自启
systemctl start kibana.service
systemctl enable kibana.service# 验证启动:netstat -natp | grep 5601,预期显示5601端口监听
(5)安装并配置 filebeat
# 上传filebeat-6.6.1-x86_64.rpm至/opt目录,执行安装
cd /opt
rpm -ivh filebeat-6.6.1-x86_64.rpm# 备份并修改filebeat配置文件
cd /etc/filebeat
cp filebeat.yml filebeat.yml.bak
vim filebeat.yml# 配置输入(采集nginx日志)和输出(指向logstash)
filebeat.inputs:
- type: logenabled: truepaths:- /usr/local/nginx/logs/access.log  # nginx访问日志fields:service_name: nginx_access_loglog_type: nginx_accessfields_under_root: true
- type: logenabled: truepaths:- /usr/local/nginx/logs/error.log   # nginx错误日志fields:service_name: nginx_error_loglog_type: nginx_errorfields_under_root: true# 注释Elasticsearch output,启用Logstash output
# ------------------------------Elasticsearch output------------------------------
# 所有相关配置行前加#注释
# ------------------------------Logstash output----------------------------------
output.logstash:hosts: ["172.16.0.13:6001"]  # 指向elk节点logstash(原文档IP错误,修正为elk节点IP)# 启动filebeat并验证
filebeat -e -c filebeat.yml &
filebeat test output  # 验证连接,预期"talk to server... OK"

5. elk 节点部署(IP:172.16.0.13)

(1)安装 Elasticsearch(ES)
# 安装java环境(ES依赖java)
yum install -y java-1.8.0-openjdk-devel
java -version  # 验证安装# 上传elasticsearch-6.6.1.rpm至/opt目录,执行安装
cd /opt
rpm -ivh elasticsearch-6.6.1.rpm# 加载系统服务并设置开机自启
systemctl daemon-reload
systemctl enable elasticsearch.service# 备份并修改ES配置文件
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vim /etc/elasticsearch/elasticsearch.yml# 修改以下配置(取消注释并调整)
node.name: node1  # 节点名称
path.data: /data/elk_data  # 数据存储路径
path.logs: /var/log/elasticsearch  # 日志存储路径
bootstrap.memory_lock: false  # 启动时不锁定内存
network.host: 0.0.0.0  # 允许所有IP访问
http.port: 9200  # ES默认端口# 创建数据目录并授权
mkdir -p /data/elk_data
chown -R elasticsearch:elasticsearch /data/elk_data/# 启动ES并验证
systemctl start elasticsearch.service
# ES启动较慢,等待30秒后验证:curl http://172.16.0.13:9200
# 预期输出:包含"name":"node1"、"version":{"number":"6.6.1"}等信息
(2)安装 logstash
# 上传logstash-6.6.1.rpm至/opt目录,执行安装
cd /opt
rpm -ivh logstash-6.6.1.rpm# 启动logstash并设置开机自启
systemctl start logstash.service
systemctl enable logstash.service# 创建符号链接便于系统调用
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/# 测试logstash基础功能(标准输入输出)
logstash -e 'input { stdin{} } output { stdout{} }'
# 输入"www.baidu.com",预期输出包含"message":"www.baidu.com"的JSON格式数据,按Ctrl+C退出
(3)配置 logstash 多管道(对接各节点 filebeat)
① 配置 mysql 日志管道(端口 6000)
# 创建mysql日志配置文件
cd /etc/logstash/conf.d
vim mysql_log.conf# 写入以下内容
input {beats {port => "6000"  # 对应mysql节点filebeat输出端口}
}
output {elasticsearch {hosts => ["http://172.16.0.13:9200"]  # 指向本地ESindex => "%{service_name}-%{+YYYY.MM.dd}"  # 索引名:服务名+日期}stdout {codec => rubydebug  # 控制台输出调试}
}# 校验配置文件语法
logstash -t -f mysql_log.conf
# 预期输出:"Config Validation Result: OK"
② 配置 nginx 日志管道(端口 6001)
# 创建nginx日志配置文件
vim nginx_log.conf# 写入以下内容
input {beats {port => "6001"  # 对应nginx节点filebeat输出端口}
}
output {elasticsearch {hosts => ["http://172.16.0.13:9200"]index => "%{service_name}-%{+YYYY.MM.dd}"}stdout {codec => rubydebug}
}# 校验语法
logstash -t -f nginx_log.conf
③ 配置 java 日志管道(端口 6002)
# 创建java日志配置文件
vim java_log.conf# 写入以下内容
input {beats {port => "6002"  # 对应java节点filebeat输出端口}
}
output {elasticsearch {hosts => ["http://172.16.0.13:9200"]index => "%{service_name}-%{+YYYY.MM.dd}"}stdout {codec => rubydebug}
}# 校验语法
logstash -t -f java_log.conf
④ 配置 logstash 多管道管理
# 备份并修改管道配置文件
cp /etc/logstash/pipelines.yml /etc/logstash/pipelines.yml.bak
vim /etc/logstash/pipelines.yml# 注释默认配置,添加以下多管道配置
- pipeline.id: mysql_logpath.config: "/etc/logstash/conf.d/mysql_log.conf"
- pipeline.id: nginx_logpath.config: "/etc/logstash/conf.d/nginx_log.conf"
- pipeline.id: java_logpath.config: "/etc/logstash/conf.d/java_log.conf"# 重启logstash使多管道生效
systemctl restart logstash.service# 验证管道运行:查看logstash日志
grep "\[mysql_log\]" /var/log/logstash/logstash-plain.log  # 查看mysql管道日志
grep "\[nginx_log\]" /var/log/logstash/logstash-plain.log  # 查看nginx管道日志
# 预期无报错信息

三、整体功能验证

1. 项目访问验证

打开浏览器,输入http://172.16.0.10(nginx 节点 IP),预期跳转至 “设备管理平台” 登录页,使用账号(如 admin,默认密码 123456,文档中用户表含 yang/lyang 等账号)登录,可正常访问 “首页”“设备管理”“系统管理” 等菜单。

2. 日志收集验证

(1)添加测试日志(各节点执行)
# mysql节点:添加测试日志
echo "=== Filebeat Test Log $(date) ===" >> /var/log/mysql/mysql_error.log
echo "=== Filebeat Test Log $(date) ===" >> /var/log/mysql/mysql_slow.log# nginx节点:添加测试日志
echo "=== Filebeat Test Log $(date) ===" >> /usr/local/nginx/logs/access.log
echo "=== Filebeat Test Log $(date) ===" >> /usr/local/nginx/logs/error.log# java节点:添加测试日志(微服务日志目录)
echo "=== Filebeat Test Log $(date) ===" >> /opt/logs/yulin-2025-09-30.0.log
(2)kibana 日志查看
  1. 浏览器访问http://172.16.0.10:5601(nginx 节点 kibana 地址),进入 Kibana 界面。
  2. 进入 “Index Management”,预期显示mysql_error_log-2025.09.30nginx_access_log-2025.09.30yulin_log-2025.09.30等索引(日期按实际测试日期调整)。
  3. 进入 “Discover”,创建索引模式(如*_log-*),可查询到各节点添加的测试日志,验证日志收集正常。

四、常见问题排查

  1. filebeat 无法连接 logstash:执行filebeat test output验证连接,检查 logstash 端口是否开放(如 6000/6001/6002)、elk 节点防火墙是否关闭。
  2. logstash 管道报错:执行logstash -t -f 配置文件路径校验语法,查看/var/log/logstash/logstash-plain.log定位错误。
  3. ES 启动失败:检查/var/log/elasticsearch/下日志,确认/data/elk_data目录权限是否为elasticsearch:elasticsearch
  4. nginx 反向代理失败:查看/usr/local/nginx/logs/error.log,确认 java 节点微服务是否正常运行(ps -ef | grep yl_application)、端口 8090 是否监听。
http://www.dtcms.com/a/462883.html

相关文章:

  • 织梦网站文章发布信息模板下载去掉wordpress 上一篇
  • 有铁芯直线电机扰动力建模方法介绍
  • 图解 bulkProcessor(调度器 + bulkAsync() + Semaphore)
  • 监控系统3 - LVGL
  • 20-数组
  • 防水补漏东莞网站建设河北省建设厅办事大厅网站
  • logosc网站怎么做的减少wordpress响应时间
  • ps做的网站在线设计装修的网站
  • Python-UV环境管理实战
  • 江门建设建筑网站一个人做网站难吗
  • 网站开发使用哪些开发语言长沙的网站建设
  • 光效网站制作网站副本
  • 网站推广经典案例网站优化关键词排名自己怎么做
  • 电子商务网站建设实验原理集约化网站群建设
  • RocketMQ如何使用Netty
  • 哪个网站可以做片头深圳小程序建设公司
  • 腾讯开始数字人mousetalk 部署笔记
  • 做影视网站侵权吗免费刷推广链接的网站
  • 悠悠我心的个人网站怎么做网站侧边栏怎么做
  • 基于机器学习方法的网球比赛胜负趋势预测
  • 金华职院优质校建设网站网站设置在设备之间共享什么意思
  • Day 09(上) B2a实例分析-----如何理解Sensitive detector 和 Hit
  • h5网站需要哪些技术欧模网室内设计网官网
  • 基于CNN和Transformer的分割技术的论文感悟
  • 怎么开设网站 优帮云简单描述一下网站制作的流程
  • 昌平网站建设自建房平面图设计软件
  • 佛山顺德网站建设公司哪家好做外贸网站的好处
  • 《计算》第九十章读书笔记
  • 快速掌握java中数组的排序
  • 从数据孤岛到生态协同:采购管理系统的跨系统集成方案