目录
五.NFS存储服务器和ELK日志系统部署(在elk_nfs节点上操作)
5.安装Elasticsearch,logstash,kibana
3. 部署Tomcat环境(用于Java商城)(java8,tomcat8)
八.Redis高可用部署(在redis_01和redis_02上操作)
2. 创建数据库(在MySQL主节点上操作,比如db_01)
任务2代理层可以通过HAproxy基于ACL实现不同的域名访问到不同的应用上。
任务五部署ELK日志监控系统,收集所有服务器的日志信息。被监控端使用filebeat采集日志信息
一.项目需求
1.WEB服务器层部署nginx与php环境;tomcat环境;分别部署Discuz(基于PHP)和线上商城应用(基于java),业务应用的数据存储在nfs服务器中。
2.代理层可以通过HAproxy基于ACL实现不同的域名访问到不同的应用上。
3. Reids缓存层实现高可用。
4.MySQL数据库层实现高可用。
5.部署ELK日志监控系统,收集所有服务器的日志信息。被监控端使用filebeat采集日志信息
6.部署Zabbix监控系统,监控:系统、中间件等
7.部署Rsync备份系统,使得nfs服务的数据能够实时备份。
8.整套项目最终汇写成Ansible部署的Plavbook脚本,采用role角色方式实现自动化部署
二.主机清单与角色分配
| 主机名 | IP地址 | 角色 | 核心应用 |
|---|---|---|---|
| lb_01 | 192.168.71.111 | 主负载均衡调度器 | HAproxy + Keepalived |
| lb_02 | 192.168.71.112 | 备负载均衡调度器 | HAproxy + Keepalived |
| web_01 | 192.168.71.113 | 应用服务器1 | Nginx + PHP + Tomcat |
| web_02 | 192.168.71.114 | 应用服务器2 | Nginx + PHP + Tomcat |
| redis_01 | 192.168.71.115 | Redis主节点 | Redis-Server + Sentinel |
| redis_02 | 192.168.71.116 | Redis从节点 | Redis-Server + Sentinel |
| db_01 | 192.168.71.117 | MySQL主数据库 | MySQL-Server |
| db_02 | 192.168.71.118 | MySQL从数据库 | MySQL-Server |
| elk_nfs | 192.168.71.119 | 日志存储与共享 | NFS-Server + Elasticsearch + Logstash + Kibana |
| zab_ans | 192.168.71.120 | 监控与自动化中心 | Zabbix-Server + Ansible |
| rsy_bk | 192.168.71.121 | 备份服务器 | Rsync-Server + Inotify |
三.基础环境部署(所有节点)
系统初始化
# 设置主机名(以lb_01为例)
sudo hostnamectl set-hostname lb_01
# 配置静态IP(所有节点)
sudo tee /etc/sysconfig/network-scripts/ifcfg-ens33 <<EOF
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.71.111
PREFIX=24
GATEWAY=192.168.71.2
DNS1=8.8.8.8
EOF
# 全局hosts解析
sudo tee -a /etc/hosts <<EOF
192.168.71.111 lb_01
192.168.71.112 lb_02
192.168.71.113 web_01
192.168.71.114 web_02
192.168.71.115 redis_01
192.168.71.116 redis_02
192.168.71.117 db_01
192.168.71.118 db_02
192.168.71.119 elk_nfs
192.168.71.120 zab_ans
192.168.71.121 rsy_bk
EOF
安全加固与工具集
# 关闭防火墙(测试环境)
sudo systemctl stop firewalld && sudo systemctl disable firewalld
# 禁用SELinux
sudo setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 安装基础工具
sudo yum install -y epel-release
sudo yum install -y vim net-tools wget curl telnet chrony sshpass
# 时间同步
sudo systemctl enable chronyd && sudo systemctl start chronyd
sudo chronyc sources
内核参数优化(所有节点)
# 增加文件描述符限制
sudo tee -a /etc/security/limits.conf <<EOF
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
EOF
# 内核参数优化
sudo tee -a /etc/sysctl.conf <<EOF
net.core.somaxconn = 2048
net.ipv4.tcp_max_syn_backlog = 4096
vm.swappiness = 10
vm.overcommit_memory = 1
EOF
sudo sysctl -p
四.各主机需要安装的应用列表
| 主机类型 | 必需安装包 |
|---|---|
| 调度器 | haproxy keepalived |
| Web节点 | nginx php-fpm php-mysqlnd tomcat8 java-8 |
| Redis节点 | redis sentinel keepalived (VIP管理) |
| DB节点 | mysql-server |
| ELK/NFS | nfs-utils elasticsearch logstash kibana filebeat |
| 监控中心 | zabbix-server-mysql zabbix-web-mysql zabbix-agent2 ansible |
| 备份节点 | rsync inotify-tools |
根据项目需求,我们为每台主机规划需要安装的软件:
-
调度器 (lb_01, lb_02):
- HAProxy(用于负载均衡)
- Keepalived(用于VIP高可用)
-
应用服务器 (web_01, web_02):
- Nginx(Web服务器)
- PHP(运行Discuz)
- Tomcat(运行Java商城应用)
- 其他依赖:PHP扩展(如php-fpm, php-mysqlnd等)、JDK
-
Redis服务器 (redis_01, redis_02):
- Redis(缓存服务)
- Redis Sentinel(实现高可用)
- Keepalived(用于VIP漂移,可选,但需求中要求高可用,通常使用Sentinel+VIP方式)
-
数据库服务器 (db_01, db_02):
- MySQL(数据库服务)
- MHA或Galera Cluster相关软件(实现高可用)
- 如果使用MHA,则需要额外的管理节点(但这里没有单独节点,可能安装在db_01或db_02上,或者利用zas_00)
-
ELK与NFS服务器 (elk_nfs):
- NFS服务端(共享存储)
- Elasticsearch(日志存储)
- Logstash(日志处理)
- Kibana(日志展示)
- 同时,该主机需要配置为NFS服务器
-
Zabbix与Ansible服务器 (zas_00):
- Zabbix Server(监控服务)
- Zabbix Agent(自身监控)
- Ansible(自动化部署)
- 可能还需要安装Zabbix Web前端(需要Web服务器和数据库,数据库可以连接db_01/db_02)
-
Rsync备份服务器 (rbk_00):
- Rsync(备份服务)
- 可能还需要inotify-tools(用于实时备份,但通常安装在NFS服务器上触发)
五.NFS存储服务器和ELK日志系统部署(在elk_nfs节点上操作)
1.安装NFS服务
dnf install nfs-utils -y
2. 创建共享目录
mkdir -p /data/web_apps
chmod 777 /data/web_apps # 为了方便,赋予所有用户读写权限,生产环境需根据用户权限设置
3. 配置NFS共享
# 编辑/etc/exports文件
vim /etc/exports
# 添加以下内容,允许整个网段访问(根据你的网络情况,这里是192.168.71.0/24)
/data/web_apps 192.168.71.0/24(rw,sync,no_root_squash)
4. 启动NFS服务
systemctl enable --now nfs-server
exportfs -r # 重新加载配置
exportfs # 查看共享的目录

