運維經驗分享:關于系統(tǒng)運維監(jiān)控的幾點建議
目前很多企業(yè)信息化系統(tǒng)都有自己的監(jiān)控平臺和監(jiān)控手段,無論是采用哪種手段去實現(xiàn)對系統(tǒng)的實時監(jiān)控和故障告警,大多采用的方式也只有兩種:集中式監(jiān)控和分布式監(jiān)控。本文作者根據(jù)自身公司監(jiān)控存在的問題,總結了一些經驗并提出一些在監(jiān)控平臺的建議,以供大家參考學習,如有考慮不周的地方還希望大家多多批評指正。
為了更好、更有效的保障系統(tǒng)上線后的穩(wěn)定的運行。對于服務器的硬件資源、性能、帶寬、端口、進程、服務等都必須有一個可靠和可持續(xù)的監(jiān)測機制,統(tǒng)計分析每天的各種數(shù)據(jù),從而能及時反映出服務器哪里存在性能瓶頸、安全隱患等。另外是要有危機意識,就是了解服務器有可能出現(xiàn)哪些嚴重的問題,出現(xiàn)這些問題后該如何去迅速處理。比如數(shù)據(jù)庫的數(shù)據(jù)丟失,日志容量過大,被黑客入侵等等。
一、上線之前的準備工作
1、首先是備份,做好定時備份策略,備份所有你認為重要的數(shù)據(jù),并且定期檢查你的備份是否有效、全面;
2、日志輪換,無論你想用哪種輪換方式,控制日志增長避免驅動器已滿是你的目的;
3、做一定的安全措施,如防火墻iptables的訪問控制,用denyhosts防止黑客遠程暴力破解;
4、mysql遠程登錄權限等等;
5、最后就是服務器、網元設備的監(jiān)控。
二、監(jiān)控策略
1、定義告警優(yōu)先級策略
一般的監(jiān)控到的結果是成功或者失敗,如Ping不通、訪問網頁出錯、連接不到Socket,發(fā)生時這些稱之為故障,故障是最優(yōu)先的告警。除此之外,還能監(jiān)控到返回的延時、內容等,如Ping返回的延時、訪問網頁的時間、訪問網頁取到的內容等。利用返回的結果可以自定義告警條件,如Ping監(jiān)控的返回延時一般是10-30ms之間,當延時大于100ms時候,表示網絡或者服務器可能出現(xiàn)問題,引起網絡響應慢,需要立即檢查是否流量過大或者服務器CPU太高等問題。
2、定義告警信息內容標準
當服務器或應用發(fā)生故障時告警信息內容非常多,如告警運行業(yè)務名稱、服務器IP、監(jiān)控的線路、監(jiān)控的服務錯誤級別、出錯信息、發(fā)生時間等。預先定義告警內容及標準使收到的告警內容具有規(guī)范性及可讀性。這點對于用短信接受告警內容特別有意義,短信內容最多是70個字符,要在70個字符完全知道故障內容比較困難,更需要預先定義內容規(guī)范。如:“視頻直播服務器10.0.211.65 在2012-10-18 13:00電信線路監(jiān)控第到1次失敗”,清晰明了的知道故障信息。
3、通過郵件接收匯總報表
每天收到一封網站服務器監(jiān)控的匯總報表郵件,花個兩三分鐘就大致了解網站和服務器狀態(tài)。
4、 集中監(jiān)控和分布式監(jiān)控相結合
- 主動(集中)監(jiān)控雖然能不需要安裝代碼和程序,非常安全和方便,但缺少很多細致的監(jiān)控內容,如無法獲取硬盤大小、CPU的使用率、網絡的流量等,這些監(jiān)控內容非常有用,如CPU太高表示有網站或者程序出問題,流量太高表示可能被攻擊等。
- 被動(分布式)監(jiān)控常用的是SNMP(簡單網絡管理協(xié)議),通過SNMP能監(jiān)控到大部分你感興趣的內容。大部分操作系統(tǒng)支持SNMP,開通管理非常方便,也非常安全。SNMP缺點是比較占用帶寬,會消耗一定的CPU和內存,在CPU太高和網絡流量大情況下,無法有效進行監(jiān)控。
5、定義故障告警主次
對于監(jiān)控同一臺服務器的服務,需要定義一個主要監(jiān)控對象,當主要監(jiān)控對象出現(xiàn)故障,只發(fā)送主要監(jiān)控對象的告警,其它次要的監(jiān)控對象暫停監(jiān)控和告警。例如用Ping來做主要監(jiān)控對象,如果Ping不通出現(xiàn)Timeout,表示服務器已經當機或者斷網,這時只發(fā)送服務器Ping告警持續(xù)監(jiān)控Ping,因為再繼續(xù)監(jiān)控和告警其它服務已經沒有必要。這樣能大大減少告警消息數(shù)量,又讓監(jiān)控更加合理、更加有效率。
本地監(jiān)控腳本的規(guī)范化部署
6、對在本地部署的監(jiān)控腳本要進行統(tǒng)一規(guī)范的部署并記錄到KM系統(tǒng)。
7、實現(xiàn)對常見性故障業(yè)務自我修復功能
實現(xiàn)對常見性故障業(yè)務自我修復功能腳本進行統(tǒng)一部署并對修復后故障進行檢查告警檢查頻次不多于3次。
8、對監(jiān)控的業(yè)務系統(tǒng)進行分級
一級系統(tǒng)實現(xiàn)7*24小時告警,二級系統(tǒng)實現(xiàn)7*12小時告警,三級系統(tǒng)實現(xiàn)5*8小時告警。
9、 監(jiān)控范圍及目標
實現(xiàn)對負載均衡設備、網絡設備、服務器、存儲設備、安全設備、數(shù)據(jù)庫、中間件及應用軟件等IT資源的全面監(jiān)控管理;同時自動收集、過濾、關聯(lián)和分析各種管理功能產生的故障事件,實現(xiàn)對故障的提前預警和快速定位;對網絡和業(yè)務應用等IT資源的性能進行監(jiān)控,定期提供性能報表和趨勢報表,為性能優(yōu)化及未來系統(tǒng)擴容提供科學依據(jù)。
通常情況下,我們可以將監(jiān)控對象這么來分:
1.服務器監(jiān)控,主要監(jiān)控服務器如:CPU 負載、內存使用率、磁盤使用率、登陸用戶數(shù)、進程狀態(tài)、網卡狀態(tài)等。
2.應用程序監(jiān)控,主要監(jiān)控該應用程序的服務狀態(tài),吞吐量和響應時間,因為不同應用需要監(jiān)控的對象不同,這里不一一列舉。
3.數(shù)據(jù)庫監(jiān)控,只所以把數(shù)據(jù)庫監(jiān)控單獨列出來,足以說明它的重要性,一般監(jiān)控數(shù)據(jù)庫狀態(tài),數(shù)據(jù)庫表或者表空間的使用情況,是否有死鎖,錯誤日志,性能信息等等。
4.網絡監(jiān)控,主要監(jiān)控當前的網絡狀況,網絡流量等。
以上四條應該算是最基本的,也是保證網站正常運行必須要知道的幾點內容,這樣才能實現(xiàn)我們常說的“運籌帷幄之中,決勝千里之外”。
























