新聞中心
閱讀目錄

- 1.1 架構(gòu)圖
- 1.2 架構(gòu)搭建順序
- 1.3 架構(gòu)環(huán)境
- 1.4 虛擬主機(jī)配置
- 2.1 架構(gòu)優(yōu)化腳本內(nèi)容
- 2.2 模板機(jī)主機(jī)hosts文件配置
- 3.1 克隆前準(zhǔn)備
- 3.2 進(jìn)行克隆
- 3.3 進(jìn)行克隆
- 3.4 克隆主機(jī)配置
- 3.5 虛擬主機(jī)快照
- 3.6 錯(cuò)誤排查
- 3.7 如何讓setup 命令中防火墻配置生效
第1章 企業(yè)架構(gòu)規(guī)劃
1.1 架構(gòu)圖
1.1.1 用戶訪問網(wǎng)站組成
|
類型 |
作用 |
實(shí)現(xiàn)方式 |
|
顧客-用戶 |
訪問網(wǎng)站的人員 |
@ |
|
保安-防火墻 |
安全策略控制;正確的流量通過,攻擊者的流量組織 |
硬件- 華為 思科 juniper廠商 軟件-iptables |
|
迎賓-負(fù)載均衡服務(wù)器 |
提供訪問者請(qǐng)求調(diào)度作用 |
nginx反向代理負(fù)載均衡服務(wù)器 LVS haproxy |
|
服務(wù)員-web服務(wù)器 |
根據(jù)http原理,回復(fù)給訪問者相應(yīng)的頁(yè)面信息 |
nginx網(wǎng)站服務(wù)技術(shù) apache tomcat |
|
廚師-數(shù)據(jù)庫(kù)服務(wù)器 |
返回給web服務(wù)器,相應(yīng)用戶數(shù)據(jù)的信息(字符串信息) |
mysql Oracle |
|
廚師--存儲(chǔ)服務(wù)器 |
返回給web服務(wù)器,相應(yīng)用戶的視頻、圖片、附件等數(shù)據(jù)信息 |
NFS存儲(chǔ)服務(wù)器 分布式儲(chǔ)存mfs fastdfs |
|
廚師-備份服務(wù)器 |
備份全網(wǎng)架構(gòu)服務(wù)器的重要資料 |
定時(shí)備份rsync+定時(shí)任務(wù) 實(shí)時(shí)備份 inotify/sersync+rsync |
|
廚師-緩存服務(wù)器 |
將數(shù)據(jù)存儲(chǔ)到內(nèi)存當(dāng)中,提升讀取效率 |
memcache redis mongodb |
|
心跳線 |
keepalived 高可用 |
|
|
集群 |
多臺(tái)服務(wù)器做一件相同的事情 |
1.1.2 運(yùn)維人員訪問網(wǎng)站組成
|
類型 |
作用 |
實(shí)現(xiàn)方式 |
|
秘密通道-vpn |
實(shí)現(xiàn)加密傳輸數(shù)據(jù),實(shí)現(xiàn)認(rèn)證建立連接 |
|
|
監(jiān)管-跳板機(jī) |
監(jiān)控運(yùn)維人員操作信息 1、實(shí)時(shí)監(jiān)控運(yùn)維人員桌面信息 2、命令記錄功能 3、操作記錄回放 4、用戶審計(jì)功能 |
jumpsever/gateone |
|
批量管理服務(wù)器 |
批量自動(dòng)化管理多臺(tái)主機(jī) |
ssh+key ansible (200-300臺(tái)) saltstack |
|
監(jiān)控服務(wù)器 |
監(jiān)控架構(gòu)服務(wù)器運(yùn)行情況 |
zabbix/nagios+cacti |
|
批量安裝部署系統(tǒng) |
(kicksrtart/cobbler) |
1.2 架構(gòu)搭建順序
|
順序 |
服務(wù) |
軟件 |
|
1 |
備份存儲(chǔ)服務(wù)器 |
rsync軟件實(shí)現(xiàn)備份服務(wù) |
|
2 |
存儲(chǔ)服務(wù)器 |
NFS軟件實(shí)現(xiàn)存儲(chǔ)服務(wù) |
|
3 |
1 2 之間實(shí)時(shí)同步 |
inotify+rsync/sersync |
|
4 |
批量管理服務(wù)器 |
ssh+key/ansible/saltstack |
|
5 |
web服務(wù) |
nginx |
|
6 |
LNMP架構(gòu) |
linux+nginx+mysql+php |
|
7 |
負(fù)載均衡 |
ngnix負(fù)載均衡 |
|
8 |
心跳線 |
keeplived 高可用 |
1.3 架構(gòu)環(huán)境
1.3.1 主機(jī)環(huán)境
|
服務(wù)器規(guī)劃 |
數(shù)量 |
作用說明 |
|
負(fù)載均衡服務(wù)器 |
兩臺(tái) |
對(duì)訪問網(wǎng)站的流量進(jìn)行風(fēng)流,減少流量對(duì)某臺(tái)服務(wù)器的壓力 |
|
web服務(wù)器 |
三臺(tái) |
處理用戶的頁(yè)面訪問請(qǐng)求(Nginx) |
|
NFS存儲(chǔ)(兼職批量管理) |
一臺(tái) |
儲(chǔ)存圖片、附件、頭像等靜態(tài)數(shù)據(jù) |
|
備份服務(wù)器(rsync) |
一臺(tái) |
對(duì)全網(wǎng)服務(wù)器數(shù)據(jù)進(jìn)行實(shí)時(shí)與定時(shí)備份 |
|
數(shù)據(jù)庫(kù)服務(wù)器(mySQL) |
一臺(tái) |
對(duì)動(dòng)態(tài)變化數(shù)據(jù)進(jìn)行存儲(chǔ)(文本內(nèi)容) |
|
管理服務(wù)器 |
一臺(tái) |
1) 1.作為yum倉(cāng)庫(kù)服務(wù)器,提供全網(wǎng)服務(wù)器的軟件下載 2) 2.跳板機(jī)、操作審計(jì) 3) 3.vpn(pptp) 4) 4.監(jiān)控(zabbix) 5) 5.兼職批量分發(fā)和管理(ssh+key/ansible/saltstack) |
|
合計(jì)需要9臺(tái)虛擬機(jī) |
||
1.3.2 各主機(jī)(IP/主機(jī)名)規(guī)劃
|
服務(wù)器說明 |
外網(wǎng)ip(nat) |
內(nèi)網(wǎng)IP(LAN區(qū)段) |
主機(jī)名稱規(guī)劃 |
|
A1-nginx負(fù)載均衡服務(wù)器01 |
10.0.0.5/24 |
172.16.1.5/24 |
lb01 |
|
A2-nginx負(fù)載均衡服務(wù)器02 |
10.0.0.6/24 |
172.16.1.6/24 |
lb02 |
|
B1-nginx web服務(wù)器 |
10.0.0.7/24 |
172.16.1.7/24 |
web02 |
|
B2-nginx web服務(wù)器 |
10.0.0.8/24 |
172.16.1.8/24 |
web01 |
|
B3-nginx web服務(wù)器 |
10.0.0.9/24 |
172.16.1.924 |
web03 |
|
C3-mysql數(shù)據(jù)庫(kù)服務(wù)器 |
10.0.0.51/24 (生產(chǎn)環(huán)境不設(shè)置) |
172.16.1.51/24 |
db01 |
|
C1-NFS存儲(chǔ)服務(wù)器 |
10.0.0.31/24 (生產(chǎn)環(huán)境不設(shè)置) |
172.16.1.31/24 |
nfs01 |
|
C2-rsync 存儲(chǔ)服務(wù)器 |
10.0.0.41/24 (生產(chǎn)環(huán)境不設(shè)置) |
172.16.1.41/24 |
backup |
|
X-管理服務(wù)器 |
10.0.0.61/24 (生產(chǎn)環(huán)境不設(shè)置) |
172.16.1.61/24 |
m01 |
1.3.3 初始目錄規(guī)劃
|
說明 |
目錄結(jié)構(gòu) |
目錄結(jié)構(gòu)說明 |
|
初始化目錄 |
/server/scripts /server/tools /application |
存放腳本的目錄 存放編譯安裝軟件源代碼的目錄 軟件程序的安裝目錄 |
1.4 虛擬主機(jī)配置
1.4.1 虛擬主機(jī)網(wǎng)卡添加(vmware軟件)
選擇網(wǎng)絡(luò)適配器,添加一塊新對(duì)的網(wǎng)卡
圖1-1 添加網(wǎng)卡
選項(xiàng)默認(rèn)即可,下一步直到網(wǎng)卡添加成功。
圖1-2 添加完成
1.4.2 編輯網(wǎng)絡(luò)
修改網(wǎng)絡(luò)選項(xiàng),將NAT模式子網(wǎng)改為 10.0.0.0 /24
修改網(wǎng)關(guān)為10.0.0.254
圖1-3 修改NAT網(wǎng)絡(luò)的網(wǎng)段
圖1-4 修改NAT網(wǎng)絡(luò)的網(wǎng)關(guān)
設(shè)置網(wǎng)卡的格式
第一塊網(wǎng)卡選擇nat模式
圖1-5 第一塊網(wǎng)卡設(shè)置
第二塊網(wǎng)卡選擇lan區(qū)段
圖1-6 第二塊網(wǎng)卡設(shè)置 LAN區(qū)段
配置好lan區(qū)段后選擇上lan區(qū)段即可
圖1-7 第二塊網(wǎng)卡選擇好LAN區(qū)段
1.4.3 虛擬主機(jī)網(wǎng)卡地址配置
圖1-8 第一塊網(wǎng)卡eth0配置
圖1-9 第二塊網(wǎng)卡eth1配置
1.4.4 網(wǎng)卡配置好后注意
配置完成需要重啟網(wǎng)絡(luò)服務(wù)
/etc/init.d/network restart
第2章 架構(gòu)主機(jī)優(yōu)化腳本
注意:此腳本需要放在/tmp 目錄下
#!/bin/bash
#################################################
# File Name: optimize-init_sys.sh
# Author: Energy
# Mail: admin@znix.top
# Function: system optimize scripts
#################################################
#optimization linux system
. /etc/init.d/functions
#change system directory: create seripts/software directory
function change_dir(){
ShellDir="/server/scripts"
SoftwareDir="/server/tools"
mkdir -p $ShellDir &&\
mkdir -p $SoftwareDir
}
# input info verify
function info_verify(){
read -p "Please make sure the information you entered (yes|no): " info
case "$info" in
y*|Y*)
continue
;;
n*|N*)
exit 1
;;
esac
}
#change system hostname
function change_hostname(){
read -p "Please input hostname: " HostName
info_verify
hostname $HostName &&\
sed -i "2s/=.*$/=$HostName/g" /etc/sysconfig/network &&\
chk_hosts=$(grep -o "\b$HostName\b" /etc/hosts)
get_ip=$(ifconfig eth0|awk -F "[ :]+" 'NR==2 {print $4}')
if [ -z $chk_hosts ]
then
echo "$get_ip $HostName" >>/etc/hosts
else
continue
fi
}
#boot system optimize: setup chkconfig
function change_chkconfig(){
Boot_options="$1"
for boots in `chkconfig --list|grep "3:on"|awk '{print $1}'|grep -vE "$Boot_options"`
do
chkconfig $boots off
done
}
#setup system optimize: setup ulimit
function change_ulimit(){
grep "* - nofile 65535" /etc/security/limits.conf >/dev/null 2>&1
if [ $? -ne 0 ]
then
echo '* - nofile 65535' >>/etc/security/limits.conf
fi
}
#setup system optimize: setup sysctl
function change_sysctl(){
cat /tmp/sysctl.conf >/etc/sysctl.conf &&\
modprobe bridge &>/dev/null &&\
sysctl -p &>/dev/null
}
#sshd software optimize: change sshd_conf
function change_sshdfile(){
SSH_Port="port 22"
SSH_ListenAddress=$(ifconfig eth0|awk -F "[ :]+" 'NR==2 {print $4}')
SSH_PermitRootLogin="PermitRootLogin no"
SSH_PermitEmptyPassword="PermitEmptyPasswords no"
SSH_GSSAPI="GSSAPIAuthentication no"
SSH_DNS="useDNS no"
#sed -i -e "13s/.*/$SSH_Port/g" /etc/ssh/sshd_config
#sed -i -e "15s/.*/ListenAddress $SSH_ListenAddress/g" /etc/ssh/sshd_config
#sed -i -e "42s/.*/$SSH_PermitRootLogin/g" /etc/ssh/sshd_config
#sed -i -e "65s/.*/$SSH_PermitEmptyPassword/g" /etc/ssh/sshd_config
sed -i -e "81s/.*/$SSH_GSSAPI/g" /etc/ssh/sshd_config
sed -i -e "122s/.*/$SSH_DNS/g" /etc/ssh/sshd_config
}
#selinux software optimize: change disable
function change_selinux(){
sed -i 's#SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config &&\
setenforce 0
}
#firewall software optimize: change stop
function change_firewall(){
/etc/init.d/iptables stop >/dev/null 2>&1
}
#crond software optimize: time synchronization
function change_update(){
grep -i "#crond-id-001" /var/spool/cron/root >/dev/null 2>&1
if [ $? -ne 0 ]
then
echo '#crond-id-001:time sync by hq' >>/var/spool/cron/root
echo "*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1">>/var/spool/cron/root
fi
}
#update yum info
function update_yum(){
wget -q -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
wget -q -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
}
#change profile file info
function change_profile(){
grep "PS1" /etc/profile >>/dev/null 2>&1
if [ $? -ne 0 ]
then
echo "PS1='\[\e[32;1m\][\u@\h \W]\\$ \[\e[0m\]'" >>/etc/profile
fi
grep "alias grep" /etc/profile >>/dev/null 2>&1
if [ $? -ne 0 ]
then
echo "alias grep='grep --color=auto'" >>/etc/profile
echo "alias ll='ls -l --color=auto --time-style=long-iso'" >>/etc/profile
fi
source /etc/profile
}
function main(){
change_dir
change_hostname
change_chkconfig "crond|network|rsyslog|sshd|sysstat"
change_ulimit
change_sysctl
change_sshdfile
change_selinux
change_firewall
change_update
update_yum
change_profile
}
main
action "system optimize complete" /bin/true
2.1 架構(gòu)優(yōu)化腳本內(nèi)容
適用于 #centos6.x 系統(tǒng)
2.1.1 更改yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
2.1.2 關(guān)閉selinux
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config grep SELINUX=disabled /etc/selinux/config setenforce 0 getenforce
2.1.3 關(guān)閉關(guān)防火墻
/etc/init.d/iptables stop /etc/init.d/iptables stop chkconfig iptables off
2.1.4 精簡(jiǎn)開機(jī)自啟動(dòng)服務(wù)
chkconfig |egrep -v "sshd|network|crond|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'|bash
export LANG=en
chkconfig --list|grep 3:on
2.1.5 提權(quán)oldboy可以sudo(可選)
useradd oldboy \cp /etc/sudoers /etc/sudoers.ori echo "oldboy ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers tail -1 /etc/sudoers visudo -c
2.1.6 中文字符集(不用做)
cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori echo 'LANG="zh_CN.UTF-8"' >/etc/sysconfig/i18n source /etc/sysconfig/i18n echo $LANG
2.1.7 時(shí)間同步
echo '#time sync by hzs at 2017-10-05' >>/var/spool/cron/root echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1 '>>/var/spool/cron/root crontab -l
2.1.8 命令行安全(千萬(wàn)別做)
#echo 'export TMOUT=300' >>/etc/profile #echo 'export HISTSIZE=5' >>/etc/profile #echo 'export HISTFILESIZE=5' >>/etc/profile #tail -3 /etc/profile #./etc/profile
2.1.9 加大文件描述符
echo '* - nofile 65535 '>>/etc/security/limits.conf tail -1 /etc/security/limits.conf
2.1.10 內(nèi)核優(yōu)化
cat >>/etc/sysctl.conf<
#修改內(nèi)核后讓內(nèi)核配置文件中的參數(shù)生效
sysctl -p2.1.11 安裝一些軟件
yum install lrzsz namp tree dos2unix nc -y2.1.12 系統(tǒng)升級(jí)操作(暫不使用)
#yum update 或 yum upgrade #yum -y update #升級(jí)所有包,改變軟件設(shè)置和系統(tǒng)設(shè)置,系統(tǒng)版本內(nèi)核都升級(jí) #yum -y ipgrade #升級(jí)所有包,不改變系統(tǒng)設(shè)置和軟件設(shè)置,系統(tǒng)版本升級(jí),內(nèi)核不變2.2 模板機(jī)主機(jī)hosts文件配置
cat >/etc/hosts<
第3章 虛擬機(jī)克隆
3.1 克隆前準(zhǔn)備
一清空,兩刪除
清空網(wǎng)絡(luò)配置文件
>/etc/udev/rules.d/70-persistent-net.rulesecho '>/etc/udev/rules.d/70-persistent-net.rules' >>/etc/rc.local
刪除網(wǎng)卡配置文件中的uuid和HWADDR
sed -ri '/HWADDR|UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth[01]3.2 進(jìn)行克隆
模板機(jī)關(guān)機(jī)
shutdown -h now3.2.1 保留快照
3.3 進(jìn)行克隆
3.3.1 進(jìn)行克隆
3.3.2 創(chuàng)建連接克隆
3.4 克隆主機(jī)配置
01. 利用給的腳本進(jìn)行修改
02. 手動(dòng)進(jìn)行修改
hostname backup sed -i "s#oldboy40#backup#g" /etc/sysconfig/network grep "backup" /etc/sysconfig/network HOSTNAME=backup grep "backup" /etc/hosts 172.16.1.41 backup3.4.1 手動(dòng)修改網(wǎng)卡地址
sed -i 's#200#41#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]3.4.2 修改系統(tǒng)主機(jī)名稱
hostname backup sed -i 's#znix#backup#g' /etc/sysconfig/network 修改hosts文件3.4.3 重啟網(wǎng)卡生效
/etc/init.d/network restart3.4.4 重新建立xsheel標(biāo)簽進(jìn)行連接
第一臺(tái)克隆主機(jī)完成
3.5 虛擬主機(jī)快照
模板機(jī)初始化完成進(jìn)行拍照留念
存儲(chǔ)空間足夠,快照要多保存。,
3.6 錯(cuò)誤排查
3.6.1 網(wǎng)卡配置問題
a 兩刪除操作完成之后,不要再進(jìn)行setup修改網(wǎng)卡操作,否則mac地址信息會(huì)再次出現(xiàn)
b setup命令無(wú)法設(shè)置網(wǎng)卡信息,主要和字符集設(shè)置有關(guān)
3.7 如何讓setup 命令中防火墻配置生效
3.7.1 CentOS系統(tǒng)找不到setup命令工具的解決方法
yum -y install setuptool #安裝setup命令工具 yum -y install ntsysv #安裝setup工具配套的系統(tǒng)服務(wù)組件 yum -y install system-config-securitylevel-tui #安裝setup工具配套的防火墻配置組件 yum -y install system-config-network-tui #安裝setup工具配套的網(wǎng)絡(luò)配置組件 yum -y install authconfig-gtk #安裝setup工具配套的驗(yàn)證配置組件 yum -y install system-config-keyboard #安裝setup工具配套的鍵盤配置組件
3.7.2 使用setup配置中的Firewall configuration出現(xiàn)的錯(cuò)誤
Traceback (most recent call last): File "/usr/bin/system-config-firewall-tui", line 29, inimport fw_tui File "/usr/share/system-config-firewall/fw_tui.py", line 34, in import fw_nm File "/usr/share/system-config-firewall/fw_nm.py", line 30, in bus = dbus.SystemBus() File "/usr/lib/python2.6/site-packages/dbus/_dbus.py", line 202, in __new__ private=private) File "/usr/lib/python2.6/site-packages/dbus/_dbus.py", line 108, in __new__ bus = BusConnection.__new__(subclass, bus_type, mainloop=mainloop) File "/usr/lib/python2.6/site-packages/dbus/bus.py", line 125, in __new__ bus = cls._new_for_bus(address_or_type, mainloop=mainloop) dbus.exceptions.DBusException: org.freedesktop.DBus.Error.FileNotFound: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
3.7.3 解決辦法
yum install -y system-config-firewall system-config-firewall-tui dbus eggdbus && service messagebus start本文文使用的系統(tǒng)版本為: CentOS Linux release 7.4.1708 (Core) 內(nèi)核版本為: 3.10.0-693.el7.x86_64
本文名稱:基于CentOS的企業(yè)架構(gòu)規(guī)劃及服務(wù)器優(yōu)化參數(shù)
轉(zhuǎn)載來(lái)源:http://m.5511xx.com/article/ccdpjjo.html


咨詢
建站咨詢
