系統管理員與救火隊員
原創【51CTO獨家特稿】上個月的最后一個星期五是全世界的第十一個“系統管理員日”。在有關系統管理員日的介紹中,我們可以看到這樣一句話:
系統管理者有許多綽號:技客(Geek)、大大、無名英雄、黑客斗士、第一線救火員、企業的生命線。 |
在大多數非IT人員的想象中,系統管理員是一個類似于勤雜工和服務員的角色,是在自己和同事的電腦死機、藍屏或上不了網的時候求助的對象。
對很多企業老板而言,只有在服務器出問題的時候才會想起公司里還有這些系統管理員,而在業務運行正常的時候,往往會將他們遺忘。
這是很多系統管理員的工作現狀——救火隊員。而很多非IT人士和業內新人也誤以為救火就是系統管理員主要的工作。但是事實上,一個企業如果僅僅把系統管理員當做救火員來使用,那么只有兩種可能:
1、他們把IT技術支持人員(最終用戶支持)和系統管理員的工作職能搞混了
2、他們的服務器們正處于岌岌可危的狀態下
保證系統和服務盡可能長時間不間斷的正常運行,是系統管理員的主要工作。簡單的說,系統管理員的職責主要是防火,而非救火。一般規模不大、業務重要性不強的企業可能容易對平時的防護有所忽略,然而對于電子商務、網上銀行、乃至于規模大一些的門戶網站而言,哪怕是一秒鐘的服務中斷都會造成極大的經濟損失,所以除非是遇到地震或是大規模斷電斷網這種情況,原則上是不允許業務出現中斷的。
雖然防護的等級不同,但是無論對于哪個企業的系統管理員而言,針對自己企業的業務對穩定性和連續性的需求,配合手上可以調配的資源,盡可能的保持服務正常運行,都是他的本職工作。
下面讓我們來看看系統管理員們平時可能會遇到哪些故障,以及如何進行基本的防護。
服務器可能遇到的故障多種多樣,比較常見的有:
◆硬件壞了
◆一臺服務器跑多個服務造成服務紊亂
◆服務器流量忽然大幅上漲(如Slashdot Effect就屬于這種),服務器由于短時間內過于繁忙而宕機
◆安全攻擊
還有其他一些不算是故障,但是屬于隱患的問題,比如Apache或Nginx的漏洞,遠程用戶的權限,可能被當做攻擊目標的端口等等,也需要運維人員及時處理。
以下內容根據與做運維的幾個朋友的聊天整理而來,描述了眾多管理員平時遇到的問題中的很小的一部分,算是管理員防火救火工作的一個縮影吧:
◆我們公司硬件少,一臺服務器上要跑很多程序,動不動就紊亂了!
◆硬件問題軟件問題,多多少少都遇到過啊,無非就是換設備或者重啟。
◆我們公司那個JBOSS端口總是被Java占用,導致公司主頁無法打開,每次我都要去kill。
◆被黑過。不過一般黑客還是比較客氣的。
◆曾經發現過被放了一個木馬在目錄下,后來發現是php的漏洞搞的!
◆硬盤啊,內存啊,主板啊……都壞過。
◆服務器這兩天總是莫名其妙自動重啟……
根據51CTO編輯的了解,在很多中小規模的網站中,大多數服務器故障都是由于服務紊亂所引起,服務器被黑也比較常見;而由于中小網站的服務器數量比較少,對于單獨服務器宕機的預備處理做的往往并不到位,因此一臺服務器的癱瘓很容易就造成整個服務的訪問速度變慢甚至中斷。這種問題隨著硬件的添加和相應容錯策略的完善,往往會有所好轉。
在規模較大的企業中,由于硬件充足,服務紊亂的狀況基本沒有,主要面臨的問題在于流量過大與黑客的攻擊,而且由于硬件多,硬件仿佛也更加容易壞掉了(有一句話是這樣說的:如果你有一千臺服務器,那你平均每天都會遇到一臺掛掉的服務器;如果你有很多萬臺服務器,那么每時每刻都會有某些服務器是掛掉的)。由于大型網站的高可用性方面都做的比較充分,即使一兩臺服務器停止運行,它們上面的服務自動就被轉移到其他服務器上處理了,只要及時恢復這些節點,完全不會影響到整個服務的運轉。
而像是Google這樣規模的企業,它在購買服務器的時候都是撿便宜的買,大量的購買(Google現在總共大約有100萬臺服務器),同時Google的服務從架構設計層面就包含考慮了服務器壞掉的因素,可以說是把服務器當做消耗品來使用。這樣即使每天都有很多服務器掛掉,也是在預期范圍內(所謂的高容錯)。說起來在運行大規模服務(云計算)這個領域,Google也算是數一數二了,如果你對Google的數據中心架構感興趣,可以閱讀一下《Google的整體架構猜想》以及《探索Google App Engine背后的奧秘》這整個系列,其中敘述的十分深入;同時Google自己開發的GFS文件系統,也處處體現了這方面的考慮。
當然,無論是在中小網站還是在大企業,預防服務中斷的首位指導原則都是一樣的:監控系統,分析系統日志。
- 你怎樣才能知道你有哪些程序占用了多少硬件和網絡資源?
- 你怎樣才能知道你的硬件是不是總是很繁忙?
- 你怎樣才能知道你的服務器受到了攻擊?
- 你怎樣才能知道某個進入了服務器的木馬是從哪里來的?
所有這些有關你服務器的情況,服務器的管理員必須要時刻掌握。想要時刻明明白白你的服務器?51CTO編輯為大家提供了一系列小技巧進行分享。
Linux/Unix下的監控工具很多,有命令行的和GUI的,51CTO將其整理成為一個Linux監控工具的展覽館,以供參考。另外還有撫琴煮酒的一個系列:
明明白白你的Linux/Unix服務器:硬件篇 網絡篇 日志篇 安全篇
里面的很多技巧都可以省系統管理員不少心力。
對于Windows系統而言,微軟推薦使用SCOM這款專門的監控和運維軟件,不過這款軟件需要另外購買,配置起來比較麻煩,而一般規模的業務也用不到,所以主要使用的是Windows Server自帶的Windows可靠性與性能監控器。日志也是,用Windows自帶的日志一般就夠了。
如果你的企業有足夠多的硬件,那么負載均衡、高可用這些策略你應該也不陌生。這些相關的文章可以在51CTO組網頻道的負載均衡欄目下找到很多,比如撫琴煮酒的揭秘企業級web負載均衡完美架構,19個心得 明明白白說Linux下的負載均衡,都是不錯的參考文章。Windows環境下的高可用實現更加方便,尤其是Windows Server 2008上面的故障轉移群集、網絡負載平衡等功能,靈活性強,操作起來也十分方便。
上面這些都是屬于防火的工作。至于真正遇到故障發生,需要排障的時候,則情況比較復雜了。除了檢查硬件、換硬件、加節點、檢查病毒和系統補丁、kill進程和重啟服務器之外,一些常見的故障和解決方案可以參考《網管員必讀——故障排除》這本書。但是,真實環境下遇到的故障是多種多樣的,需要更為靈活的處理方式和更多的經驗。51CTO將一直關注這方面的內容與大家分享,您可以長期關注我們的頻道。
當然,除了所有這些防火和救火的策略之外,還有最后一個終極殺手锏:備份,頻繁備份,并定期確認備份是可以恢復的。系統的備份,數據庫的備份,重要服務的備份,在不同服務器之間的備份,異地的備份……51CTO系統頻道的專題提供了一些Windows備份和Linux備份的基礎策略和工具介紹,而更加深入的備份概念與技術,讀者們可以參考51CTO的子站Watchstor.com。
如果您是一位系統管理員,而您整日被救火的工作所困擾,那么您應該要好好規劃一下自己的技術成長和職業發展道路了。
【編輯推薦】