5.安装Elasticsearch,logstash,kibana
6.配置elk参数
# 配置Elasticsearch
vim /etc/elasticsearch/elasticsearch.yml
修改以下参数:
network.host: 0.0.0.0
cluster.name: my-cluster
node.name: elk_nfs
# 配置Kibana
vim /etc/kibana/kibana.yml
修改以下参数:
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://elk_nfs:9200"]
六.Web服务器部署(在web_01和web_02上操作)
1. 安装NFS客户端并挂载共享目录
# 安装NFS客户端工具
dnf install nfs-utils -y
# 创建本地挂载点
mkdir /mnt/web_apps
# 挂载NFS共享目录
mount -t nfs elk_nfs:/data/web_apps /mnt/web_apps
# 设置开机自动挂载
echo "elk_nfs:/data/web_apps /mnt/web_apps nfs defaults 0 0" >> /etc/fstab
# 查看挂载情况
df -h
2. 部署PHP环境(用于Discuz)
# 启用PHP模块
dnf module enable php:7.4 -y
# 安装PHP及相关扩展
dnf install php php-fpm php-mysqlnd php-gd php-mbstring -y
# 启动php-fpm服务
systemctl enable --now php-fpm
# 检查状态
systemctl status php-fpm
3. 部署Tomcat环境(用于Java商城)(java8,tomcat8)
# 安装OpenJDK和Tomcat
dnf install java tomcat -y
# 启动Tomcat服务
systemctl enable --now tomcat
# 检查状态
systemctl status tomcat
4.部署Nginx
# 安装Nginx
dnf install nginx -y
# 配置Nginx支持PHP和Tomcat
# 在/etc/nginx/conf.d/目录下创建两个配置文件:discuz.conf和shop.conf
# discuz.conf配置(用于Discuz)
cat &










最低0.47元/天 解锁文章
1601

被折叠的 条评论
为什么被折叠?



