01-综合架构规划

一、新建虚拟机

1.1 创建虚拟机

VMWARE

典型配置

稍后安装操作系统

Linux-Centos7 64位

名称-综合架构模板机-10.0.0.210

硬盘大小100G

1处理器 2G内存 网络NAT

硬件-设置镜像-Centos7-DVD-2009

1.2 安装操作系统

语言:English

磁盘分区:自动分区

Kdump:关掉

软件:最小化安装(Debugging Tools + Compatibility Lib + Dev Tools + System Admin tools)

时区:上海

网卡:

  • General设置Automatically,即是onboot,手动IP:10.0.0.210 / 24
  • 网关10.0.0.2,DNS 223.5.5.5, 223.6.6.6
  • 记得VMWARE的虚拟网卡编辑器也要更改NAT设置

1.3 添加网卡

硬件:添加网卡lan区段(172.16.1.0网段),模仿局域网

系统:增加配置文件ifcfg-eth1(网卡名不尽相同,我的是ens33和ens36

NMAE=eth1
DEVICE=eth1
IPADDR=172.16.1.210
PREFIX=24
ONBOOT=yes
BOOPROTO=static
# 局域网不上公网,不需要网关,不配DNS


重启网络服务:systemctl restart network

配置完:

[root@muban2[ /etc/sysconfig/network-scripts]#ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:55:e9:d6 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.210/24 brd 10.0.0.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::f5ee:4fd4:ee7c:b747/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:55:e9:e0 brd ff:ff:ff:ff:ff:ff
    inet 172.16.1.210/24 brd 172.16.1.255 scope global noprefixroute ens36
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe55:e9e0/64 scope link
       valid_lft forever preferred_lft forever

1.4 优化操作

关闭防火墙

#firewalld
systemctl stop firewalld
systemctl disable firewalld

#selinux
sed -i 's#SELINUX=enforcing#SELINUX=disable#g' /etc/selinux/config
setenforce 0
getenforce #结果只要不是enforcing就表示关闭了

配置yum源

#备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#修改base源 为阿里云
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#增加epel源
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#清除缓存
yum clean all
#查看yum源
yum repolist

安装常用工具

yum install -y vim tree wget bash-completion bashcompletion-extras lrzsz net-tools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc httpd-tools bindutils nethogs expect cowsay sl

优化ssh连接速度

sed -i '/^GSSAPIAuthentication/s@^@#@g' /etc/ssh/sshd_config
cat >>/etc/ssh/sshd_config<<EOF
UseDNS no #相当于网络命令的-n选项.
GSSAPIAuthentication no #关闭GSS认证.
EOF

systemctl restart sshd

#检查
egrep '^(GSSAPIAuthentication|UseDNS)' /etc/ssh/sshd_config

时间同步

#修改时区(如果不对)
timedatectl status #查看时区 time zone部分
timedatectl set-timezone Asia/Shanghai #如果时区不对再修改.

#配置定时时间同步.
yum install -y ntpdate
crontab -l

#1. sync time (crontab -e 编辑)
*/2 * * * * /sbin/ntpdate ntp1.aliyun.com &>/dev/null

# 重启服务
systemctl restart crond

命令行颜色

把下面内容
PS1是系统环境变量之一,用于控制命令行格式样子.
export PS1='[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \w\[\e[0m\]]\$'
写入到/etc/profile中即可. #如果只想对自己生效修改
~/.bash_profile 或~/.bashrc
source /etc/profile

修改的效果:

image-20240424154436310

主机名与host文件

# 使用hostnamectl修改
hostnamectl set-hostname muban 

hosts解析,方便使用主机名访问

# hosts文件案例
cat >>/etc/hosts <<EOF
172.16.1.5 lb01
172.16.1.6 lb02
172.16.1.7 web01
172.16.1.8 web02
172.16.1.9 web03
172.16.1.10 web04
172.16.1.31 nfs01
172.16.1.41 backup
172.16.1.51 db01
172.16.1.61 m01
EOF

一键修改主机名和ip地址的脚本

# /server/scripts/change.sh

#!/bin/bash
#author: lidao996
#desc: change ip and hostname
#version: v7.0
#升级一些判断
#判断参数格式是否为2
[ $# -ne 2 ] && {
echo "脚本使用姿势不对"
echo "正确姿势:$0 主机名 ip地址"
echo "如:$0 muban 211"
        exit 1
}
#获取当前主机ip地址
ip=`hostname -I |awk '{print $1}'|sed 's#.*\.##g'`
#新的ip
ip_new=`echo $2 |sed 's#^.*\.##g'`
#新的主机名
hostname=$1
#修改ip
sed -i "s#10.0.0.$ip#10.0.0.$ip_new#g" /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i "s#172.16.1.$ip#172.16.1.$ip_new#g" /etc/sysconfig/network-scripts/ifcfg-ens36
#重启网卡
systemctl restart network
#修改主机名
hostnamectl set-hostname $hostname

1.5 克隆

创建克隆(链接方式):backup服务器-10.0.0.41

二、综合架构详解

我们分别通过开发,用户,运维角度分析网站架构

角度 说明 相关操作
开发角度 主要关注的书写代码,这些代码需要服务器 (服务)运行. 代码存放,开发如何提交运维,运维如何部署代码,如何测试代码 (环境),第3个阶段内容.
用户角 度 app或浏览器访问网站,整个访问流程中涉及 到的服务,功能. 整个网站架构的核心,第2个阶段内容.
运维角度 如何快速部署环境,自动化部署,自动化监控, 堡垒机,其他Վʡ 如何自动化维护,监控,故障修复.第2个阶段,第3个阶段.

2.1 架构图

image-20240424162115805

2.2 技术栈

角度 功能 服务
开发角度 存放代码 Gitlab ,Gogs,Github,Gitee(码云)
集成,发布 Jenkins
代码检查 Sonarqube
私服,软件包仓 库(Java) Nexus
用户角度 DNS解析 DNS云解析(阿里) ,Bind9,DNSmasq,CoreDNSՎʡ
CDN缓存 各种厂商的CDN服务, CDN(阿里云) ,蓝汛(专做CDN)…..,七牛CDN
防火墙 硬件防火墙:深信服,奇安信,华为 软件:firewalld, iptables ,公有云: 安全组,态势感知,云安全中心
负载均衡 硬件: F5… 软件: nginx,tengine ,openResty,haproxy, lvs 公有云:….
WEB网站服务 器 基本:nginx,tengine,openResty 架构 : LNMP(PHP) Linux,Nginx,MySQL(数据库),PHP LNMT(Java) Linux,Nginx,MySQL,Tomcat LNMP(Python) Linux,Nginx,MySQL,Python LNMG(Golang) Linux,Nginx,MySQL,Golang
缓存服务器 Redis,Kafka ,xxxMQ(RabbitMQ),RocketMQ
数据库服务器 MySQL ,Oracle(甲骨文), Mariadb 国产:TiDB,openGauss,OceanBase
存储 硬件存储 软件存储: NFS ,分布式存储…. 对象存储: 阿里云OSS ,七牛云对象存储,腾讯COS
实时同步 SerSync ,Lsyncd
备份 定时任务,脚本,打包压缩 Rsync
运维角度 VPN 硬件,开源 OpenVPN
堡垒机 开源: Teleprot,Jumpserver 商业:硬件,软件.
批量管理 Ansible ,SaltStack,Puppet,Chef,Farbic
监控 Zabbix,Grafana,Prometheus (普罗米修斯)
日志收集平台 Elastic Stack(ELK,EFK,EBLK, ElasticSearch,Filebeat,Logstash,Kibana)
审计 SQL审计, Yearning ,Archery 操作/行为审计(堡垒机)
安全 商业:AppScan, Nessus ,OWASP 开源: ClamAV ……

01-综合架构规划
http://gsproj.github.io/2024/04/24/07_85期运维/02_综合架构/01-综合架构规划/
作者
GongSheng
发布于
2024年4月24日
许可协议