基于Prometheus监控的nginx负载均衡Web集群

目录

步骤

1.集群IP地址规划

2.创建NFS服务器为所有的web服务器提供相同Web数据

2.使用Nginx做负载均衡

3.搭建dns服务器

4.keepalived实现双VIP负载均衡高可用

5.使用Prometheus对web集群的监控,结合Grafana进行数据展示


项目环境 :CentOS7(8台,1核2G),keepalived(2.1.5),Prometheus(2.29.1),Grafana(8.1.2),Nginx(1.14.1)等
项目描述: 本项目是一个利用Prometheus+keepalived实现双VIP高可用的Nginx负载均衡的Web服务器集群的监控项目。使 用keepalived的双vip实现HA,nginx做负载均衡器,nfs服务保证数据一致性,通过Prometheus+Grafana的方式实现对 Web服务器的监控
项目步骤
1.规划整个项目的拓扑结构和项目的思维导图
2.创建NFS服务服务器为所有的节点提供相同Web数据,保证数据一致性
3.使用两台服务器做Nginx+keepalived双VIP负载均衡器,实现高可用防止单点故障
4.在客户机上使用ab压力测试工具进行压力测试
5.搭建DNS服务器,对web集群做域名解析
6.使用Prometheus实现对集群性能的监控,结合Grafana成图工具进行数据展示

网络拓扑图

步骤

1.集群IP地址规划

test  :192.168.127.132            测试服务器

web1  :192.168.127.129         nginx-web1服务器

web2  :192.168.127.130         nginx-web2服务器

nfs-server:192.168.127.135          nfs服务器

load-balancer1  :192.168.127.128           nginx负载均衡服务器(master)

load-balancer2  :192.168.127.133           nginx负载均衡服务器(backup)

prometheus  :192.168.127.138             prometheus监控服务器

dns:192.168.127.131             dns服务器

2.创建NFS服务器为所有的web服务器提供相同Web数据

        1.安装和启动nfs服务

[root@nfs-server ~]# yum install nfs-utils -y
[root@nfs-server ~]# service nfs-server start
Redirecting to /bin/systemctl start nfs-server.service
[root@nfs-server ~]#

        2.编辑/etc/exports需要共享的目录,权限和网段。

[root@nfs-server /]# vim /etc/exports
[root@nfs-server /]# cat /etc/exports
/web 192.168.127.0/24(rw,all_squash,sync)
[root@nfs-server /]#

        3.刷新输出文件目录

[root@nfs-server /]# exportfs -rv
exporting 192.168.127.0/24:/web
[root@nfs-server /]#

        4.关闭防火墙和selinux

[root@nfs-server download]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@nfs-server download]# systemctl disable firewalld
[root@nfs-server download]# getenforce
Disabled
[root@nfs-server download]#

        5.在客户机上安装nfs服务并挂载nfs服务器共享的目录

[root@web1 lianxi]# yum install nfs-utils -y
[root@web1 lianxi]# mount 192.168.127.135:/web /usr/local/zhanghy99/html
[root@web1 lianxi]# cd /usr/local/scnginx/html
[root@web1 html]# ls
index.html
[root@web1 html]#

2.使用Nginx做负载均衡

        1.以load-balancer1为例,编译nginx安装脚本,并运行脚本

[root@load-balancer1 ~]# vim onekey_install_nginx.sh

[root@load-balancer1 ~]# cat onekey_install_nginx.sh
#!/bin/bash

#解决软件的依赖关系,需要安装的软件包
yum install epel-release -y
yum -y install unzip zip zlib zlib-devel openssl openssl-devel pcre pcre-devel gcc gcc-c++ autoconf automake make psmisc net-tools lsof vim  wget -y

#新建zhanghaoyang用户和组
id  zhanghy || useradd zhanghy -s /sbin/nologin

#下载nginx软件
mkdir  /zhanghy99 -p
cd /zhanghy99
wget  https://nginx.org/download/nginx-1.21.4.tar.gz

#解压软件
tar xf nginx-1.21.4.tar.gz 
#进入解压后的文件夹
cd nginx-1.21.4

#编译前的配置
./configure --prefix=/usr/local/zhanghy99  --user=zhanghy --group=zhanghy  --with-http_ssl_module   --with-threads  --with-http_v2_module  --with-http_stub_status_module  --with-stream  
#如果上面的编译前的配置失败,直接退出脚本
if (( $? != 0));then
	exit
fi
#编译,启动2个进程去编译,这样速度快
make -j 2
#编译安装
make  install

#修改PATH变量
echo  "PATH=$PATH:/usr/local/zhanghy99/sbin" >>/root/.bashrc
#firewalld and selinux

#stop firewall和设置下次开机不启动firewalld
service firewalld stop
systemctl disable firewalld

#临时停止selinux和永久停止selinux
setenforce 0
sed  -i '/^SELINUX=/ s/enforcing/disabled/' /etc/selinux/config

#开机启动
chmod +x /etc/rc.d/rc.local
echo  "/usr/local/zhanghy99/sbin/nginx"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值