首页 > 系统相关 >nginx集群综合项目

nginx集群综合项目

时间:2023-02-23 22:32:02浏览次数:37  
标签:yum nginx zabbix 集群 usr mysql 服务器 综合

需求分析

(1)拆分集群,分别配置,使其成为一个高性能的环境

(2)响应服务器nginx搭建

(3)nginx反向代理后端服务器

(4)通过KeepAlived实现心跳检测、负载均衡、响应服务器的冗余(高可用)

(5)Tomcat对接mysql实现动态网页

(6)数据库主从复制、部署代理服务器atlas实现数据库的读写分离

(7)存储数据的磁盘使用lvm实现动态磁盘

(8)Tomcat部署多个应用并实现对应的域名解析

(9)运维人员可以通过OpenVPN接入Zabbix、Jumpserver进行监控管理

(10)操作系统安全加固

nginx集群综合项目_nginx

2、需求实现及详情配置

IP分配:

IP

角色

192.168.10.100

VIP

192.168.10.10

Nginx-1

192.168.10.20

Nginx-2

192.168.10.11

Tomcat-1

192.168.10.12

Tomcat-2

192.168.10.30

Mysql-1

192.168.10.31

Mysql-2

192.168.10.40

atlas

192.168.10.50

zabbbix

192.168.10.60

jump-server

1、nginx

(1)官网下载nginx压缩包:nginx.org

nginx集群综合项目_服务器_02

(2)ssh连接到crt、然后通过lrzsz中的rz上传压缩包,之后tar解压并且指定解压目录为/usr/src

tar zxf nginx-1.16.1.tar.gz -C /usr/src

(3)创建用户实现管控分离(单独进程-单独用户)方便运维

useradd -M -s /sbin/nologin nginx
-M 不配置宿主目录 -s 配置shell环境

(4)配置(configure)

针对当前系统、软件环境配置安装参数
cd /usr/src/nginx-1.16.1
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
--with-http_stub_status_module --with-http_ssl_module
--prefix 定义安装路径
--user --group 定义运行进程的用户及组
--with-http_stud_status 初步监控nginx的状态,如并发连接,请求数量
--with-http_ssl_module 实现https

(5)编译并安装(make && make install)

make 将源码转换为二进制可执行程序
make install 将编译好的程序文件复制到系统

(6)软链接实现命令便捷化(将nginx目录下的命令链接到linux的环境变量)

ln -s /usr/local/nginx/sbin /usr/local/sbin/

(7)防火墙配置

如果防火墙是开着的,需要放行80端口
firewall-cmd --permanent --add-port=80/tcp //放行端口
systemctl restart firewalld //重启使配置生效
firewall-cmd --list-all //查看配置
这里默认关掉防火墙
setenforce()
vim /etc/selinux/config 修改SELINEX为disabled
getenforce
nginx //启动服务
ss -lnt //查看端口是否启用
浏览器访问192.168.10.10

(8)上传html文件到nginx的网站根目录下

cd /usr/local/nginx/html
rz
访问网站

nginx集群综合项目_nginx_03


(9)为方便运维,将nginx加入系统服务脚本

vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $PIDFile
ExecStop=/usr/bin/kill -s QUIT $
PrivateTmp=true
[Install]
WantedBy=multi-user.target
//:wq保存退出

systemctl restart nginx //测试配置是否成功

注:无法启动的话可能是端口占用的问题,可以通过ps aux | grep nginx 找到pid号,使用kill pid号的命令用于卡死时杀死进程来中断进程

(10)进入配置文件修改进程数、添加状态模块监控nginx并发数、连接数

查看CPU数:
cat /proc/cpuinfo | grep "processor"| wc -l
worker_connections:最大并发数,2的倍数
添加监控模块配置
Location /status {
stub_status on; //打开模块
access_log off; //状态监控不需要日志记录
}
systemctl restart nginx

访问:192.168.10.10/status  //打开监控,多开浏览器模拟多并发

nginx集群综合项目_服务器_04

2、nginx反向代理后端服务器

(1)克隆虚拟机作为后端服务器并配置网络环境以及初始化

进入网卡配置,配置服务器ip与网关使其能访问外网

vim /etc/sysconfig/network-scripts/ifcfg-ens33

nginx集群综合项目_服务器_05

配置关闭防火墙,流程与配置nginx服务器相同

(2)上传java包,tar解压到/usr/src目录下

