日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
基于CentOS的企業(yè)架構(gòu)規(guī)劃及服務(wù)器優(yōu)化參數(shù)

閱讀目錄

  • 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 錯誤排查
  • 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ù)器

提供訪問者請求調(diào)度作用

nginx反向代理負(fù)載均衡服務(wù)器

LVS haproxy

服務(wù)員-web服務(wù)器

根據(jù)http原理,回復(fù)給訪問者相應(yīng)的頁面信息

nginx網(wǎng)站服務(wù)技術(shù)  apache

tomcat

廚師-數(shù)據(jù)庫服務(wù)器

返回給web服務(wù)器,相應(yīng)用戶數(shù)據(jù)的信息(字符串信息)

mysql Oracle

廚師--存儲服務(wù)器

返回給web服務(wù)器,相應(yīng)用戶的視頻、圖片、附件等數(shù)據(jù)信息

NFS存儲服務(wù)器  分布式儲存mfs

fastdfs

廚師-備份服務(wù)器

備份全網(wǎng)架構(gòu)服務(wù)器的重要資料

定時備份rsync+定時任務(wù) 

實(shí)時備份 inotify/sersync+rsync

廚師-緩存服務(wù)器

將數(shù)據(jù)存儲到內(nèi)存當(dāng)中,提升讀取效率

memcache 

redis

 mongodb

心跳線

 keepalived 高可用

 

集群

多臺服務(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í)時監(jiān)控運(yùn)維人員桌面信息

  2、命令記錄功能

  3、操作記錄回放

  4、用戶審計(jì)功能

jumpsever/gateone

批量管理服務(wù)器

批量自動化管理多臺主機(jī)

ssh+key

ansible (200-300臺)

saltstack

監(jiān)控服務(wù)器

監(jiān)控架構(gòu)服務(wù)器運(yùn)行情況

zabbix/nagios+cacti

批量安裝部署系統(tǒng)

(kicksrtart/cobbler)

 

1.2 架構(gòu)搭建順序

順序

服務(wù)

軟件

1

備份存儲服務(wù)器

rsync軟件實(shí)現(xiàn)備份服務(wù)

2

存儲服務(wù)器

NFS軟件實(shí)現(xiàn)存儲服務(wù)

3

1 2 之間實(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ù)器

兩臺

對訪問網(wǎng)站的流量進(jìn)行風(fēng)流,減少流量對某臺服務(wù)器的壓力

web服務(wù)器

三臺

處理用戶的頁面訪問請求(Nginx)

NFS存儲(兼職批量管理)

一臺

儲存圖片、附件、頭像等靜態(tài)數(shù)據(jù)

備份服務(wù)器(rsync

一臺

對全網(wǎng)服務(wù)器數(shù)據(jù)進(jìn)行實(shí)時與定時備份

數(shù)據(jù)庫服務(wù)器(mySQL

一臺

對動態(tài)變化數(shù)據(jù)進(jìn)行存儲(文本內(nèi)容)

管理服務(wù)器

一臺

1)    1.作為yum倉庫服務(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臺虛擬機(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ù)庫服務(wù)器

10.0.0.51/24

(生產(chǎn)環(huán)境不設(shè)置)

172.16.1.51/24

db01

C1-NFS存儲服務(wù)器

10.0.0.31/24

(生產(chǎn)環(huán)境不設(shè)置)

172.16.1.31/24

nfs01

C2-rsync 存儲服務(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ò)適配器,添加一塊新對的網(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 精簡開機(jī)自啟動服務(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 時間同步

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 命令行安全(千萬別做)

#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 -p

2.1.11 安裝一些軟件

yum install lrzsz namp tree  dos2unix nc -y

2.1.12 系統(tǒng)升級操作(暫不使用)

#yum update 或  yum upgrade
#yum -y update   #升級所有包,改變軟件設(shè)置和系統(tǒng)設(shè)置,系統(tǒng)版本內(nèi)核都升級
#yum -y ipgrade  #升級所有包,不改變系統(tǒng)設(shè)置和軟件設(shè)置,系統(tǒng)版本升級,內(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.rules

echo '>/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 now

3.2.1 保留快照

3.3 進(jìn)行克隆

3.3.1 進(jìn)行克隆

3.3.2 創(chuàng)建連接克隆

3.4 克隆主機(jī)配置

01. 利用給的腳本進(jìn)行修改

02. 手動進(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     backup

3.4.1 手動修改網(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 restart

3.4.4 重新建立xsheel標(biāo)簽進(jìn)行連接

第一臺克隆主機(jī)完成

3.5 虛擬主機(jī)快照

模板機(jī)初始化完成進(jìn)行拍照留念

存儲空間足夠,快照要多保存。,

3.6 錯誤排查

3.6.1 網(wǎng)卡配置問題

    a 兩刪除操作完成之后,不要再進(jìn)行setup修改網(wǎng)卡操作,否則mac地址信息會再次出現(xiàn)

    b setup命令無法設(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)的錯誤

 

Traceback (most recent call last):
  File "/usr/bin/system-config-firewall-tui", line 29, in 
    import 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


當(dāng)前題目:基于CentOS的企業(yè)架構(gòu)規(guī)劃及服務(wù)器優(yōu)化參數(shù)
網(wǎng)頁鏈接:http://m.5511xx.com/article/ccdpjjo.html