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

nginx + spring cloud + redis + mysql + ELFK 部署

一、环境规划

节点名称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+logstash

注意:mysql 节点和 redis 节点 IP 不能变(jar包设置的ip),其它节点 IP 可变。

二、安装配置 mysql

2.1 上传 rpm 压缩包到 mysql 节点

mysql5720_rpms.tar.gzyl_app.sql上传到 mysql 节点(IP:172.16.0.100)。

2.2 解压安装 rpm 包

bash

# 解压压缩包
tar zxvf mysql5720_rpms.tar.gz
# 切换到存放所有MySQL及依赖RPM包的文件夹
cd mysql5720_rpms
# yum自动识别当前目录下所有.rpm文件并处理依赖关系安装
yum localinstall -y *.rpm

2.3 配置 mysql

  1. 启动 mysql 服务

    bash

    systemctl start mysqld
    
  2. 修改初始密码

    bash

    mysql -uroot -p$(grep "password" /var/log/mysqld.log | awk '{print $NF}') --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123';"
    
  3. 修改配置文件

    bash

    vim /etc/my.cnf
    
    [mysqld]模块下,保持原有配置(如 datadir、socket 等)不变,新增以下内容:

    ini

    # 降低密码强度策略(仅检查长度)
    validate_password_policy=LOW
    # 最小密码长度设为6位
    validate_password_length=6
    # 指定错误日志文件路径
    log_error = /var/log/mysql/mysql_error.log
    # 开启慢查询日志
    slow_query_log = 1
    # 慢查询日志文件路径
    slow_query_log_file = /var/log/mysql/mysql_slow.log
    # 超过2秒认为是慢查询(默认10s)
    long_query_time = 2
    # 记录未使用索引的查询(可选)
    log_queries_not_using_indexes = ON
    
  4. 创建日志目录并授权

    bash

    # 创建日志目录
    sudo mkdir -p /var/log/mysql
    # 设置目录所有者为mysql用户
    sudo chown -R mysql:mysql /var/log/mysql
    
  5. 重启 mysqld 服务

    bash

    systemctl restart mysqld
    

2.4 修改密码

微服务访问 Mysql 的用户为 root,密码设置为 123456:

bash

mysql -uroot -pAdmin@123 -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';"

2.5 导入 sql 文件

bash

mysql -uroot -p123456 < /opt/yl_app.sql
验证导入结果

bash

# 登录mysql
mysql -uroot -p123456
# 查看数据库列表
show databases;
# 使用yl_app数据库
use yl_app;
# 查看数据表列表
show tables;

三、安装配置 redis

3.1 上传 redis 压缩包

将 redis 压缩包(如redis-5.0.7.tar.gz)上传到 redis 节点(IP:172.16.0.12)。

3.2 安装 redis

bash

