阿里云運(yùn)維方案
1.1現(xiàn)有環(huán)境介紹
XX公司現(xiàn)有10人以上開(kāi)發(fā)團(tuán)隊(duì)(開(kāi)發(fā)+測(cè)試),現(xiàn)有Nginx服務(wù)器1臺(tái),Web服務(wù)器1臺(tái),Mongodb服務(wù)器2臺(tái)(主從)+Mysql 5.6版本1臺(tái),Elasticsearch+2臺(tái)(主從)+MQ(1臺(tái))+任務(wù)調(diào)度服務(wù)器1臺(tái),域名用的新網(wǎng)解析;已跟技術(shù)負(fù)責(zé)人做了詳細(xì)溝通,現(xiàn)有資源已無(wú)法滿足當(dāng)前業(yè)務(wù),現(xiàn)有架構(gòu)缺點(diǎn)表現(xiàn)如下:
1.(開(kāi)發(fā)+測(cè)試環(huán)境)不在本地,開(kāi)發(fā)人員上傳數(shù)據(jù)慢;
2.網(wǎng)站經(jīng)常受攻擊,數(shù)據(jù)經(jīng)常被人爬蟲;(沒(méi)有防范);
3.缺乏有效的監(jiān)控手段,出現(xiàn)問(wèn)題無(wú)法及時(shí)報(bào)警,及時(shí)處理問(wèn)題;
4.所有服務(wù)都是單點(diǎn),一臺(tái)服務(wù)器故障,所有服務(wù)都中斷;
5.網(wǎng)絡(luò)特別慢(只能等待)+tomcat訪問(wèn)丟失,日志無(wú)法分析;
6.數(shù)據(jù)安全無(wú)法保證;權(quán)限無(wú)法分類;
XX公司架構(gòu)設(shè)計(jì)解決方案
1.2系統(tǒng)架構(gòu):
分析目前的情況,需要專業(yè)的運(yùn)維團(tuán)隊(duì)來(lái)服務(wù),需要7*24小時(shí)不間斷的給客戶提供服務(wù),在這樣的基礎(chǔ)上,需要對(duì)現(xiàn)有架構(gòu)進(jìn)行升級(jí)優(yōu)化,用阿里云的整體解決方案,此方案優(yōu)勢(shì):阿里云結(jié)合云計(jì)算彈性計(jì)算的特點(diǎn)以及自己在互聯(lián)網(wǎng)上的成功經(jīng)驗(yàn),規(guī)劃了一整套完善的軟件負(fù)載均衡解決方案,能更好的滿足彈性計(jì)算平臺(tái)負(fù)載均衡的需求,成功的解決了硬件負(fù)載均衡在達(dá)到性能上限后擴(kuò)展性受限的問(wèn)題。只需要訂購(gòu)軟件的負(fù)載均衡設(shè)備,就可以輕松應(yīng)對(duì)網(wǎng)絡(luò)流量和數(shù)據(jù)量不斷增長(zhǎng)的場(chǎng)景。而且可以同時(shí)享受阿里云的安全解決方案,提供防DDOS攻擊能力,不需要再購(gòu)買入侵檢測(cè)以及防火墻產(chǎn)品。系統(tǒng)架構(gòu)圖設(shè)計(jì)如下:
更新的后架構(gòu),此方案的好處低成本,高性能,具體體現(xiàn)在如下幾個(gè)方面:
低成本:使用彈性負(fù)載均衡,成本很低,與傳統(tǒng)硬件負(fù)載均衡設(shè)備的高投入相比成本能下降60%,
高可擴(kuò)展:不論是ECS主機(jī)還是SLB負(fù)載均衡,企業(yè)均可以根據(jù)負(fù)載進(jìn)行彈性擴(kuò)展,在不中斷業(yè)務(wù)系統(tǒng),隨時(shí)擴(kuò)展新的資源。
安全性高:購(gòu)買SLB就可以享受阿里云的安全解決方案,提供防DDOS攻擊能力,不需要再購(gòu)買入侵檢測(cè)以及防火墻產(chǎn)品。
穩(wěn)定性高:SLB采用的是全冗余設(shè)計(jì),無(wú)單點(diǎn),可用性高達(dá)99.99%,
展昭網(wǎng)絡(luò)技術(shù)有限的數(shù)據(jù)庫(kù)系統(tǒng)使用MySQL,版本5.7,目前使用的架構(gòu)為MySQL單點(diǎn),需要改成主從復(fù)制(Master-Slave),即Master-Slave架構(gòu);
優(yōu)化監(jiān)控,目前的監(jiān)控報(bào)警機(jī)制,按照人員劃分為二部分:
第一部分是運(yùn)維人員,內(nèi)部的運(yùn)維人員根據(jù)所負(fù)責(zé)的系統(tǒng)劃分,接收相應(yīng)的應(yīng)用及系統(tǒng)報(bào)警信息
第二部分是項(xiàng)目及應(yīng)用的負(fù)責(zé)人及相關(guān)責(zé)任人,僅僅接收所在項(xiàng)目組的應(yīng)用報(bào)警信息
按照告警事件劃分為二級(jí):
第一級(jí)是普通報(bào)警,主要是各個(gè)應(yīng)用和項(xiàng)目組的應(yīng)用報(bào)警,影響范圍限制在該項(xiàng)目組內(nèi)部
第二級(jí)是系統(tǒng)報(bào)警,主要是服務(wù)器系統(tǒng)報(bào)警信息,以及內(nèi)部虛擬機(jī)的報(bào)警信息,影響范圍不限于一個(gè)項(xiàng)目組
報(bào)警方式主要有短信,郵件,微信方式。
報(bào)警的處理方式,根據(jù)事件等級(jí)劃分:
第一級(jí)的事件報(bào)警信息,相關(guān)責(zé)任人接收信息之后,10分鐘內(nèi)必須做出處理,根據(jù)技術(shù)難度,在30-60分鐘內(nèi)必須處理完畢
第二級(jí)的事件報(bào)警,運(yùn)維人員在收到范圍內(nèi)的報(bào)警信息后,5分鐘必須做出響應(yīng),根據(jù)處理的技術(shù)復(fù)雜度,在10-60分鐘內(nèi)處理完畢
告警記錄的保存:
目前系統(tǒng)中的報(bào)警信息主要是通過(guò)zabbix監(jiān)控平臺(tái)發(fā)布,根據(jù)平臺(tái)的設(shè)置,對(duì)應(yīng)的監(jiān)控項(xiàng)和服務(wù)器的報(bào)警信息會(huì)發(fā)送給對(duì)應(yīng)的人員,監(jiān)控的日志記錄在該軟件平臺(tái)內(nèi)部可查詢,可分析。
建議優(yōu)化開(kāi)發(fā)環(huán)境,采購(gòu)一臺(tái)塔式dell服務(wù)器做虛擬化,
T430(4盤位3.5寸)冷電冷盤E5-2603v4 64G 1T SAS*2 DVD H330單電450W
建議系統(tǒng)安全加固,對(duì)CentOS 6.7跟Centos7.3安全加固及性能優(yōu)化
我們可以通過(guò)調(diào)整系統(tǒng)參數(shù)來(lái)提高系統(tǒng)內(nèi)存、CPU、內(nèi)核資源的占用,通過(guò)禁用不必要的服務(wù)、端口,來(lái)提高系統(tǒng)的安全性,更好的發(fā)揮系統(tǒng)的可用性。通過(guò)自己對(duì)Linux了解,對(duì)系統(tǒng)調(diào)優(yōu)做了如下小結(jié)。
經(jīng)常玩Linux系統(tǒng)的朋友多多少少也知道些系統(tǒng)參數(shù)優(yōu)化和怎樣增強(qiáng)系統(tǒng)安全性,系統(tǒng)默認(rèn)的一些參數(shù)都是比較保守的,所以我們可以通過(guò)調(diào)整系統(tǒng)參數(shù)來(lái)提高系統(tǒng)內(nèi)存、CPU、內(nèi)核資源的占用,通過(guò)禁用不必要的服務(wù)、端口,來(lái)提高系統(tǒng)的安全性,更好的發(fā)揮系統(tǒng)的可用性。通過(guò)自己對(duì)Linux了解,對(duì)系統(tǒng)調(diào)優(yōu)做了如下小結(jié):
操作系統(tǒng):CentOS 6.8_x64最小化安裝
1、主機(jī)名設(shè)置
[root localhost~]#vi/etc/sysconfig/network
HOSTNAME=test.com
[root localhost~]#hostname test.com#臨時(shí)生效
2、關(guān)閉SELinux
[root localhost~]#vi/etc/selinux/config
SELINUX=disabled
[root localhost~]#setenforce#臨時(shí)生效
[root localhost~]#getenforce#查看selinux狀態(tài)
3、清空防火墻并設(shè)置規(guī)則
[root localhost~]#iptables-F#清楚防火墻規(guī)則
[root localhost~]#iptables-L#查看防火墻規(guī)則
[root localhost~]#iptables-A INPUT-p tcp--dport 80-j ACCEPT
[root localhost~]#iptables-A INPUT-p tcp--dport 22-j ACCEPT
[root localhost~]#iptables-A INPUT-p tcp--dport 53-j ACCEPT
[root localhost~]#iptables-A INPUT-p udp--dport 53-j ACCEPT
[root localhost~]#iptables-A INPUT-p udp--dport 123-j ACCEPT
[root localhost~]#iptables-A INPUT-p icmp-j ACCEPT
[root localhost~]#iptables-P INPUT DROP
[root localhost~]#/etc/init.d/iptables save
#根據(jù)需求開(kāi)啟相應(yīng)端口
4、添加普通用戶并進(jìn)行sudo授權(quán)管理
[root localhost~]#useradd user
[root localhost~]#echo"123456"|passwd--stdin user#設(shè)置密碼
[root localhost~]#vi/etc/sudoers#或visudo打開(kāi),添加user用戶所有權(quán)限
root ALL=(ALL)ALL
user ALL=(ALL)ALL
5、禁用root遠(yuǎn)程登錄
[root localhost~]#vi/etc/ssh/sshd_config
PermitRootLoginno
PermitEmptyPasswords no#禁止空密碼登錄
UseDNSno#關(guān)閉DNS查詢
6、關(guān)閉不必要開(kāi)機(jī)自啟動(dòng)服務(wù)
7、刪除不必要的系統(tǒng)用戶
8、關(guān)閉重啟ctl-alt-delete組合鍵
[root localhost~]#vi/etc/init/control-alt-delete.conf
#exec/sbin/shutdown-r now"Control-Alt-Deletepressed"#注釋掉
9、調(diào)整文件描述符大小
[root localhost~]#ulimit–n#默認(rèn)是1024
1024
[root localhost~]#echo"ulimit-SHn 102400">>/etc/rc.local#設(shè)置開(kāi)機(jī)自動(dòng)生效
10、去除系統(tǒng)相關(guān)信息
[root localhost~]#echo"Welcome to Server">/etc/issue
[root localhost~]#echo"Welcome to Server">/etc/redhat-release
11、修改history記錄
[root localhost~]#vi/etc/profile#修改記錄10個(gè)
HISTSIZE=10
12、同步系統(tǒng)時(shí)間
[root localhost~]#cp/usr/share/zoneinfo/Asia/Shanghai/etc/localtime#設(shè)置Shanghai時(shí)區(qū)
[root localhost~]#ntpdate cn.pool.ntp.org;hwclock–w#同步時(shí)間并寫入blos硬件時(shí)間
[root localhost~]#crontab–e#設(shè)置任務(wù)計(jì)劃每天零點(diǎn)同步一次
0****/usr/sbin/ntpdate cn.pool.ntp.org;hwclock-w
13、內(nèi)核參數(shù)優(yōu)化
[root localhost~]#vi/etc/sysctl.conf#末尾添加如下參數(shù)
net.ipv4.tcp_syncookies=1#1是開(kāi)啟SYN Cookies,當(dāng)出現(xiàn)SYN等待隊(duì)列溢出時(shí),啟用Cookies來(lái)處,理,可防范少量SYN攻擊,默認(rèn)是0關(guān)閉
net.ipv4.tcp_tw_reuse=1#1是開(kāi)啟重用,允許講TIME_AIT sockets重新用于新的TCP連接,默認(rèn)是0關(guān)閉
net.ipv4.tcp_tw_recycle=1#TCP失敗重傳次數(shù),默認(rèn)是15,減少次數(shù)可釋放內(nèi)核資源
net.ipv4.ip_local_port_range=4096 65000#應(yīng)用程序可使用的端口范圍
net.ipv4.tcp_max_tw_buckets=5000#系統(tǒng)同時(shí)保持TIME_WAIT套接字的最大數(shù)量,如果超出這個(gè)數(shù)字,TIME_WATI套接字將立刻被清除并打印警告信息,默認(rèn)180000
net.ipv4.tcp_max_syn_backlog=4096#進(jìn)入SYN寶的最大請(qǐng)求隊(duì)列,默認(rèn)是1024
net.core.netdev_max_backlog=10240#允許送到隊(duì)列的數(shù)據(jù)包最大設(shè)備隊(duì)列,默認(rèn)300
net.core.somaxconn=2048#listen掛起請(qǐng)求的最大數(shù)量,默認(rèn)128
net.core.wmem_default=8388608#發(fā)送緩存區(qū)大小的缺省值
net.core.rmem_default=8388608#接受套接字緩沖區(qū)大小的缺省值(以字節(jié)為單位)
net.core.rmem_max=16777216#最大接收緩沖區(qū)大小的最大值
net.core.wmem_max=16777216#發(fā)送緩沖區(qū)大小的最大值
net.ipv4.tcp_synack_retries=2#SYN-ACK握手狀態(tài)重試次數(shù),默認(rèn)5
net.ipv4.tcp_syn_retries=2#向外SYN握手重試次數(shù),默認(rèn)4
net.ipv4.tcp_tw_recycle=1#開(kāi)啟TCP連接中TIME_WAIT sockets的快速回收,默認(rèn)是0關(guān)閉
net.ipv4.tcp_max_orphans=3276800#系統(tǒng)中最多有多少個(gè)TCP套接字不被關(guān)聯(lián)到任何一個(gè)用戶文件句柄上,如果超出這個(gè)數(shù)字,孤兒連接將立即復(fù)位并打印警告信息
net.ipv4.tcp_mem=94500000 915000000 927000000
net.ipv4.tcp_mem[0]:低于此值,TCP沒(méi)有內(nèi)存壓力;
net.ipv4.tcp_mem[1]:在此值下,進(jìn)入內(nèi)存壓力階段;
net.ipv4.tcp_mem[2]:高于此值,TCP拒絕分配socket。內(nèi)存單位是頁(yè),可根據(jù)物理內(nèi)存大小進(jìn)行
14./etc/ssh/sshd_config通過(guò)編輯文件可以修改sshd服務(wù)的相關(guān)配置,以下新增端口22223,
1.3高可用設(shè)計(jì)跟補(bǔ)丁修補(bǔ)-備份策略
1.業(yè)務(wù)系統(tǒng)采用雙服務(wù)器進(jìn)行冗余設(shè)計(jì),數(shù)據(jù)庫(kù)服務(wù)器采用雙服務(wù)器進(jìn)行冗余設(shè)計(jì),防止單點(diǎn)故障造成網(wǎng)絡(luò)服務(wù)中斷。
2.根據(jù),Centos官方社區(qū)和Linux社區(qū)出現(xiàn)的漏洞進(jìn)行及時(shí)手動(dòng)補(bǔ)丁修復(fù)。
3.建立主機(jī)系統(tǒng)軟件版本維護(hù)機(jī)制,隨時(shí)根據(jù)系統(tǒng)廠商發(fā)布的最新系統(tǒng)補(bǔ)丁進(jìn)行對(duì)照,檢查當(dāng)前使用的系統(tǒng)版本,并對(duì)補(bǔ)丁進(jìn)行升級(jí)。
4.建立主機(jī)系統(tǒng)軟件備份和恢復(fù)機(jī)制,對(duì)主機(jī)系統(tǒng)的軟件和數(shù)據(jù)進(jìn)行了定時(shí)備份任務(wù)。當(dāng)出現(xiàn)災(zāi)難性時(shí),可以對(duì)系統(tǒng)軟件和數(shù)據(jù)進(jìn)行快速恢復(fù)。
業(yè)務(wù)系統(tǒng)中的應(yīng)用服務(wù)器采用負(fù)載均衡技術(shù)對(duì)外提供訪問(wèn),數(shù)據(jù)庫(kù)服務(wù)器也實(shí)現(xiàn)負(fù)載均衡,對(duì)應(yīng)用提供數(shù)據(jù)訪問(wèn),避免了所有的單點(diǎn)故障問(wèn)題,而且可以隨時(shí)擴(kuò)容服務(wù)器。
(1)目前系統(tǒng)中的數(shù)據(jù)備份分為兩級(jí)
第一級(jí)是每天的本地服務(wù)器備份,保留一周的數(shù)據(jù)
第二級(jí)是集中備份,有大容量存儲(chǔ)空間的文件服務(wù)器負(fù)責(zé)存儲(chǔ)所有的數(shù)據(jù)備份,保留周期一年。
系統(tǒng)中的系統(tǒng)數(shù)據(jù)備份,包括程序目錄備份,有單獨(dú)的目錄存放,以區(qū)別于數(shù)據(jù)庫(kù)備份。
(2)業(yè)務(wù)系統(tǒng)的異地備份機(jī)制,以及災(zāi)難恢復(fù)計(jì)劃。
異地備份容災(zāi)的考慮:系統(tǒng)中的所有數(shù)據(jù)備份,和程序及日志備份,均有異地存儲(chǔ)。
目前的系統(tǒng)運(yùn)維中有災(zāi)難恢復(fù)的計(jì)劃。系統(tǒng)中目前有腳本結(jié)合人工實(shí)現(xiàn),腳本部分負(fù)責(zé)恢復(fù)數(shù)據(jù)及程序,人工修復(fù)部分負(fù)責(zé)搭建環(huán)境,每季度進(jìn)行一次災(zāi)難恢復(fù)演練,確保數(shù)據(jù)及程序的恢復(fù)完整性。
(3)建立日常數(shù)據(jù)備份管理制度,和災(zāi)備演練制度。
系統(tǒng)中的數(shù)據(jù)備份,備份介質(zhì)的保管有專人負(fù)責(zé)。
介質(zhì)的安全性在整個(gè)保密體系規(guī)劃中。
(4)根據(jù)目前建立的災(zāi)難恢復(fù)計(jì)劃,系統(tǒng)中目前的災(zāi)難恢復(fù)演練為每季度進(jìn)行一次,系統(tǒng)運(yùn)維主要負(fù)責(zé)人定期每個(gè)季度對(duì)運(yùn)維人員進(jìn)行培訓(xùn)。