系統管理員應該定期完成的九件事

今天,Linux的發行版非常地容易安裝也非常容易入門。就算是一個缺乏經驗的開發者,建立必須的服務並完成可運行的程序通常也可以在幾小時內完成。

很不幸,容易入門反而掩蓋了需要做的維護工作,這些工作是保持系統穩定和使系統長期處於一個良好的工作次序中所必需的。一個單一的服務器通常可以在沒有人工干預的情況下運行很長時間。但是前提是所有其他的位和塊必需被提前配置。
關於這個列表,最糟糕的事情是你可能已經幾個月或幾年沒有做這些事情了。你忽略這些事情中的任何一件,它們都會在最糟糕的時候回來作祟:比如流量高峯期,硬盤驅動器崩潰,或******的時候。
配置管理
我用配置管理來開始,是因爲它和這個列表中的其餘項有很大的不同。這一項對單一的服務器並不重要,但是如果你有許多系統,這一項就至關重要了。PuppetChef這樣的配置管理工具允許你編寫‘recipes’來定義服務器應該如何的被放置在一起。那些‘recipes’可以在每個服務器上運行產生一個一致的、容易複製的安裝程序。這可以讓你立即啓動一個系統的新拷貝,可以給你的安裝提供極大的自由度。
配置管理是做了,但是,卻給服務器安裝程序添加了一定的初始化複雜性,所以如果你膽子小,不用也罷。不過,即使只有兩個或三個服務器,好處也是相當巨大的。
備份
這一項是顯而易見的,大多數的系統管理員都會在這方面做點工作的。如果你沒有一個可靠的備份策略,你現在需要馬上調整它。哪怕只等一天,後果很可能就是是災難性的。同時請確保你正確的做了備份,因爲備份很容易做錯。Mozy,Carbonite,Backblaze等工具的At-home備份已經取得了很大的進展,但是類似的Linux解決方案還遠沒有成熟。Rsync ,tar,和類似的腳本工具一直很受歡迎,並且也是可行的替代方案,但是必須要小心,以適應像MySQL數據庫那樣的特殊情況。每個人的備份需求是不同的,所以無論你選擇什麼解決方案也要仔細研究它潛在的不足。你選擇的解決方案應該:
◆定期運行
◆保持多輪的備份
◆自動的刪除舊的備份
◆在你的現在的操作系統以外存儲備份
◆保持和你的原始數據一樣的安全性
◆合併所有的關鍵數據,關鍵的配置文件(更換服務器以後啓動和運行系統可能會需要的任何東西),和最近的日誌
測試你的備份
緊跟着備份計劃的是測試它。這意味着定期檢查備份是否一直在做,產生的文件是否是有效的並且是否沒有被損壞,以及他們是否包括你需要的所有數據。一個好的經驗法則是如果你的備份每30天一輪換,那麼你應該經常的重新檢查他們。這裏自動化工具可以幫一些忙(自動地檢查備份文件是否是最新的,是否是合理的大小並且是否有效)。儘管如此,沒有任何東西可以替代人的眼睛……否則,當你發現你並沒有備份那些你認爲你已經備份的數據時,就只有哭的份了。
日誌輪換
在最近幾年,Ubuntu,RedHat和其他主要的發行版針對他們提供的軟件包的logrotate的運行和配置有了很大的改善。所以你的apache和mysql日誌也可以被合適的輪換(默認設置是相當合理的,雖然可能並不是你希望的方式)。但是你添加的“額外”的東西,例如Rails應用程序,需要建立它自己的logrotate條目。缺少這個步驟會在最不合適的時刻引發無數的“硬盤驅動器已滿”的服務器錯誤。當然,通常你甚至不知道你的日誌引發了這個問題。針對這種情況,資源監視纔是關鍵。
資源監視
跟蹤CPU,內存的使用情況,硬盤空間,帶寬,等可以讓你更好的洞察你的系統狀態。當流量增加的時候,你可以比較你的增加的內存或IO使用情況,來提前規劃你的“scaling”。RRDTool/MuninServerDensityCloudkick是觀察這些隨着時間的推移而變化的數據的很好的選擇。如果你選擇的工具包括對意外的變化(失控的進程,驅動器已滿等)的警報功能,你將會領先任何潛在的問題一步。
進程監視
對你的網站來說,讓你的Apache,MySQL和類似的進程一直處於運行狀態至關重要。有幾個很好的工具,例如MonitGod,可以幫助你確保你的進程一直處於運行狀態。通過檢查進程的響應性,打開的端口,或進程id那些工具可以重新啓動一個已死的服務或在一個失控的進程使你的整個系統崩潰前終止它。配置這件事的規則是個老大難問題,但是當一切都做好的時候,可以節省大量的凌晨3點鐘的宕機時間。
51CTO推薦專題:Linux監控工具的展覽館
安全加固(Hardening)
Hardening包含了許多不同的操作,這些操作可以使你的stock系統更安全。許多簡單的操作經常會被遺漏。你真的知道那些正在運行的進程中的每一個都做了什麼嗎?在你的系統上,哪些額外的端口和服務被打開了?有合適的PAM模塊載入來進行安全認證嗎?又一次,RedHat和Ubuntu走在了時代的前列,他們提供了安全stock系統,並確保最常見的軟件包遵守正確的安全協議。但是,這並不意味着你可以跳過這個步驟。
安全更新
在一個基於apt或RPM的系統上,安全更新是很容易執行的。這個過程的陷阱是很難知道升級包是否會在你的棧裏引發某些類型的錯誤。爲了確切知道升級包將對你的系統產生怎樣的影響,擁有一臺同樣配置的模擬服務器是唯一的好辦法。幸運的是,由安全更新引發的麻煩是十分罕見的。修復一個更新的兼容性問題,需要花費一些停機時間,這個風險要比你的系統上的一個已知安全漏洞被利用的風險小很多。所以,不要讓“not knowing”阻止你進行正確的升級。最後,不是每一個安全漏洞都能馬上獲得一個安裝補丁。查看CVE字典上的可用警報,可以讓你在補丁可用前,在保持你的系統安全性方面爭取主動。爲了確保一切都平滑的運行並保持最新,在這方面真的沒有什麼可以代替人的肉眼。
日誌監視/安全掃描/***檢測
這個列表中的所有項都是最低限度需要完成的。它們很容易被忘記,直到你的系統已經被***爲止,你可能都不會想起它們。對異常活動,******和其他惡意行爲的持續掃描,對於幫助阻止或減輕***來說,是十分重要的。
總結
這當然不是一個完整的列表,但是它也是十分廣泛的,許多開發者和系統管理員只是沒有時間、興趣或知識來處理它們。更糟糕的是,許多開發項目被移交給了客戶,而一旦技術團隊遷移到另一個項目上,這些客戶就沒有能處理這些事情的職員了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章