# 解压压缩包到/opt目录
tar zxvf redis-5.0.7.tar.gz -C /opt/
# 切换到redis解压目录
cd /opt/redis-5.0.7/
# 编译安装到指定目录
make && make PREFIX=/usr/local/redis install
# 执行脚本设置Redis服务配置
cd /opt/redis-5.0.7/utils
./install_server.sh  # 执行过程中一直回车,需手动修改可执行文件路径为/usr/local/redis/bin/redis-server
# 创建符号链接,便于系统识别redis命令
ln -s /usr/local/redis/bin/* /usr/local/bin/

3.3 修改 redis 配置文件

bash

vim /etc/redis/6379.conf

修改以下配置项:

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

重启 redis 服务:

bash

/etc/init.d/redis_6379 restart

四、配置 java 节点

4.1 配置 java 环境

bash

# 安装openjdk
yum install -y java
# 验证java版本
java -version

4.2 上传 jar 包

将微服务 jar 包(yl_application-1.0-SNAPSHOT.jar)上传到 java 节点(IP:172.16.0.11)的 /opt 目录。

4.3 运行微服务

bash

# 设置JVM内存参数(起始内存512MB,最大内存2GB),后台运行jar包
nohup java -Xms512m -Xmx2g -jar /opt/yl_application-1.0-SNAPSHOT.jar &
# 查看日志(日志会生成在当前目录的logs文件夹下)
tail -f /opt/logs/yulin-2025-09-30.0.log

五、配置 nginx 节点

5.1 上传压缩包

将 nginx 压缩包(nginx-1.20.2.tar.gz)和前端压缩包(dist.zip)上传到 nginx 节点(IP:172.16.0.10)的 /opt 目录。

5.2 安装 nginx

  1. 安装依赖包

    bash

    yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel unzip
    
  2. 创建运行用户和组

    bash

    useradd -M -s /sbin/nologin nginx
    
  3. 编译安装 nginx

    bash

    # 切换到/opt目录
    cd /opt
    # 解压nginx压缩包
    tar zxvf nginx-1.20.2.tar.gz -C /opt/
    # 切换到nginx解压目录
    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
    
  4. 配置系统命令和服务

    bash

    # 创建符号链接,便于系统识别nginx命令
    ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
    # 添加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
    # 重载系统服务,启动nginx并设置开机自启
    systemctl daemon-reload
    systemctl start nginx.service
    systemctl enable nginx.service
    

5.3 部署前端项目

bash

# 解压前端压缩包到nginx的html目录
unzip /opt/dist.zip -d /usr/local/nginx/html

5.4 修改 nginx 配置文件

  1. 备份原有配置文件

    bash

    cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
    
  2. 修改配置文件

    bash

    vim /usr/local/nginx/conf/nginx.conf
    
    修改server模块配置如下:

    nginx

    server {listen 80;server_name 172.16.0.10;charset utf-8;index index.html index.htm;root /usr/local/nginx/html/dist;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;# 微服务端口为8090,代理到java节点proxy_pass http://172.16.0.11:8090;proxy_redirect off;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}
    }
    
  3. 重启 nginx 服务

    bash

    systemctl restart nginx
    

5.5 测试项目部署成功

在浏览器中访问http://172.16.0.10,会跳转到设备管理平台登录页面(172.16.0.10/#/common/login/login),输入账号密码(如 admin/123456)可登录系统,查看首页、设备管理、用户管理等功能模块。

六、ELK 搭建

6.1 环境规划

6.1.1 节点信息
节点名称IP服务
elk172.16.0.13ES+logstash
mysql172.16.0.100mysql+filebeat
nginx172.16.0.10nginx+filebeat+kibana
java172.16.0.11openjdk+filebeat
6.1.2 filebeat 端口规划
节点名称IP端口
mysql172.16.0.1006000
nginx172.16.0.106001
java172.16.0.116002

6.2 在 elk 节点安装 ES 和 logstash

6.2.1 安装 ES(Elasticsearch)
  1. 安装 java 环境

    bash

    yum -y install java
    java -version
    
  2. 上传并安装 ES rpm 包

    bash

    # 上传elasticsearch-6.6.1.rpm到/opt目录
    cd /opt
    rpm -ivh elasticsearch-6.6.1.rpm
    # 加载系统服务并设置开机自启
    systemctl daemon-reload
    systemctl enable elasticsearch.service
    
  3. 修改 ES 主配置文件

    bash

    # 备份原有配置文件
    cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
    # 编辑配置文件
    vim /etc/elasticsearch/elasticsearch.yml
    
    修改以下配置项(取消注释并调整值):
    • 第 23 行:node.name: node1(指定节点名字)
    • 第 33 行:path.data: /data/elk_data(指定数据存放路径)
    • 第 37 行:path.logs: /var/log/elasticsearch(指定日志存放路径)
    • 第 43 行:bootstrap.memory_lock: false(启动时不锁定内存)
    • 第 55 行:network.host: 0.0.0.0(设置监听地址,允许所有地址访问)
    • 第 59 行:http.port: 9200(ES 服务默认监听端口)
  4. 创建数据目录并授权

    bash

    mkdir -p /data/elk_data
    chown elasticsearch:elasticsearch /data/elk_data/
    
  5. 启动 ES 并验证

    bash

    # 启动ES服务(启动较慢,需等待片刻)
    systemctl start elasticsearch.service
    # 查看9200端口是否监听
    netstat -antp | grep 9200
    # 查看节点信息(浏览器访问或用curl命令)
    curl 172.16.0.13:9200
    
    成功启动后,curl 命令会返回 ES 节点信息,包括节点名称、集群名称、版本等。

6.2.2 安装 logstash
  1. 上传并安装 logstash rpm 包

    bash

    # 上传logstash-6.6.1.rpm到/opt目录
    cd /opt
    rpm -ivh logstash-6.6.1.rpm
    # 启动logstash并设置开机自启
    systemctl start logstash.service
    systemctl enable logstash.service
    # 创建符号链接,便于系统识别logstash命令
    ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
    
  2. 测试 logstash

    bash

    # 输入采用标准输入,输出采用标准输出(类似管道)
    logstash -e 'input { stdin{} } output { stdout{} }'
    
    输入www.baidu.com并回车,会输出包含host@timestampmessage等字段的日志信息,说明 logstash 测试正常。

6.3 nginx 节点安装 kibana

  1. 上传并安装 kibana rpm 包

    bash

    # 上传kibana-6.6.1-x86_64.rpm到/opt目录
    cd /opt
    rpm -ivh kibana-6.6.1-x86_64.rpm
    
  2. 修改 kibana 配置文件

    bash

    vim /etc/kibana/kibana.yml
    
    修改以下配置项(取消注释并调整值):
    • 第 2 行:server.port: 5601(kibana 服务默认监听端口)
    • 第 7 行:server.host: "0.0.0.0"(设置监听地址,允许所有地址访问)
    • 第 28 行:elasticsearch.hosts: ["http://172.16.0.13:9200"](设置与 ES 连接的地址和端口)
    • 第 37 行:kibana.index: ".kibana"(在 ES 中添加.kibana 索引)
  3. 启动 kibana 并验证

    bash

    # 启动kibana服务并设置开机自启
    systemctl start kibana.service
    systemctl enable kibana.service
    # 查看5601端口是否监听
    netstat -natp | grep 5601
    # 浏览器访问验证
    http://172.16.0.10:5601
    
    成功启动后,浏览器会显示 kibana 的登录 / 首页界面。

6.4 mysql 节点配置 filebeat

mysql 节点需收集的日志:

  • 错误日志:/var/log/mysql/mysql_error.log
  • 慢查询日志:/var/log/mysql/mysql_slow.log
6.4.1 安装 filebeat

bash

# 上传filebeat-6.6.1-x86_64.rpm到/opt目录
cd /opt
rpm -ivh filebeat-6.6.1-x86_64.rpm
6.4.2 修改 filebeat 配置文件

bash

# 备份原有配置文件
cd /etc/filebeat
cp filebeat.yml filebeat.yml.bak
# 编辑配置文件
vim filebeat.yml

配置内容如下:

yaml

filebeat.inputs:
- type: logenabled: truepaths:- /var/log/mysql/mysql_error.logfields:service_name: mysql_error_loglog_type: mysql_errorfields_under_root: true
- type: logenabled: truepaths:- /var/log/mysql/mysql_slow.logfields:service_name: mysql_slow_loglog_type: mysql_slowfields_under_root: true# 注释掉Elasticsearch output部分
#--------------Elasticsearch output-------------------
#output.elasticsearch:
#  hosts: ["localhost:9200"]# 配置Logstash output
----------------Logstash output---------------------
output.logstash:hosts: ["172.16.0.13:6000"]
6.4.3 在 elk 节点配置 logstash 对应管道
  1. 创建 logstash 配置文件

    bash

    cd /etc/logstash/conf.d
    vim mysql_log.conf
    
    配置内容如下:

    ruby

    input {beats {port => "6000"}
    }output {elasticsearch {hosts => ["172.16.0.13:9200"]index => "%{service_name}-%{+YYYY.MM.dd}"}stdout {codec => rubydebug}
    }
    
  2. 修改 logstash 管道配置文件

    bash

    vim /etc/logstash/pipelines.yml
    
    注释默认配置,添加 mysql_log 管道:

    yaml

    #- pipeline.id: main 
    #  path.config: "/etc/logstash/conf.d/*.conf"
    - pipeline.id: mysql_logpath.config: "/etc/logstash/conf.d/mysql_log.conf"
    
  3. 启动 logstash

    bash

    logstash -f /etc/logstash/conf.d/mysql_log.conf
    
6.4.4 启动 filebeat

bash

filebeat -e -c /etc/filebeat/filebeat.yml

6.5 nginx 节点配置 filebeat

nginx 节点需收集的日志:

  • 访问日志:/usr/local/nginx/logs/access.log
  • 错误日志:/usr/local/nginx/logs/error.log
6.5.1 安装 filebeat

同 6.4.1 步骤(上传并安装filebeat-6.6.1-x86_64.rpm)。

6.5.2 修改 filebeat 配置文件

bash

cd /etc/filebeat
cp filebeat.yml filebeat.yml.bak
vim filebeat.yml

配置内容如下:

yaml

filebeat.inputs:
- type: logenabled: truepaths:- /usr/local/nginx/logs/access.logfields:service_name: nginx_access_loglog_type: nginx_accessfields_under_root: true
- type: logenabled: truepaths:- /usr/local/nginx/logs/error.logfields:service_name: nginx_error_loglog_type: nginx_errorfields_under_root: true# 注释Elasticsearch output部分
#--------------Elasticsearch output-------------------
#output.elasticsearch:
#  hosts: ["localhost:9200"]# 配置Logstash output
----------------Logstash output---------------------
output.logstash:hosts: ["172.16.0.13:6001"]
6.5.3 在 elk 节点配置 logstash 对应管道
  1. 创建 logstash 配置文件

    bash

    cd /etc/logstash/conf.d
    vim nginx_log.conf
    
    配置内容如下:

    ruby

    input {beats {port => "6001"}
    }output {elasticsearch {hosts => ["172.16.0.13:9200"]index => "%{service_name}-%{+YYYY.MM.dd}"}stdout {codec => rubydebug}
    }
    
  2. 修改 logstash 管道配置文件

    bash

    vim /etc/logstash/pipelines.yml
    
    添加 nginx_log 管道:

    yaml

    - pipeline.id: mysql_logpath.config: "/etc/logstash/conf.d/mysql_log.conf"
    - pipeline.id: nginx_logpath.config: "/etc/logstash/conf.d/nginx_log.conf"
    
  3. 启动 logstash

    bash

    logstash -f /etc/logstash/conf.d/nginx_log.conf
    
6.5.4 启动 filebeat

bash

filebeat -e -c /etc/filebeat/filebeat.yml

6.6 java 节点配置 filebeat

java 节点需收集的日志:/opt/logs/yulin-*.log(微服务日志)。

6.6.1 安装 filebeat

同 6.4.1 步骤(上传并安装filebeat-6.6.1-x86_64.rpm)。

6.6.2 修改 filebeat 配置文件

bash

cd /etc/filebeat
cp filebeat.yml filebeat.yml.bak
vim filebeat.yml

配置内容如下:

yaml

filebeat.inputs:
- type: logenabled: truepaths:- /opt/logs/yulin-*.logfields:service_name: yulin_loglog_type: java_businessfields_under_root: true# 注释Elasticsearch output部分
#--------------Elasticsearch output-------------------
#output.elasticsearch:
#  hosts: ["localhost:9200"]# 配置Logstash output
----------------Logstash output---------------------
output.logstash:hosts: ["172.16.0.13:6002"]
6.6.3 在 elk 节点配置 logstash 对应管道
  1. 创建 logstash 配置文件

    bash

    cd /etc/logstash/conf.d
    vim java_log.conf
    
    配置内容如下:

    ruby

    input {beats {port => "6002"}
    }output {elasticsearch {hosts => ["172.16.0.13:9200"]index => "%{service_name}-%{+YYYY.MM.dd}"}stdout {codec => rubydebug}
    }
    
  2. 修改 logstash 管道配置文件

    bash

    vim /etc/logstash/pipelines.yml
    
    添加 java_log 管道:

    yaml

    - 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"
    
  3. 启动 logstash

    bash

    logstash -f /etc/logstash/conf.d/java_log.conf
    
6.6.4 启动 filebeat

bash

filebeat -e -c /etc/filebeat/filebeat.yml

6.7 日志收集展示

在浏览器中访问http://172.16.0.10:5601进入 kibana 界面,通过Index Management可查看已收集的日志索引,包括:

  • mysql_error_log-2025.09.30(mysql 错误日志索引)
  • mysql_slow_log-2025.09.30(mysql 慢查询日志索引)
  • nginx_access_log-2025.09.30(nginx 访问日志索引)
  • nginx_error_log-2025.09.30(nginx 错误日志索引)
  • yulin_log-2025.09.30(java 微服务日志索引)

可通过 kibana 的Discover模块查询具体日志内容,Dashboard模块创建日志可视化图表。

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

相关文章:

  • 【黑马点评 - 实战篇01】Redis项目实战(Windows安装Redis6.2.6 + 发送验证码 + 短信验证码登录注册 + 拦截器链 - 登录校验)
  • 汕头市通信建设管理局网站二网站手
  • FreeRTOS小记
  • 数据结构实战:顺序表全解析 - 从零实现到性能分析
  • 【C++进阶】继承上 概念及其定义 赋值兼容转换 子类默认成员函数的详解分析
  • 华为matebook16s 2022禁用触摸板和触摸屏操作
  • GridRow 和 Column 有啥区别
  • 030159网站建设与维护中国科技成就素材
  • Echarts 5.6.0 Grid 坐标系中 Y 轴可视化的优化之路
  • Java 线程池如何知道一个线程的任务已经执行完成
  • JVM字节码与类的加载(一):类的加载过程详解
  • 强军网网站建设网站需要备案才能建设吗
  • 耄大厨——AI厨师智能体(3-工具调用)
  • (二)黑马React(导航/账单项目)
  • SA-LSTM
  • 【Java并发】深入理解synchronized
  • Docker 安装 Harbor 教程
  • Python+Flask+Prophet 汽车之家二手车系统 逻辑回归 二手车推荐系统 机器学习(逻辑回归+Echarts 源码+文档)✅
  • AI_NovelGenerator:自动化长篇小说AI生成工具
  • 济南网站制作开通免费个人简历模板官网
  • 全链路智能运维中的异常检测与根因定位技术
  • 解构 CodexField:创作者经济到模型金融化的代币逻辑与潜力
  • SpringBoot 实现自动数据变更追踪
  • C语言⽂件操作讲解(3)
  • 对网站做数据分析北京市建设工程信息
  • 1.6虚拟机
  • XCP服务
  • Excel - Excel 列出一列中所有不重复数据
  • 如何获取用户右击的Excel单元格位置
  • 昆明企业网站建设公司虹口建设机械网站制作