一、环境规划
| 节点名称 | IP | 服务 |
|---|---|---|
| mysql | 172.16.0.100 | mysql+filebeat |
| nginx | 172.16.0.10 | nginx+filebeat+kibana |
| java | 172.16.0.11 | openjdk+filebeat |
| redis | 172.16.0.12 | redis |
| elk | 172.16.0.13 | ES+logstash |
注意:mysql 节点和 redis 节点 IP 不能变(jar包设置的ip),其它节点 IP 可变。
二、安装配置 mysql
2.1 上传 rpm 压缩包到 mysql 节点
将mysql5720_rpms.tar.gz和yl_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
-
启动 mysql 服务
bash
systemctl start mysqld -
修改初始密码
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';" -
修改配置文件
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 -
创建日志目录并授权
bash
# 创建日志目录 sudo mkdir -p /var/log/mysql # 设置目录所有者为mysql用户 sudo chown -R mysql:mysql /var/log/mysql -
重启 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
-
安装依赖包
bash
yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel unzip -
创建运行用户和组
bash
useradd -M -s /sbin/nologin nginx -
编译安装 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 -
配置系统命令和服务
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 配置文件
-
备份原有配置文件
bash
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak -
修改配置文件
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; } } -
重启 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 | 服务 |
|---|---|---|
| elk | 172.16.0.13 | ES+logstash |
| mysql | 172.16.0.100 | mysql+filebeat |
| nginx | 172.16.0.10 | nginx+filebeat+kibana |
| java | 172.16.0.11 | openjdk+filebeat |
6.1.2 filebeat 端口规划
| 节点名称 | IP | 端口 |
|---|---|---|
| mysql | 172.16.0.100 | 6000 |
| nginx | 172.16.0.10 | 6001 |
| java | 172.16.0.11 | 6002 |
6.2 在 elk 节点安装 ES 和 logstash
6.2.1 安装 ES(Elasticsearch)
-
安装 java 环境
bash
yum -y install java java -version -
上传并安装 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 -
修改 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 服务默认监听端口)
- 第 23 行:
-
创建数据目录并授权
bash
mkdir -p /data/elk_data chown elasticsearch:elasticsearch /data/elk_data/ -
启动 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
-
上传并安装 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/ -
测试 logstash
bash
# 输入采用标准输入,输出采用标准输出(类似管道) logstash -e 'input { stdin{} } output { stdout{} }'输入
www.baidu.com并回车,会输出包含host、@timestamp、message等字段的日志信息,说明 logstash 测试正常。

6.3 nginx 节点安装 kibana
-
上传并安装 kibana rpm 包
bash
# 上传kibana-6.6.1-x86_64.rpm到/opt目录 cd /opt rpm -ivh kibana-6.6.1-x86_64.rpm -
修改 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 索引)
- 第 2 行:
-
启动 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: log
enabled: true
paths:
- /var/log/mysql/mysql_error.log
fields:
service_name: mysql_error_log
log_type: mysql_error
fields_under_root: true
- type: log
enabled: true
paths:
- /var/log/mysql/mysql_slow.log
fields:
service_name: mysql_slow_log
log_type: mysql_slow
fields_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 对应管道
-
创建 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 } } -
修改 logstash 管道配置文件
bash
vim /etc/logstash/pipelines.yml注释默认配置,添加 mysql_log 管道:
yaml
#- pipeline.id: main # path.config: "/etc/logstash/conf.d/*.conf" - pipeline.id: mysql_log path.config: "/etc/logstash/conf.d/mysql_log.conf" -
启动 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: log
enabled: true
paths:
- /usr/local/nginx/logs/access.log
fields:
service_name: nginx_access_log
log_type: nginx_access
fields_under_root: true
- type: log
enabled: true
paths:
- /usr/local/nginx/logs/error.log
fields:
service_name: nginx_error_log
log_type: nginx_error
fields_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 对应管道
-
创建 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 } } -
修改 logstash 管道配置文件
bash
vim /etc/logstash/pipelines.yml添加 nginx_log 管道:
yaml
- pipeline.id: mysql_log path.config: "/etc/logstash/conf.d/mysql_log.conf" - pipeline.id: nginx_log path.config: "/etc/logstash/conf.d/nginx_log.conf" -
启动 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: log
enabled: true
paths:
- /opt/logs/yulin-*.log
fields:
service_name: yulin_log
log_type: java_business
fields_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 对应管道
-
创建 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 } } -
修改 logstash 管道配置文件
bash
vim /etc/logstash/pipelines.yml添加 java_log 管道:
yaml
- pipeline.id: mysql_log path.config: "/etc/logstash/conf.d/mysql_log.conf" - pipeline.id: nginx_log path.config: "/etc/logstash/conf.d/nginx_log.conf" - pipeline.id: java_log path.config: "/etc/logstash/conf.d/java_log.conf" -
启动 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模块创建日志可视化图表。

