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