目录
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"