开源 google nginx 微软 编程 shell php Firefox wordpress Python Ubuntu 程序员 Windows mysql 云计算 linux Android centos apache java

運維經驗分享:關於系統運維監控的幾點建議

目前很多企業信息化系統都有自己的監控平臺和監控手段,無論是采用哪種手段去實現對系統的實時監控和故障告警,大多采用的方式也只有兩種:集中式監控和分布式監控。本文作者根據自身公司監控存在的問題,總結了一些經驗並提出一些在監控平臺的建議,以供大家參考學習,如有考慮不周的地方還希望大家多多批評指正。

為了更好、更有效的保障系統上線後的穩定的運行。對於服務器的硬件資源、性能、帶寬、端口、進程、服務等都必須有一個可靠和可持續的監測機制,統計分析每天的各種數據,從而能及時反映出服務器哪裏存在性能瓶頸、安全隱患等。另外是要有危機意識,就是了解服務器有可能出現哪些嚴重的問題,出現這些問題後該如何去迅速處理。比如數據庫的數據丟失,日誌容量過大,被黑客入侵等等。

一、上線之前的準備工作

1、首先是備份,做好定時備份策略,備份所有你認為重要的數據,並且定期檢查你的備份是否有效、全面;

2、日誌輪換,無論你想用哪種輪換方式,控制日誌增長避免驅動器已滿是你的目的;

3、做一定的安全措施,如防火墻iptables的訪問控制,用denyhosts防止黑客遠程暴力破解;

4、mysql遠程登錄權限等等;

5、最後就是服務器、網元設備的監控。

二、監控策略

1、定義告警優先級策略

一般的監控到的結果是成功或者失敗,如ping不通、訪問網頁出錯、連接不到Socket,發生時這些稱之為故障,故障是最優先的告警。除此之外,還能監控到返回的延時、內容等,如Ping返回的延時、訪問網頁的時間、訪問網頁取到的內容等。利用返回的結果可以自定義告警條件,如Ping監控的返回延時一般是10-30ms之間,當延時大於100ms時候,表示網絡或者服務器可能出現問題,引起網絡響應慢,需要立即檢查是否流量過大或者服務器CPU太高等問題。

2、定義告警信息內容標準

當服務器或應用發生故障時告警信息內容非常多,如告警運行業務名稱、服務器ip、監控的線路、監控的服務錯誤級別、出錯信息、發生時間等。預先定義告警內容及標準使收到的告警內容具有規範性及可讀性。這點對於用短信接受告警內容特別有意義,短信內容最多是70個字符,要在70個字符完全知道故障內容比較困難,更需要預先定義內容規範。如:“視頻直播服務器10.0.211.65 在2012-10-18 13:00電信線路監控第到1次失敗”,清晰明了的知道故障信息。

3、通過郵件接收匯總報表

每天收到一封網站服務器監控的匯總報表郵件,花個兩三分鐘就大致了解網站和服務器狀態。

4、 集中監控和分布式監控相結合

主動(集中)監控雖然能不需要安裝代碼和程序,非常安全和方便,但缺少很多細致的監控內容,如無法獲取硬盤大小、CPU的使用率、網絡的流量等,這些監控內容非常有用,如CPU太高表示有網站或者程序出問題,流量太高表示可能被攻擊等。
被動(分布式)監控常用的是SNMP(簡單網絡管理協議),通過SNMP能監控到大部分你感興趣的內容。大部分操作系統支持SNMP,開通管理非常方便,也非常安全。SNMP缺點是比較占用帶寬,會消耗一定的CPU和內存,在CPU太高和網絡流量大情況下,無法有效進行監控。
5、定義故障告警主次

對於監控同一臺服務器的服務,需要定義一個主要監控對象,當主要監控對象出現故障,只發送主要監控對象的告警,其它次要的監控對象暫停監控和告警。例如用Ping來做主要監控對象,如果Ping不通出現Timeout,表示服務器已經當機或者斷網,這時只發送服務器Ping告警持續監控Ping,因為再繼續監控和告警其它服務已經沒有必要。這樣能大大減少告警消息數量,又讓監控更加合理、更加有效率。

本地監控腳本的規範化部署

6、對在本地部署的監控腳本要進行統一規範的部署並記錄到KM系統。

7、實現對常見性故障業務自我修復功能

實現對常見性故障業務自我修復功能腳本進行統一部署並對修復後故障進行檢查告警檢查頻次不多於3次。

8、對監控的業務系統進行分級

一級系統實現7*24小時告警,二級系統實現7*12小時告警,三級系統實現5*8小時告警。

9、 監控範圍及目標

實現對負載均衡設備、網絡設備、服務器、存儲設備、安全設備、數據庫、中間件及應用軟件等IT資源的全面監控管理;同時自動收集、過濾、關聯和分析各種管理功能產生的故障事件,實現對故障的提前預警和快速定位;對網絡和業務應用等IT資源的性能進行監控,定期提供性能報表和趨勢報表,為性能優化及未來系統擴容提供科學依據。

通常情況下,我們可以將監控對象這麽來分:

1.服務器監控,主要監控服務器如:CPU 負載、內存使用率、磁盤使用率、登陸用戶數、進程狀態、網卡狀態等。

2.應用程序監控,主要監控該應用程序的服務狀態,吞吐量和響應時間,因為不同應用需要監控的對象不同,這裏不一一列舉。

3.數據庫監控,只所以把數據庫監控單獨列出來,足以說明它的重要性,一般監控數據庫狀態,數據庫表或者表空間的使用情況,是否有死鎖,錯誤日誌,性能信息等等。

4.網絡監控,主要監控當前的網絡狀況,網絡流量等。

以上四條應該算是最基本的,也是保證網站正常運行必須要知道的幾點內容,這樣才能實現我們常說的“運籌帷幄之中,決勝千裏之外”。

延伸阅读

    评论