讀古今文學網 > OpenStack系統架構設計實戰 > 5.9 OpenStack監控 >

5.9 OpenStack監控

監控是為了確保資源是處於健康的狀態,是任何系統不可或缺的一部分。OpenStack監控除了自身服務組件Ceilometer外,還可以和第三方監控軟件結合,即通過第三方軟件實現OpenStack監控功能,以彌補Ceilometer的不足。本章介紹幾種OpenStack監控常用的第三方監控軟件。

1.Ganglia

對於OpenStack雲平台,主機、存儲和網絡的監控需求和傳統IT環境是一樣的,關注的主要指標包括CPU、內存、磁盤、網絡I/O等。Ganglia是OpenStack部署中用於性能監控且使用最多的一款開源軟件。

Ganglia是UC Berkeley發起的一個開源實時監視項目,它是一個跨平台、可擴展、高性能計算系統下的分佈式監控系統,設計用於測量數以千計的節點,為雲計算系統提供系統靜態數據以及重要的性能度量數據。

Ganglia主要是用來監控系統性能,如:CPU、內存、硬盤利用率、I/O負載、網絡流量情況等。它需要在各個節點運行客戶端程序,在中心節點部署服務器進程,來對整個集群的性能進行監控,並提供各種視圖。另外,Ganglia服務器端進程還可以組成集群,提供高可靠性,用於支持大型或生產環境的監控。

Ganglia的核心服務包括gmond、gmetad和gweb。

1)gmond(Ganglia Monitoring Daemon)是一種輕量級的服務,安裝在每台需要收集指標數據的節點主機上。gmond在每台主機上完成實際意義上的指標數據收集工作,並通過監聽/通告協議和集群內其他節點共享數據。使用gmond,用戶可以很容易地收集到很多系統指標數據,如CPU、內存、磁盤、網絡和活躍進程的數據等。

2)gmetad(Ganglia Meta Daemon)是一種從其他gmetad或gmond源收集指標數據,並將其以RRD格式存儲至磁盤的服務。gmetad為從主機組收集的特定指標信息提供了簡單的查詢機制,並支持分級授權,使得創建聯合監測域成為可能。

3)gweb(Ganglia Web)是一種利用瀏覽器展示gmetad所存儲的數據的PHP前端。在Web界面中以圖表方式展現集群運行狀態下收集的各種不同指標的數據。

Ganglia的強大在於:其服務端可以通過一台客戶端收集到同一個網段的所有客戶端的數據,而Ganglia集群服務端可以通過一台服務端收集到它下屬的所有客戶端的數據,這就表示一台服務器通過不同的分層能夠管理上萬台機器,這種管理能力是其他監控軟件所不能比擬的。Ganglia監控界面如圖5-6所示。

圖5-6 Ganglia監控界面

2.Nagios

Nagios是在OpenStack部署中廣泛使用的用於監控雲平台各種服務與資源的開源監控軟件,它具有良好的擴展性,很容易加入自行開發的監控項目,為用戶提供了很大的便利性和靈活性。

Nagios是監控體系的框架,也是所有監控的基礎。Nagios所有的監控、檢測功能都是由插件來完成的,插件將監控的結果返回給Nagios,Nagios分析這些結果,再以Web的方式展現給用戶。它同時提供相應的報警功能,在系統或服務狀態異常時可以發送郵件或短信報警通知網站運維人員,並在狀態恢復後發出正常的郵件或短信通知。報警的功能也是由插件完成的。

默認的Nagios可以監控磁盤、SSH、Ping等系統基本服務,但Nagios對OpenStack卻一無所知,需要用戶自行開發和擴展插件實現監控,網絡上也有不少免費的監控腳本可以直接集成進來。對於OpenStack服務的監控,最基本的可以從進程的角度進行監控,例如,進程是否運行、響應速度如何等。更進一步,可以結合不同服務的命令,通過查詢來判斷服務本身的質量如何,這需要瞭解OpenStack各個服務的使用,以及租戶、用戶、密碼等信息。

Nagios主機監控視圖如圖5-7所示。

圖5-7 Nagios主機監控視圖

3.LogStash

OpenStack雲平台由於服務眾多,會產生大量的日誌輸出,且關聯的服務往往運行於不同的節點之上,一旦出現問題,通過日誌排除故障非常不方便。因此,需要一款日誌管理工具,幫助用戶收集、傳輸、管理日誌,以便能快速地搜索、排查問題。

LogStash是一個開源的日誌管理工具,也是一個應用程序日誌傳輸、處理、管理和搜索的平台,用戶可以用它來統一對應用程序日誌進行收集管理,並提供Web接口用於查詢和統計。

LogStash在各個節點部署了代理程序,可以將日誌輸出匯聚到中心節點進行分析,而中心節點本質上是一個搜索引擎和信息統計工具。LogStash通常和ElasticSearch、Kibana配合使用。ElasticSearch是一個基於Lucene構建的開源的分佈式RESTful搜索引擎,Kibana是一個基於瀏覽器頁面的ElasticSearch前端展示工具。三者結合起來使用,可以實現對日誌進行高效的搜索、可視化、分析等各種操作。簡單來講,LogStash+ElasticSearch+Kibana的工作流程如下:

1)LogStash Shipper監控並過濾日誌,將過濾後的日誌內容發給Redis(消息隊列)。

2)LogStash Indexer從Redis中讀取數據,將日誌收集在一起交給ElasticSearch。

3)ElasticSearch可以自定義搜索,並結合Kibana進行頁面展示。

LogStash日誌分析界面如圖5-8所示。

圖5-8 LogStash日誌分析界面

除上述監控軟件外,還有一些其他的監控軟件,如Zabbix、CloudWatch、Zenoss、OpenNMS、Icinga等,也可以用來實現OpenStack監控,具體用哪個軟件應根據用戶監控需求的側重點不同而定。

幾款常用的開源監控軟件的特點如表5-17所示。

表5-17 開源監控軟件的特點