一、综合架构开场与环境准备
1、配置网卡
ini
[root@nanjing ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
IPADDR=
NETMASK=
GATWAY=
BOOTPROTO=
#重启网卡生效
systemctl restart network
2、关闭防火墙
bash
#1、firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
#2、selinux
#重启系统永久生效
sed -i 's#SELINUXTYPE=targeted#SELINUXTYPE=disabled#g' /etc/selinux/config
#临时关闭
setenforce 0
getenforce #结果只要不是enforcing就表示关闭了
3、配置yum源
bash
#备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#阿里云yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#增加epel源
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
#刷新缓存
yum makecache
#查看yum源
yum repolist
4、安装常用工具
bash
yum install -y vim tree wget bash-completion bash- completion-extras lrzsz net-tools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc httpd-tools bind- utils nethogs expect
5、优化ssh连接速度
sshd服务问题
公有云已经修改过了
perl
sed -i '/^GSSAPIAuthentication/s@^@#@g' /etc/ssh/sshd_config
cat >>/etc/ssh/sshd_config<<E0F
UseDNS no #相当于网络命令的-n选项
GSSAPIAuthentication no #关闭GSS认证EOF
EOF
systemctl restart sshd
#检查
egrep '^(GSSAPIAuthentication|UseDNS)' /etc/ssh/sshd_config
6、时间同步
bash
#修改时区(如果不对)
timedatectl status #查看时区 time zone部分
timedatectl set-timezone Asia/Shanghai #如果时区不对再修改.
#配置定时时间同步.
yum install -y ntpdate
crontab -l
#1. sync time shishuwu
*/2 * * * * /sbin/ntpdate ntp1.aliyun.com &>/dev/null
7、命令号颜色
bash
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
8、主机名与hosts文件
- 修改主机名
arduino
sysytemctl set-hostname ***
- host解析(方便使用主机名进行互相访问)
bash
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
9、一键修改主机名与ip的脚本
bash
脚本用法
sh /server/scripts/change.sh 主机名 10.0.0.7
[root@nanjing ~]# cat /server/scripts/change.sh
#!/bin/bash
#判断参数格式是否为2
[$# -ne 2] &&{
echo "脚本使用姿势不对"
echo "正确姿势:$0 主机名 ip地址"
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-eth0
sed -i "s#172.16.1.$ip#172.16.1.$ip_new#g"
/etc/sysconfig/network-scripts/ifcfg-eth1
#重启网卡
systemctl restart network
#修改主机名
hostnamectl set-hostname $hostname
二、综合架构
1、综合架构详解
角度 | 说明 | 相关操作 |
---|---|---|
开发 | 主要关注的书写代码,这些代码需要服务器(服务)运行. | 代码存放,开发如何提交运维,运维如何部署代码,如何测试代码(环境),第3个阶段内容. |
用户 | app或浏览器访问网站,整个访问流程中涉及到的服务,功能. | 整个网站架构的核心,第2个阶段内容 |
运维 | 如何快速部署环境,自动化部署,自动化监控,堡垒机,其他. | 如何自动化维护,监控,故障修复.第2个阶段,第3个阶段 |
2、技术栈
角度 | 功能 | 服务 |
---|---|---|
开发角度 | 存放代码 | Gitlab,Gogs,Giihub,Gitte(码云) |
集成,发布 | Jenkins | |
代码检查 | Sonarqube | |
私服,软件包仓 库(Java) | Nexus | |
用户角 度 | DNS解析 | DNS云解析(阿里) ,Bind9,DNSmasq,CoreDNS |
CDN缓存 | 各种厂商的CDN服务, CDN(阿里云) =,蓝汛(专做CDN).....,七牛CDN | |
防火墙 | 硬件防火墙:深信服,奇安信,华为 软件:firewalld, iptables 公有云:安全组,态势感知,云安全中心 | |
负载均衡 | 硬件:F5 软件:nginx,tengine,openResty,haproxy,LVS. 公有云:CLB | |
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(RabbitM0),RocketMg | |
数据库服务器 | 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) | |
审计 | Yearning SQL审计,操作/行为审计(堡垒机) Archery | |
安全 | 商业:AppScan,Nessus.OWASP 开源:CLamAV |