cd /usr/src
rz
tar zxf java-demo.tar.gz

nginx集群综合项目_服务器_06

(3)编译java源代码包

清理仓库,使用在线仓库,下载maven:
yum clean all
yum repolist
配置源:
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
yum install maven
使用命令跳过测试进行编译,因为测试比较耗时,编译过程会下载依赖
mvn package -Dmaven.test.skip=true
编译之后会生成一个target目录,目录下有.war的包(没有做前后端分离)


(4)配置java项目容器TomCat

首先通过java -version查询是否安装java所需jdk
查询结果:
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
yum install -y java验证是否安装
下载TomCat包,下载时需要忽略检查,下载后解包
wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.76/bin/apache-tomcat-8.5.76.tar.gz --no-check-certificate
删除/usr/src/apache-tomcat-8.5.76/webapps/ROOT目录下的内容
rm -rf /usr/src/apache-tomcat-8.5.76/webapps/ROOT/*
将target目录下的ly-simple-tomcat-0.0.1-SNAPSHOT.war包克隆到/webapps/ROOT下,也就是网站的根目录下
cp ly-simple-tomcat-0.0.1-SNAPSHOT.war /usr/src/apache-tomcat-8.5.76/webapps/ROOT
在/usr/src/apache-tomcat-8.5.76/bin路径下执行启动,关闭等命令,也可以软链接
startup.sh//启动
shutdown.sh //停止
daemon.sh//重载
启动后查看日志:
startup.sh
cd /usr/src/apache-tomcat-8.5.76/logs
tail catalina.2022-03-16.log

nginx集群综合项目_nginx_07

注:访问http://192.168.10.11:8080显示404是因为版本兼容问题,可以手动解开war包,重启服务

nginx集群综合项目_服务器_08


(5)关联nginx和TomCat实现反向代理,并且增加TomCat机实现负载均衡

主配置文件http下配置反向代理

upstream mytomcat{
server 192.168.10.11:8080;
}
location / {
proxy_pass http://mytomcat;
}

之后访问nginx的ip则会被代理到tomcat服务器上

nginx集群综合项目_服务器_09

克隆tomcat机更改ip配置并与nginx关联实现负载

nginx集群综合项目_服务器_10

也可以通过在地址后面添加权重来调度流量走向以及分布,也可以实现灰度测试(产品或应用正式发布前,选择特定人群试用,逐步扩大其试用者数量,以便及时发现和纠正其中的问题,由“灰”到“黑”,也是版本较大的更迭时先进行小范围的尝试,再慢慢放量直至全部覆盖)

来进行版本的更新。

因为代理是轮询机制,所以通过追踪两台代理服务器的访问日志文件可以看到nginx响应机发来的代理请求

nginx集群综合项目_tomcat_11

nginx集群综合项目_nginx_12

3、KeepAlived实现高可用

(1)实现原理

由于早起的LVS软件无法对LVS节点进行健康检测、针对这项缺陷,KeepAlived软件就诞生了。

KeepAlived可以通过在自身KeepAlived.conf配置文件中配置LVS的节点IP和相关参数实现对LVS的直接管理,当节点故障时,KeepAlived会自动将失效的节点服务器从工作队列移除并且将请求转交到正常的节点上,当高优先级的节点修复后,再将请求转交到其上。

KeepAlived采用的其实就是虚拟冗余协议VRRP,两台主机安装配置KeepAlive后,会生成一个虚拟的vip地址供用户访问,因为该地址会因机器的故障状态进行漂移,所以称其为漂移地址,请求会交到MASTER机上,BACKUP机不做工作,但是会一直监听MASTER机发送的心跳报文,从而确认其是否存活,当其停止发送时,BACKUO会接管请求进入工作模式知道MASTER机修复后抢占请求(通过优先级的比对),这种机制响应时间较短,所以用户几乎无法感受到异常。

(2)KeepAlived安装与配置

首先通过本地yum源安装KeepAlived:
yum install -y keepalived
配置为开机自启
Systemctl enable keepalived
通过rpm -qa查询是否安装成功
rpm -qa keepalived
查询结果:
keepalived-1.3.5-6.el7.x86_64
进入主配置文件进行配置:

global_defs {//全局配置
router_id HA_TEST_R1//服务器主机名
}
#vrrp_script check_nginx {
# script "/etc/keepalived/check_nginx.sh"
# interval 2
# weight 2
#}
vrrp_instance VI_1 {//定义实例
state MASTER//主服务器
interface ens33//当前集群和其他主机通信的网卡
virtual_router_id 45//虚拟路由器ip号,主备一致
priority 120//优先级,决定抢占
advert_int 1//检测时延
authentication {//主备通信验证
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {//虚拟ip
192.168.10.100
}
# track_script {
# check_nginx
# }
}

查看ip可以看到虚拟ip

nginx集群综合项目_服务器_13

通过访问虚拟ip发现可以访问到后端服务器

nginx集群综合项目_服务器_14

克隆主服务器一台作为备服务器并修改ip地址

nginx集群综合项目_tomcat_15

备份主配置文件之后进行修改,主要修改角色状态与优先级

nginx集群综合项目_nginx_16

global_defs {
router_id HA_TEST_R1
}
#vrrp_script check_nginx {
# script "/etc/keepalived/check_nginx.sh"
# interval 2
# weight 2
#}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 45
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.10.100
}
# track_script {
# check_nginx
# }
}

(3)模拟故障以及效果检查

停掉主服务器的服务,查看备服务器的ip

nginx集群综合项目_tomcat_17

可以看到漂移地址已经飘到了备服务器上


(4)脚本追踪

虽然说服务器故障会自动切换到备服务器,但真实情况很多时候设备是不容易坏掉的,更容易故障的是nginx这个服务,所以要编写shell脚本来对nginx进行监控。

脚本内容

#!/bin/bash
A=`ps -C nginx --no-header | wc -l`//查询nginx进程数
if [ $A -eq 0 ];then//如果等于零
让我开一哈你的nginx \e[0m"
systemctl restart nginx//启动nginx
sleep 3//间隔三秒后
if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
systemctl stop keepalived//关闭keepalived
哦豁,服务器已故障\e[0m"
fi
fi

赋予脚本可执行权限:
chmod 754 check_nginx.sh

之后在keepalived主配置文件进行脚本追踪,间隔两秒一次

vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2 //间隔两秒执行一次
}
track_script {
check_nginx
}
//vrrp_script 用户自定义资源监控脚本
//track_script 调用脚本

注:如果脚本没有被执行,可以查看脚本文件配置权限有没有可执行权,如果都没问题的话有可能是防火墙没有关。

最后重启keepalived服务,手动关闭nginx之后查询nginx的进程数验证脚本,可以看出停掉服务后,脚本又帮我们启动了nginx服务,所以查询到的进程不变

nginx集群综合项目_tomcat_18

如果在两秒内再次查询或者调低脚本检测频率则可以发现停掉nginx后其进程变为

nginx集群综合项目_服务器_19

现在开始只要nginx故障,脚本运行后首先会重启一次nginx,如果成功则主服务器仍旧可用,如果失败则关闭主服务器,备服务器进行工作。

4、tomcat对接数据库实现动态网页(实现前后端交互)

(1)数据库搭建

yum下载mariadb客户端以及服务器并启动

yum install -y mariadb mariadb-server
syetemctl start mariadb

登录mysql,默认没有密码,修改mysql密码

mysqladmin -u root password ‘123456’
mysql -u root -p

(2)练习数据库基础增删查改命令

show databases;  //查看数据库

nginx集群综合项目_服务器_20

create database school;  //创建数据库

nginx集群综合项目_tomcat_21

use school  //进入数据库

nginx集群综合项目_服务器_22

create table student(stu_id INT,stu_name VARCHAR(100) NOT NULL);  //创建数据表并指定列类型stu_id为整型,stu_name为长字符串型

nginx集群综合项目_服务器_23

insert into student values(1,’zhangsan’);  //插入数据
show create table student; //查询创建的数据表
select * from student; //查询数据

nginx集群综合项目_服务器_24

delete from student where stu_id=1; //删除数据

nginx集群综合项目_nginx_25

drop table student;  //删除数据表

nginx集群综合项目_tomcat_26

drop database school;  //删除数据库

nginx集群综合项目_nginx_27

mysqldump -u root -p school student > /tmp/school_student.sql //备份数据库

nginx集群综合项目_nginx_28

备份好之后删除数据库school,之后source school_student.sql;

报错发现无法还原数据:发现是没有创建数据库school,因为只备份了数据表,需要数据库school才能进行还原,所以我们要先创建一个名为school的数据库

nginx集群综合项目_服务器_29

(3)前后端对接

首先将之前前端java目录下db目录下的sql文件通过远程复制复制到mysql服务器上的/root目录下

scp /usr/src/java-demo/db/tables_ly_tomcat.sql [email protected]:/root

因为这个文件所属库为test所以直接进入到test库通过source添加数据表

nginx集群综合项目_服务器_30

修改java源码包中的配置文件,修改调用的数据库ip、库名、用户密码等

vim /usr/src/java-demo/src/main/resources

nginx集群综合项目_nginx_31

重新打包:

mvn package -Dmaven.test.skip=true

删除/usr/src/apache-tomcat-8.5.76/webapps/ROOT下的所有内容然后将刚刚打包的war包cp到当前目录下,同样删除tomcat2下的所有内容并且将war包远程复制到汤姆猫2号的ROOT下

cd /usr/src/apache-tomcat-8.5.76/webapps/ROOT
rm -rf ./*

nginx集群综合项目_tomcat_32

注:访问网页添加学生失败,查看日志返回500和304的状态码

有可能是没有权限,返回到数据库服务器进入mysql查询

 grant all on *.* to 'root'@'%' identified by '123456';

为root所有库所有表在任何主机上赋予所有权限

再次添加并且查询可以看到添加成功:

nginx集群综合项目_tomcat_33

5、数据库主从复制与读写分离

(1)主从复制

1)主从复制的原理

企业网络中如果后端数据库服务器只有一台的话,可能会因为单点故障导致网页瘫痪,并且一台服务器无法处理大量的并发数据请求,如果数据丢失更是会导致无法预料的后果,故此应用主从复制使得数据同步,后面再通过读写分离提升并发负载能力。

工作原理:

当从服务器连接到主服务器时,主服务器会开启一个线程将自己的binlog其中包括relay log文件发送到从服务器,从服务器启动后,从服务器上会开启I/O、SQL两个线程,I/O线程用于拉取主服务器二进制日志内容,写入到Relay log中,然后通过SQL线程进行读取写入本地。

2)时间同步

主节点搭建时间同步服务器,通过安装ntp更改其配置文件来实现时间同步

主:

yum install -y ntp
vim /etc/ntp.conf
删除server 0-3
添加server 127.127.1.0
fudge 127.127.1.0 startum 8
从:
yum install -y ntpdate
ntpdate 192.168.10.30

nginx集群综合项目_服务器_34

3)主服务器配置

因为数据库有之前的内容所以要先进行一下数据库备份,并将其传输到从服务器用来同步

mysqldump -u root -p test > /tmp/mybak.sql
scp /tmp/mybak.sql [email protected]:/root

进入主服务器配置文件添加配置,之后重启服务使其生效

vim /etc/my.cnf
server_id=66 //做了主从复制所以需要通过id识别
log_bin=master_bin //开启二进制日志
log_slave_updates=true //允许从主服务器中读取日志

nginx集群综合项目_nginx_35

授权允许从服务器进行日志拷贝之后刷新

mysql -u root -p
grant replication slave on *.* to ‘myslave’@’192.168.10.%’identified by ‘123456’; //授权myslave用户密码123456可以拷贝
flush privileges;//刷新

nginx集群综合项目_服务器_36

查看当前服务器状态:

show master status;

nginx集群综合项目_nginx_37


4)从服务器配置

进入主配置文件添加内容并重启服务使其生效

vim /etc/my.cnf
server_id=55 //辨识id
relay_log=relay_log_bin //定义relay_log中继日志
relay_log_index=slave_relay_bin.index //日志索引,提高查询效率

启动同步

change master to   
master_host='192.168.10.30',master_user='myslave',master_password='123456'
,master_log_file='master_bin.000001',master_log_pos=476;
start slave;
//使用myslave用户,密码为123456(被主服务器授权)同步主服务器日志(前面查询所得)

注:由于本人的不正当操作导致了如下报错,搜索后得知是该服务器之前做过主从复制,中途修改过my.cnf配置文件,重启mariadb服务后,binlog和relay_log文件名已经改变所以无法从之前的relay_log复制了

解决方法:reset slave;   //重置

nginx集群综合项目_服务器_38

启动后查询线程是否开启:

nginx集群综合项目_nginx_39

可以看到双线程已启动,接下来可以进行验证啦

结果验证:

在主服务器添加新库test1,在从服务器查看:

主:

nginx集群综合项目_tomcat_40

从:

nginx集群综合项目_nginx_41


(2)读写分离

1)读写分离的安装与配置

 克隆服务器作为atlas代理服务器,初始化配置并通过ssh远程连接

上传rpm包并且安装,默认安装在/usr/local下

rz Atlas-2.2.1.el6.x86_64.rpm
rpm -ivh Atlas-2.2.1.el6.x86_64.rpm

进入到/usr/local/mysql-proxy/下可以看到bin、log、conf、lib,分别是可执行命令、日志文件、配置文件以及一些依赖的文件。

首先要在主从库上对altas进行授权

grant all on *.* to test@’192.168.10.%’identified by ‘123.com’

接着进入到atlas的配置文件进行配置,修改主从库的ip以及端口、 用户名以及加密之后的密码、如果要通过前端来对接代理则需要修改altas监听的工作接口ip和端口。

nginx集群综合项目_服务器_42

nginx集群综合项目_tomcat_43

启动altas服务:

/usr/local/mysql-proxy/bin/mysql-proxyd/test start
2)验证是否分离

在代理主机上安装mariadb客户端用来进行验证。

yum install -y mariadb

使用管理用户和密码登录数据库

mysql -P2345 -uuser -ppwd -h127.0.0.1

输入show databases;提示输入select * from help来查询命令,通过select * from backends来查询后端服务器

nginx集群综合项目_服务器_44

登录工作用户来进行读写分离验证,通过show databases;查看库

nginx集群综合项目_tomcat_45

在从库添加新库,查看主库,可以看出数据无法回流到主库

从:

nginx集群综合项目_tomcat_46

主:

nginx集群综合项目_tomcat_47

在主库添加数据,查看从库,可以看到数据;

主:

nginx集群综合项目_tomcat_48

从:

nginx集群综合项目_tomcat_49

3)修改配置重新打包

因为代理服务器atlas的加入,所以需要修改前端配置文件中的资源定位信息url以及数据库登入的用户和密码,然后重新打包解包

nginx集群综合项目_服务器_50

配置之后如果还是与网页交互,则有可能是tomcat与mysql对接不成功,重新将java中db下的.sql包远程复制过去进行导入即可

6、Tomcat服务器部署LAMP服务分别做DNS解析

(1)LAMP环境搭建

根据文档,注意修改其中部分配置文件,比如添加mysql到系统服务时,PIDfile需要设置为当前虚拟机的主机名,分别部署apache、mysql、php,环境搭建之后,部署skyuc服务。

(2)修改apache的主配置中的网页存放目录

修改目录使得访问时默认网页为skyuc

vim /usr/local/httpd/conf/httpd.conf

nginx集群综合项目_服务器_51

(3)修改nginx主配置文件分别对两个网站做域名对应关系

vim /usr/local/nginx/conf/nginx.conf

nginx集群综合项目_tomcat_52

nginx集群综合项目_服务器_53

(4)结果验证

通过www.Uskyuc.com可以访问到skyuc网页

nginx集群综合项目_服务器_54

通过www.stuadmin.com可以访问到java网页

nginx集群综合项目_tomcat_55

7、Zabbix、Jumpserver监控管理

(1)Zabbix部署

1)Zabbix需要使用LAMP平台实现监控服务的部署使用,因此需要安装MySQL、HTTP、PHP等主要软件

下载wget工具然后下载想要的源

yum install -y wget
rpm -ivh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
//mysql 官方源文件
wget http://mirrors.aliyun.com/repo/Centos-7.repo //阿里云的源
yum install -y mysql-server mysql httpd php

启动mysqld并且设为自启

nginx集群综合项目_nginx_56

mysqladmin -u root -p password  //设置mysql的密码,默认为空

为zabbix服务创建存放数据的数据库及用户名密码,库名为"zabbix",用户名为 "zabbix",密码为"password":

mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'Aa123456';
2)zabbix服务安装
rpm 
-ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
// 下载zabbix官方源文件

yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent //插件

导入初始架构和数据,系统将提示你输入新创建的密码。密码为Aa123456
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix

为zabbix配置数据库
vim /etc/zabbix/zabbix_server.conf
DBName=zabbix //修改,指定数据库名称
DBUser=zabbix //修改,指定数据库用户名
DBPassword=Aa123456 //去掉#,指定数据库密码

修改系统时区以及中文字符集以防乱码

nginx集群综合项目_服务器_57

上传字符集给权限之后删除默认字符集

nginx集群综合项目_服务器_58

3)登录zabbix

使用之前那配置的数据库名称,用户名称以及密码访问

192.168.10.50/zabbix

nginx集群综合项目_tomcat_59

nginx集群综合项目_服务器_60


登录名称为Admin、密码为zabbix

nginx集群综合项目_nginx_61

登录成功界面:

nginx集群综合项目_nginx_62

修改网页语言:

nginx集群综合项目_服务器_63


4)监控linux服务器
被监控机上传zabbix-agent安装并修改配置文件
rpm -ivh zabbix-agent-3.2.6-1.el7.x86_64.rpm //rpm安装
rpm -qa zabbix-agent//查询是否安装
cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak
//备份配置文件
vim /etc/zabbix/zabbix_agentd.conf//进入配置文件
Server=192.168.10.50 //被监控端等待该监控服务器请求监控数据
ServerActive=192.168.10.50 //被监控端主动提交数据到此服务器
Hostname=centoS201 //一般为主机名,zabbix添加主机时也用这个
systemctl start zabbix-agent //启动服务
systemctl enable zabbix-agent //设为开机自启
netstat -anpt | grep agent //查询zabbix(10050)服务是否开启

nginx集群综合项目_服务器_64

在zabbix管理界面中添加linux主机

nginx集群综合项目_服务器_65

自定义监控项来监控服务存活

首先在客户机的agent配置项添加键值
vim /etc/zabbix/zabbix_agentd.conf //进入agent配置项
UserParameter=web_status,ps -C nginx --no-header | wc -l//添加键值
Systemctl restart zabbix-agent重启服务
之后在zabbix服务器上安装工具检测监控信息
yum install -y zabbix-get
zabbix_get -s 192.168.10.10 -k 'web_status'
可以看到与nginx有关的进程有三个

nginx集群综合项目_nginx_66

在zabbix的web界面添加客户机的监控项

nginx集群综合项目_tomcat_67

添加图形方便监测

nginx集群综合项目_tomcat_68

查看监测中的图形项

因为之前配置keepalived的时候写了脚本用来实现nginx的自愈功能,所以可以看到进程恢复的过程如下图

nginx集群综合项目_服务器_69

可以停掉keepalive的服务用来验证

nginx集群综合项目_nginx_70

添加触发器实现报警

nginx集群综合项目_tomcat_71

验证结果

nginx集群综合项目_nginx_72

可以设置声音告警

nginx集群综合项目_nginx_73

(2)JumpServer服务部署

1)准备基础环境

安装jumpserver2.9.0版本需要Centos 7.9并且需要两核cpu、而且需要联网,首先要通过wget工具安装阿里云开源镜像的Centos7的镜像

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all //yum会将下载下来的文件缓存到本机硬盘缓存中,所以先、清除所有缓存
yum makecache //把服务器的包信息下载到本地进行缓存
yum -y update //升级所有包的同时也升级软件和系统内核upgrade只升级包
cat /etc/redhat-release //查询centos内核版本
2)安装jumpserver
yum install net-tools wget lrzsz yum-utils device-mapper-persistent-data lvm2 -y  //安装依赖
yum -y install docker-ce docker-compose.noarch//安装docker的依赖
wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo//安装阿里云镜像
yum makecache fast //快速缓存
也可以本地上传docker-ce、jumpserver包,解包进入目录后安装
tar zxf jumpserver-installer-v2.9.0.tar.gz //解包
cd jumpserver-installer-v2.9.0///进入目录
./jmsctl.sh install//安装

注:命令可以会因为wps格式原因执行失败,失败手敲即可,一定要装好依赖,不然会报环境异常的错误

nginx集群综合项目_服务器_74

默认回车即可

安装完成后可以看到一些常用的命令以及连接方式

nginx集群综合项目_服务器_75


3)运行堡垒机

全部为done则启动成功,失败的话可以重新安装在启动试试

nginx集群综合项目_服务器_76

接下来就可以通过提示来进行登录啦,这里使用web8080端口登录

nginx集群综合项目_服务器_77

4)监控用户

首先创建用于登录堡垒机的用户,也可以先创建组

nginx集群综合项目_tomcat_78

创建用于管理资产的管理用户以及使用的系统用户

nginx集群综合项目_服务器_79

nginx集群综合项目_tomcat_80

创建资产

nginx集群综合项目_tomcat_81

nginx集群综合项目_服务器_82

资产授权

nginx集群综合项目_服务器_83

登录堡垒机用户并且进入资产

nginx集群综合项目_tomcat_84

nginx集群综合项目_nginx_85

管理员可以检测员工上线与操作

nginx集群综合项目_tomcat_86

nginx集群综合项目_nginx_87

8、操作系统安全加固

1)编写shell脚本进行安全加固

vim system_safe.sh   //创建脚本文档

nginx集群综合项目_服务器_88

nginx集群综合项目_tomcat_89

2)运行脚本进行验证

nginx集群综合项目_nginx_90

nginx集群综合项目_nginx_91

nginx集群综合项目_服务器_92

nginx集群综合项目_nginx_93

3)防火墙策略

在开启防火墙的时候可以访问到服务并且zabbix可以监控到开启防火墙的服务器

由于命令较长所以为其使用别名,而别名有时限,所以写进开机自启文件中

vim /etc/profile

nginx集群综合项目_服务器_94

重启后通过alias查询是否别名成功

nginx集群综合项目_服务器_95

首先打开nginx的防火墙,然后验证是否开启

nginx集群综合项目_服务器_96

nginx集群综合项目_nginx_97

可以看到流量无法通行

那么接下来我们对防火墙配置策略,因为nginx是80端口,而zabbix服务器和客户端分别使用10050和10051端口,所以我们使其通行

nginx集群综合项目_tomcat_98

重启防火墙后查看配置是否成功

nginx集群综合项目_服务器_99

然后重新访问网页和服务器验证结果

nginx集群综合项目_tomcat_100

nginx集群综合项目_nginx_101

可以看到策略成功

最后设置防火墙为开机自启

nginx集群综合项目_nginx_102

标签:yum,nginx,zabbix,集群,usr,mysql,服务器,综合
From: https://blog.51cto.com/syjblog/6082004

相关文章

  • 个人随记 —— 不同 VPC 下 EKS 跨集群服务访问
    背景在本文的问题前,需要对AWS的产品进行解释:VPC:VirtualPrivateCloud,AWS在单region下提供的私有网络,每个VPC都拥有一个独立网段,并且和其他VPC进行完全的私网......
  • 基于tmpfs 的nginx cache 优化
    昨天简单说明了下基于tmpfs的nginxproxy_cache优化,今天整体说明下参考图  流程说明修改之前的对于nginx使用了多级处理,ingress(也是基于nignx,openresty),对于......
  • Kubernetes 集群调度
    一、调度约束   Kubernetes是通过List-Watch的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。   用户是通过kubectl根据配置文件,......
  • Nginx地址重写功能
    Nginx地址重写功能Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件代理服务器,在BSD-like协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在......
  • Docker部署RocketMQ集群
    一、概述ApacheRocketMQ是阿里开源的一款高性能、高吞吐量、队列模型的消息中间件的分布式消息中间件。关于RocketMQ集群架构的详细介绍,请参考链接:https://blog.csdn.ne......
  • 05. Kubernetes - 集群安装(二进制)
    安装准备区别于使用kubeadm部署集群时所有核心组件都托管在集群上。二进制安装则采用守护进程的方式直接将各个组件运行在宿主机,生产环境更为推荐。服务还是那些,只需要......
  • 华为认证Datacom 综合拓扑案例
    拓扑图题目要求实验要求:1、PC1\PC2\PC3\PC4采用DHCP自动获取IP地址,SW5作为服务器,SW3和SW4作为中继创建地址池ippoolhuawei1和ippoolhuawei2,租期都为2天2、SW3与SW4做链......
  • K8s集群离线环境部署
    1.环境说明虚拟机工具:VirtualBox7.0虚拟机操作系统:Centos7(CentOS-7-x86_64-Minimal-2003.iso)虚拟机配置:2核CPU、2G内存、40G硬盘虚拟机网络模式:仅主机(Host-Only)网络,......
  • 启动 nginx 成功之后通过 IP 访问失败
    查看防火墙状态。输入命令:systemctlstatusfirewalld.service发现防火墙发开的,我们将防火墙关闭,输入命令:systemctlstopfirewalld.service然后在查看防火墙状态,发现是关......
  • Unbuntu源码下载编译nginx1.22.1
    下载nginx1.22.1源码nginx1.22.1使用ftp工具将下载的.tar.gz压缩包上传到服务器上。tar-zxvfnginx-1.22.1.tar.gz解压得到一个nginx-1.22.1文件夹。编译&安装官方......