综合架构
day01 综合架构原理
1.企业上网原理
路由器配置:
第一步:获取设备管理IP地址,修改笔记本网卡地址
第二步:外网线路配置(运营商),完成路由或拨号配置(用户名 密码-- 获取外网IP)
第三步:配置DHCP服务,实现办公环境主机自动获取IP地址
IP地址池信息:192.168.19.1~~192.168.19.200
子网掩码信息:255.255.255.0
网关地址信息:192.168.19.254
DNS地址信息:223.5.5.5
交换机配置:
第一步:配置交换机的vlan (v虚拟 lan局域网)
一个交换机所有接口属于一个广播域
交换机的接口类型():
01. 属于vlan接口,标记属于哪个vlan
02. 属于trunk接口,实现不同vlan数据进行传递
2.虚拟机上网原理
NAT:
优势:防止IP地址冲突
劣势:不便于其他物理主机访问虚拟主机
桥接:
优势:便于其他物理主机访问虚拟主机
劣势:容易造成IP地址冲突
仅主机:
优势:网络环境安全
劣势:不能访问外网
3.系统路由配置说明
静态网段路由配置:
centos6:net-tools
route
route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.1.100
route del -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.1.100
centos7:iproute(推荐)
ip route
ip route add 192.168.10.0/24 via(经由) 192.168.1.100
ip route del 192.168.10.0/24 via(经由) 192.168.1.100
静态主机路由配置:
centos6:net-tools
route add -host 223.5.5.5/32 gw 10.0.0.254
centos7:iproute(推荐)
ip route add 223.5.5.5/32 via 10.0.0.254
静态默认路由:
centos6:net-tools
route add default gw 10.0.0.254
centos7:iproute(推荐)
ip route add default via 10.0.0.254
4.综合架构阶段
1.能力分水岭,架构述职(面试:曾经干过运维,你以前公司架构是什么)
2.学习很多服务(三剑客 vim 配置文件(定时任务 网卡)find w ps df free--监控服务)
3.学习到很多专业术语
什么是架构? 多台服务器组合在一起,服务器架构
什么是集群? 完成相同工作的一组服务器
什么是负载均衡?
...
4. 学习服务的排错能力?运维工程师 服务稳定运行 进行架构服务的维护(不能出问题)
自动化部署服务
5.服务的优化操作
5.综合架构的组成部分
1)防火墙服务器 实现访问流量安全控制 iptables(docker)/firewalld
2)负载均衡服务器 实现访问流量调度处理 nginx
3)web服务器 实现处理用户请求 nginx
4)数据库服务器 实现数据信息存储(字符串) mysql
5)存储服务器 实现数据信息存储(图片/附件) NFS
6)备份服务器 实现数据信息备份 rsync(自动备份 shell+定时任务/sersync实时备份)
7)缓存服务器* 实现数据内存存储 memcache/redis/mongodb
8)批量管理服务器 实现服务器批量管理 ansible
9)监控服务器 实现监控服务运行状态/报警 zabbix
架构完善部分:
1)解决单点问题 实现主备服务器切换 keepalived
2)VPN服务器 远程技术人员身份 pptpvpn (扩展研究)
https://blog.oldboyedu.com/?s=vpn
3)审计服务器 监控内部人员的所有操作 jumpserver(跳板机)
========================================
面试问题:
01. 公司数据如何进行备份
回答:
1)有备份服务器
2)购买云存储设备(安全问题)
3)两地三中心
6.架构的规划说明:
主机名称和IP地址规划 10台服务器 内存--10G
负载均衡服务器 lb01 10.0.0.5/24(外网)172.16.1.5/24(内网)
lb02 10.0.0.6/24(外网)172.16.1.6/24(内网)
web服务器 web01 10.0.0.7/24(外网)172.16.1.7/24(内网)
web02 10.0.0.8/24(外网)172.16.1.8/24(内网)
web03 10.0.0.9/24(外网)172.16.1.9/24(内网)
数据库服务器 db01 10.0.0.51/24(外网)172.16.1.51/24(内网)
存储服务器 nfs01 10.0.0.31/24(外网)172.16.1.31/24(内网)
备份服务器 backup 10.0.0.41/24(外网)172.16.1.41/24(内网)
批量管理服务器 m01 10.0.0.61/24(外网)172.16.1.61/24(内网)
监控管理服务器 zabbix-server 10.0.0.71/24(外网)172.16.1.71/24(内网)
系统基础优化部分:
01. 安全优化
防火墙关闭(永久)
selinux关闭(永久)
02. yum镜像源
阿里云镜像源
清华yum源
03. 优化hosts文件
cat >>/etc/hosts<<EOF
lb01 172.16.1.5
lb02 172.16.1.6
web01 172.16.1.7
web02 172.16.1.8
web03 172.16.1.9
db01 172.16.1.51
nfs01 172.16.1.31
backup 172.16.1.41
m01 172.16.1.61
zabbix-server 172.16.1.71
EOF
7.虚拟主机网络配置:
第一个步骤:创建第二块网卡,设置LAN区段
第二个步骤:开启服务器,对第二块网卡进行地址配置
nmtui--systemctl restart NetworkManager --- systemctl restart network
第三个步骤:清除网卡的mac地址信息和UUID
sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth[01]
第四个步骤:重启网卡服务
systemctl stop/disable NetworkManager
systemctl restart network
8.虚拟主机的克隆操作
第一个步骤:模板主机链接克隆
第二个步骤:需要对克隆好的主机进行配置
1.网卡地址修改
sed -i 's#200#41#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]
2.修改主机名称
hostnamectl set-hostname backup
3.建立新的xshell会话
systemctl restart network
完整快照拍摄工作
PS:克隆好的主机要一台一台启动配置
day02 rsync
1.总和架构备份服务
1.用于将数据信息进行恢复
2.用于出现问题进行文件信息对比
2.如何实现备份服务部署(rsync)
1.a fast, versatile, remote (and local) file-copying tool
rsync软件是一个快速,多功能,远程和本地文件备份工具
rsync软件可以实现全量和增量备份 (优势)
增量备份是如何实现的
两种方式:数学算法--数据比对
第一种:比对文件数据属性信息(默认)
第二种:比对文件md5数值
2.rsync命令使用
rsync软件 cp scp rm ls 有的功能 rsync都有
rsync替换cp:
cp /etc/hosts /tmp/ --- 备份文件
rsync /etc/hosts /tmp/ --- 备份文件
rsync -a /oldboy /tmp --- 备份目录
PS:rsync备份目录时
目录后面有/ oldboy/ 将目录下面的数据信息进行备份
目录后面没有/ oldboy 将目录下面的内容以及目录备份都进行备份
rsync替换scp:远程备份
scp -rp /etc/hosts 172.16.1.31:/tmp --- 远程传输备份文件
rsync -rp /etc/hosts 172.16.1.31:/tmp
rsync替换rm:
mkdir /null
rsync -avz --delete /null/ /tmp --- 将目录中的数据进行删除或者清空
--delete 无差异同步参数
rsync替换ls:
rsync /etc/hosts
-rw-r-xr-x 391 2019/06/11 09:36:15 hosts
3.rsync命令详细用法说明
1.本地数据备份:等价于cp
Local: rsync [OPTION...] SRC... [DEST]
src:需要备份的数据信息
dest:备份到什么路径中
2.程的方式备份:类似于scp(全量备份)
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
[USER@]: 以什么用户身份登录到远程主机,默认以当前登录用户身份登录远程主机
HOST: 远程主机IP地址或者主机名称信息
SRC: 需要拉取的远程主机数据信息
dest: 数据保存到本地主机的路径信息
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
SRC: 需要推送的本地主机数据信息
[USER@] 以什么用户身份登录到远程主机,默认以当前登录用户身份登录远程主机
HOST: 远程主机IP地址或者主机名称信息
DEST: 数据保存到远程主机的路径信息
3.守护进程方式进行数据传输(远程方式)
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
src: 需要推送的本地主机数据信息
[USER@]: 输入正确认证用户信息
HOST: 远程主机IP地址或者主机名称信息
::DEST 指定备份数据的模块信息
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
1. 可以实现免交互传输数据
2. 实现远程传输认证功能
3. 守护进程方式具有配置文件,满足更多企业需求
4. 控制客户端连接服务端的数量
4.rsync守护进程部署过程
服务端部署流程:
第一步:确认软件是否安装
rpm -qa rsync
yum -y install rsync
第二步:编写配置文件
vim /etc/rsyncd.conf
-------------------------配置文件---------------------------
#rsync_config
#created by HQ at 2017
##rsyncd.conf start##
uid = rsync #备份目录的管理用户(属主信息)
gid = rsync #备份用户的管理目录(属组信息)
port = 873 #rsync守护进程服务端口号
fake super = yes #伪装成管理员 需要有管理员权限
use chroot = no #和安全相关的配置
max connections = 200 #最大连接数
timeout = 300 #设置连接的超时时间
pid file = /var/run/rsyncd.pid #记录进程的号码信息(停止服务/判断服务是否启动)
lock file = /var/run/rsync.lock #锁文件,进行连接的限制
log file = /var/log/rsyncd.log #服务的日志文件
ignore errors #忽略错误,提高传输数据效率
read only = false #设置备份目录是否可读可写
list = false #?!!?
hosts allow = 172.16.1.0/24 #白名单(允许指定网段或主机)
hosts deny = 0.0.0.0/32 #黑名单(拒绝指定网段或主机)
auth users = rsync_backup #指定认真过得用户
secrets file = /etc/rsync.password #创建一个密码文件(用户名称:用户密码)
[backup] #模块信息
comment = "backup dir by oldboy"
path = /backup #指定备份目录路径信息
-------------------------配置文件---------------------------
第三步:创建备份目录管理用户
useradd rsync -s /sbin/nologin -M
第四步:创建认证密码信息,并修改权限
echo "rsync_backup:123456" > /etc/rsync.password
chmod 600 /etc/rsync.password
第五步:创建备份目录,并修改目录权限
mkdir /backup
chown rsync.rsync /backup/
第六步:启动备份服务
systemctl start rsyncd
systemctl enable rsyncd
============================
所有服务端部署流程:
1.软件部署安装
2.软件配置文件编写
3.软件环境准备(目录 文件 用户信息)
4.将服务进行启动 systemctl start rsyncd/xxx
5.进行服务程序验证
客户端部署流程:
第一步:创建密码文件,并修改权限
echo "123456" > /etc/rsync.password
chmod 600 /etc/rsync.password
第二步:实现免交互传输数据
rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
day03 rsync使用及其参数
1.rsync命令参数说明
参数 | 参数解释 |
---|---|
-v | 详细模式输出,传输是的进度等信息 |
-z | 传输时进行压缩以提高传输效率 |
-a | 归档参数,表示以递归方式传输文件,并保持所有文件属性,等于-rtopgDl |
-r | 对子目录以递归模式,及目录下的所有目录都同样传输 |
-t | 保持文件时间信息不变(mtime) |
-o | 保持文件属主信息 |
-g | 保持文件属组信息 |
-p | 保持文件权限 |
-P | 显示同步的过程及传输时的进度等信息 |
-D | 保持设备文件信息 b s c |
-l | 保留软连接 (没什么用) |
-L | 将链接文件源文件内容进行传输复制 |
-e | 使用的信道协议(remote shell),指定替代rsh的shell程序。 |
–exclude=PATTERN | 指定排除不需要传输的文件信息(和tar参数一样)。??? |
–exclude-from=file | 文件名所在的目录文件,即可以实现排除多个文件(和tar参数一样)。??? |
–bwlimit=RATE | 限速功能 |
–delete(慎用) | 让目标目录SRC和源目录数据DST一致,即无差异同步数据。 |
补充:如何保证备份的数据属主和属组信息不变
方法一:增加模块
不同用户向不同模块传输数据
方法二:修改配置文件uid信息
uid = root
gid = root
#fake super = yes
备份目录属主属组需要修改为 root权限
2.rsync守护进程企业应用
-
守护进程多模块功能配置
- 开发人员
- 运维人员
- 数据库人员
-
创建多模块 — 创建多模块对应目录并授权 — 重启服务
[backup] comment = "backup dir by oldboy" path = /backup [devdir] path = /devdir [dbdir] path = /dbdir
-
操作实例
环境准备: [root@nfs01 ~]# mkdir /oldboy_dir/oldboy{01..03} -p [root@nfs01 ~]# touch /oldboy_dir/oldboy{01..03}/{a..c}.txt [root@nfs01 ~]# tree /oldboy_dir/ /oldboy_dir/ ├── oldboy01 │?? ├── a.txt │?? ├── b.txt │?? └── c.txt ├── oldboy02 │?? ├── a.txt │?? ├── b.txt │?? └── c.txt └── oldboy03 ├── a.txt ├── b.txt └── c.txt 需求: 01. 排除oldboy01目录不要传输备份,排除oldboy03目录中a.txt文件不要传输备份 实现需求:--exclude=PATTERN [root@nfs01 ~]# rsync -avz /oldboy_dir/ --exclude=oldboy01 --exclude=oldboy03/a.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password sending incremental file list ./ oldboy02/ oldboy02/a.txt oldboy02/b.txt oldboy02/c.txt oldboy03/ oldboy03/b.txt oldboy03/c.txt sent 381 bytes received 134 bytes 1,030.00 bytes/sec total size is 0 speedup is 0.00 总结:排除的路径信息,需要编写为指定目录的相对路径 常见错误: 1. 排除参数后面数据信息,不能写绝对路径 2. 排除参数后面数据信息,不能写相对路径 02. 排除的数据量比较大,有多个目录,多个文件都要排除 vim exlude.txt oldboy01 oldboy03/a.txt [root@nfs01 oldboy_dir]# rsync -avz /oldboy_dir/ --exclude-from=/oldboy_dir/exclude.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password sending incremental file list ./ exclude.txt oldboy02/ oldboy02/a.txt oldboy02/b.txt oldboy02/c.txt oldboy03/ oldboy03/b.txt oldboy03/c.txt sent 482 bytes received 157 bytes 1,278.00 bytes/sec total size is 24 speedup is 0.04 3) 守护进程来创建备份目录(全网备份项目) [root@nfs01 oldboy_dir]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup/oldboy/ --password-file=/etc/rsync.password sending incremental file list created directory oldboy hosts sent 146 bytes received 72 bytes 436.00 bytes/sec total size is 158 speedup is 0.72 [root@nfs01 oldboy_dir]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup/oldboy/oldboy01/oldboy02/oldboy03/ --password-file=/etc/rsync.password sending incremental file list rsync: mkdir "oldboy/oldboy01/oldboy02/oldboy03" (in backup) failed: No such file or directory (2) rsync error: error in file IO (code 11) at main.c(657) [Receiver=3.1.2] 问题:不能创建多级目录 nfs 数据备份 backup/172.16.1.31/ web 数据备份 backup/172.16.1.7/ db 数据备份 backup/172.16.1.51/ 4) 守护进程的访问控制配置 hosts allow = 172.16.1.0/24 hosts deny = 172.17.1.0/24 建议:尽量只使用一种名单 补充:rsyncd.conf文件中全局配置和局部配置 全局配置:模块以上的配置信息 影响全部模块 局部配置:模块以下的配置信息 只影响当前模块 总结:局部配置优先于全局配置 5)守护进程无差异同步配置 目录之间实现无差异同步 rsync -avz /null/ --delete rsync_backup@172.16.1.41::backup PS: 可以快速清空目录中的数据 文件之间实现无差异同步(没什么用) rsync -avz /oldboy/hosts01 --delete rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password 6)守护进程的列表功能配置 list = true 在客户端,显示服务端的所有模块信息
3.rsync备份服务优缺点
-
优势
1.可以实现增量备份 2.具有守护进程模式(服务端) 认证管理控制 实现白名单黑名单安全访问控制 密码文件信息,可以实现免交互传输数据 网络连接数量进行限制 3.实现数据的加密传输 -e
-
缺点
1.比较擅长传输大文件,传输大量小文件,容易出问题 (需要打包) 2.传输大文件,有可能会传输中断 --partial 断点续传
4.异常问题
01. 备份服务用户身份映射问题(uid 用户名称)
第一种情况:
备份服务器有oldboy用户 存储服务器有oldboy用户
oldboy uid(备份) == oldboy uid (存储)
第二种情况:
备份服务器有oldboy用户 存储服务器有oldboy用户
oldboy uid(备份) <> oldboy uid (存储)
传输的数据信息,属主和属组信息也是oldboy
第三种情况
备份服务器没有oldboy用户 存储服务器有oldboy用户
oldgirl uid(备份)== oldboy uid (存储)
传输的数据信息,属主和属组信息为oldgirl
02. 服务配置文件被移动到其他路径,如何启动服务
rsync --daemon --config=/tmp/rsyncd.conf
03.指定服务端口号
--port
day04 NFS安装部署
1.存储服务器概念
NFS是Network File System的缩写,中文意思是网络共享文件系统,它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录.
企业环境:实现数据共享存储
1. FTP服务器(windows--server-U) 部署安装麻烦 / 权限设置
2. samba软件 部署安装麻烦 windows linux系统都支持
3. 分布式存储 Moosefs(mfs)、GlusterFS、FastDFS
2.NFS存储服务器架构中作用
- 实现数据共享同一储存,保证数据一致性
- 降低公司架构服务器成本
3.NFS安装部署
RPC:远程过程中调用程序(开发网络编程) 起到的作用相当于中介作用
########################################################
服务器部署:
#第一步:软件部署安装
#yum源中没有 NFS服务首先要更新yum源
yum -y install epel-release
#第二步:编写配置文件
vim /etc/exports
#配置文件中写入
#存储目录信息 主机地址或网段信息-进行安全访问控制(共享目录权限参数)
/data 172.16.1.0/24(rw,sync)
#第三步:创建储存目录,并进行授权
mkdir /data
chown -R www.www /data
#第四步:启动服务
systemctl start rpcbind (设置开机启动 enable)
systemctl start nfs (设置开机启动 enable)
#第五步:进行检查验证
rpcinfo -p 172.16.1.31 #检查nfs服务信息是否注册
[root@nfs01 ~]# rpcinfo -p 172.16.1.31
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 36205 status
100024 1 tcp 48893 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 46407 nlockmgr
100021 3 udp 46407 nlockmgr
100021 4 udp 46407 nlockmgr
100021 1 tcp 46327 nlockmgr
100021 3 tcp 46327 nlockmgr
100021 4 tcp 46327 nlockmgr
showmount -e 172.16.1.31 #检查是否有共享存储目录信息
[root@nfs01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data