公司的一个商城网站上线,巴拉巴拉
需求:Mysql数据库服务器,共享存储NFS,配置网站服务,部署监控服务zabbix,在kvw上虚拟机模拟上线环境
1.web服务器
- 两台web服务器(网站服务 web_33,web_44,IP 192.168.4.33,192.168.4.44),并安装httpd (yum -y install httpd)
2.mysql服务器准备
- 两台数据库服务器(主从结构 mysql11,mysql22),个添加两块5G硬盘,做LV 使用逻辑卷(灵活管理,方便扩容)
- fdisk -l /dev/vdb 验证添加的虚拟磁盘信息(vdb,vdc)
- 使用fdisk给磁盘分区
- fdisk /dev/vdb
- n //创建分区
- Select (default p): p //创建主分区
- 分区号 (1-4,默认 1):1 //指定编号
- 起始结束按照提示值
- w //保存退出
- fdisk -l /dev/vdb 查看验证
- 创建LV
- 修改设备ID并安装软件包
- fdisk /dev/vdb //修改/dev/vdb
- 命令(输入 m 获取帮助):t //修改类型
- Hex 代码(输入 L 列出所有代码):8e
- w //保存退出
- fdisk -l /dev/vdb //查看验证
- yum -y install lvm2 //安装软件
- 创建PV
- pvcreate /dev/vdb1 /dev/vdc1 //创建pv
- pvdisplay //查看PV信息
- 创建VG
- vgcreate vg0 /dev/vdb1 /dev/vdc1 //创建vg 名称vg0
- vgdisplay //查看VG信息
- 创建LV
- lvcreate -L 9.99G -n lv0 vg0 //创建LV 名称为lv0 大小9.99G
- mkfs.xfs /dev/vg0/lv0 //格式化为 xfs 文件系统
- blkid /dev/vg0/lv0 //查看文件系统类型
- 修改设备ID并安装软件包
- 配置数据库服务器
- 安装mysql
- 挂载LV设备
- vim /etc/fstab
/dev/vg0/lv0 /var/lib/mysql xfs defaults 0 0
- mount -a //重新加载
- mount | grep lv0 //查看挂载信息
- vim /etc/fstab
- systemctl start mysqld 启动mysql服务
- systemctl enable mysqld
- ss -nutlp | grep mysqld 验证
- 修改登录密码
- grep password /var/log/mysqld.log //查看初始密码
- mysql -uroot -p'bB0*uCmu:.Kj' //初始密码登录
- alter user root@"localhost" identified by "123aa..AA"; 修改密码
- mysql -uroot -p"123aa..AA" 新密码登录
- 配置数据库主从同步
- 配置主服务器
- vim /etc/my.cnf 修改主配置文件
server_id=11 log-bin=master11
- systemctl restart mysqld 重启服务
- grant replication slave on *.* to repluser@"%" identified by "123aa..AA"; 用户授权
- vim /etc/my.cnf 修改主配置文件
- 配置从服务器
- vim /etc/my.cnf
server_id=22
- systemctl restart mysqld
- mysql -uroot -p123qqq...A 进入数据库
- change master to master_host="192.168.4.11",master_user="repluser",\
-> master_password="123aa..AA",master_log_file="master11.000001",\
-> master_log_pos=441; 指定主服务器 - start slave ; 启动
- show slave status 查看从服务器信息
- vim /etc/my.cnf
- 配置主服务器
3.配置读写分离服务(192.168.4.77)
- 安装软件
- rpm -ivh maxscale-2.1.2-1.rhel.7.x86_64.rpm //安装软件
- 修改配置文件
- vim /etc/maxscale.cnf
-
[maxscale] //服务线程数量 threads=auto [server1] //第1台数据库服务器 type=server address=192.168.4.11 port=3306 protocol=MySQLBackend [server2] //第2台数据库服务器 type=server address=192.168.4.22 port=3306 protocol=MySQLBackend [MySQL Monitor] //指定监控数据库服务器server1 和 server2 type=monitor module=mysqlmon servers=server1, server2 user=maxscalemon //监控用户 passwd=123qqq...A //密码 monitor_interval=10000 [Read-Write Service] //定义读写分离服务 type=service router=readwritesplit servers=server1, server2 user=maxscalerouter //路由用户 passwd=123qqq...A //密码 max_slave_connections=100% [MaxAdmin Service] //定义管理服务 type=service router=cli [Read-Write Listener] //定义读写分离服务端口 type=listener service=Read-Write Service protocol=MySQLClient port=4006 //端口号 [MaxAdmin Listener] //定义管理服务端口 type=listener service=MaxAdmin Service protocol=maxscaled socket=default port=4016 //端口号
- 配置数据库服务器
- 用户授权
- grant replication slave,replication client on *.*\
-> to maxscalemon@"%" identified by "123aa..AA"; - grant select on mysql.* to maxscalerouter@"%" identified by "123aa..AA";
- grant replication slave,replication client on *.*\
- 从服务器验证用户
- mysql -uroot -p"123aa..AA" -e 'select user,host from mysql.user where user like "maxscale%"'
- 用户授权
- 启动maxsacle服务
- maxscale -f /etc/maxscale.cnf
- ss -nutlp | grep maxscale 查看两个端口号是否正常监测
- 访问管理服务,查看监控信息
- maxadmin -uadmin -pmariadb -P4016
- list servers
准备NFS服务存储磁盘
- NFS服务器添加一块10G磁盘
- 磁盘分区
- 挂载磁盘
- 格式化
- mkfs.xfs /dev/vdb1
- 配置开机挂载
- vim /etc/fstab
/dev/vdb1 /sitedir xfs defaults 0 0
- mkdir /sitedir //创建挂载目录
- chmod +w /sitedir/ //赋予写权限
- mount –a //加载文件中所有未加载的设备
- mount | grep "/sitedir" //查看加载信息
- vim /etc/fstab
- 格式化
- 部署NFS服务
- 安装软件
- yum -y install nfs-utils rpcbind
- 修改配置文件
- vim /etc/exports
/sitedir *(rw)
- exportfs –r //加载配置
- vim /etc/exports
- 安装软件
- 启动服务
- systemctl start rpcbind
- systemctl start nfs
- systemctl enable nfs
- systemctl enable rpcbind
- 查看共享信息
- showmount -e localhost
部署网站服务
- 安装软件
- yum -y install httpd
- yum -y install nfs-utils
- 查看NFS
- showmount -e 192.168.4.30
- 将html挂载到NFS
- vim /etc/fstab ==> 192.168.4.30:/sitedir /var/www/html nfs defaults 0 0
- mount -a 重新加载挂载配置
- mount | grep "/var/www/html" 验证挂载信息
- systemctl enable remote-fs.target 开启远程挂载服务
测试环境
- 测试NFS服务
- [root@NFS30 ~]# echo "this is web test page!" > /sitedir/test.html NFS服务器创建html文件
- [root@room9pc17 ~]# curl http://192.168.4.33/test.html //访问网站33主机
- [root@room9pc17 ~]# curl http://192.168.4.44/test.html //访问网站44主机
- 测试Mysql服务
- 登录主服务器
- grant select,insert,update,delete on gamedb.* to xiaoming@"%" identified by "123aa..AA"; //用户授权
- create table gamedb.user (name char(15)); //建表
- select * from gamedb.user; 查询验证
- 登录从服务器
- show grants for xiaoming@"%" ; 查看授权用户
- desc gamedb.user; //查看库表
- insert into gamedb.user values("SlaveTest"); //用来验证数据读写分离
- 测试读写分离服务
- 进入网站服务器
- yum -y install mariadb //安装提供连接命令软件
- mysql -h192.168.4.77 -P4006 -uxiaoming -p123aa..AA //连接读写分离服务
配置zabbix监控服务
- 部署运行环境LNMP
- yum -y install gcc pcre-devel openssl-devel
- tar -xf nginx-1.12.2.tar.gz
- cd nginx-1.12.2
- ./configure --with-http_ssl_module
- make && make install
- yum -y install php php-mysql mariadb mariadb-devel mariadb-server
- yum -y install php-fpm-5.4.16-42.el7.x86_64.rpm
- 修改Nginx配置文件
- vim /usr/local/nginx/conf/nginx.conf
http{ … … fastcgi_buffers 8 16k; //缓存php生成的页面内容,8个16k fastcgi_buffer_size 32k; //缓存php生产的头部信息 fastcgi_connect_timeout 300; //连接PHP的超时时间 fastcgi_send_timeout 300; //发送请求的超时时间 fastcgi_read_timeout 300; //读取请求的超时时间 location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; }
- vim /usr/local/nginx/conf/nginx.conf
- 启动Nginx、PHP-FPM、MariaDB服务,关闭SELinux与防火墙。
- systemctl start mariadb
- systemctl start php-fpm
- ln -s /usr/local/nginx/sbin/nginx /sbin/nginx
- nginx
- firewall-cmd --set-default-zone=trusted
- setenforce 0
- 测试LNMP环境
- 服务器创建PHP测试页面,浏览器访问页面测试网页连通性。
安装Zabbix软件
- 源码安装
- yum -y install net-snmp-devel curl-devel
- lyum -y install ibevent-devel-2.0.21-4.el7.x86_64.rpm
- tar -xf zabbix-3.4.4.tar.gz
- cd zabbix-3.4.4
- ./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
- make && make install
初始化配置
- 创建zabbix数据库
- mysql
- mysql> create database zabbix character set utf8;
- mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';