隨著Linux應用日益廣泛,絕大部分的網絡服務器都使用Linux操作系統(tǒng)。為了全面掌握網絡服務器的運行狀況和趨勢,需要對服務器進行全面的監(jiān)控。
利用Linux發(fā)行版搭建一個網絡服務器可能對于許多人都是一件很容易的事情,但網絡服務器正式上線后,服務器數據流動、連接數、網絡流量、系統(tǒng)負荷等各方面都會增加,安全問題也隨之而來,再考慮到日志、數據庫的重要性,我想無論是哪一位系統(tǒng)管理員,都應該迫不及待地想把服務器上線的前期工作做好吧。
那我們究竟需要做好哪些工作準備呢?之前有看過一篇文章說到系統(tǒng)管理員應該定期完成的九件事情,我分析過后,認為有幾件事情是必須得做的。首先是備份,做好定時備份策略,備份所有你認為重要的數據,并且定期檢查你的備份是否有效、全面;日志輪換,無論你想用哪種輪換方式,控制日志增長避免驅動器已滿是你的目的;做一定的安全措施,如防火墻iptables的訪問控制,用denyhosts防止黑客遠程暴力破解,mysql遠程登錄權限等等;最后就是服務器監(jiān)控,也是我主要想講述的內容。
對于服務器的硬件資源、性能、帶寬、端口、進程、服務等都必須有一個可靠和持續(xù)的監(jiān)測,統(tǒng)計分析每天的各種數據,從而能及時反映出服務器哪里存在性能瓶頸、安全隱患等。另外是要有危機意識,就是了解服務器有可能出現哪些嚴重的問題,出現這些問題后該如何去迅速處理。比如數據庫的數據丟失,日志容量過大,被黑客入侵等等。說到底,預防是關鍵。
監(jiān)控,是預防的其中的一項重要工作。這里先說說我需要監(jiān)控的內容。系統(tǒng)負載、cpu使用率、內存占用、磁盤空間、網絡流量、端口、進程、apache或tomcat的連接數、mysql的運行狀態(tài)這些都是我想要監(jiān)控的東西,但又能做到多少呢,我只能盡力而為了。要了解服務器每時每刻的整體運行狀態(tài),單靠幾個Linux自帶的性能監(jiān)測命令是很難實現的。所以,利用shell腳本和開源監(jiān)控工具進行服務器監(jiān)控成為了我的兩個主要的選擇。
利用shell腳本監(jiān)控能夠很好把握的監(jiān)控的內容,時間,警告峰值,以及方便地進行告警通知,自定義監(jiān)控日志內容等等;而許多開源的監(jiān)控工具都十分方便和實用,比如有zabbix、cacti、nagios等,而且能夠針對不同的監(jiān)控內容,生成好看的便于觀察的曲線圖,多數的開源監(jiān)控工具都比較成熟,至于哪個好用就得用過才知道。