Openstack Vitrage

Vitrage簡介

Vitrage(平臺問題定位分析服務)。Vitrage是一個OpenStack RCA(Root Cause Analysis)服務,用於組織、分析和擴展OpenStack的告警和事件,在真正的問題發生前找到根本原因。

衆所周知,OpenStack平臺最大的優勢來自於架構的可擴展性,這也是OpenStack能夠在基礎架構曾一枝獨秀的重要原因。分佈式架構最大的優勢在於擴展,但是過於靈活的擴展性爲運維帶來的極大的困難,所以Vitrage的出現在一定程度上緩解了OpenStack運維上的痛點。

功能簡介:

1.物理-虛擬實體映射 2.推導告警和狀態(例如:基於系統分析後產生告警或者修改狀態,而不是直接監控) 3.對告警、事件進行根因分析 4.Horizon顯示

架構

Vitrage Data Source(s): 負責從不同來源導入關於系統狀態的信息。這些信息包括物理資源、虛擬資源的告警和狀態,這些信息將會由vitrage Graph處理。目前,vitrage已經支持的數據源有:Nova、Cinder、Aodh、Nagios 告警以及靜態物理資源等。

Vitrage Graph: 保存數據源收集的信息以及其內部關係。另外,它實現了一些vitrage evaluator使用的基本圖算法(例如:sub-matching, BFS, DFS等)。

Vitrage Evaluator: 協調vitrage Graph進行分析(修改)並處理分析結果。負責執行vitrage中定義的不同類型模板的動作,例如添加一個告警的根因分析,產生一個推導後的告警或者設置一個推導後的狀態。

Vitrage Notifiers: 用來通知外部系統Vitrage的告警和狀態。目前支持用Aodh notifier來產生vitrage告警,以及用Nova notifier來標註主機down等。

服務

Vitrage-graph服務主程序:包含了in-memory 實體圖、模板分析程序以及datasource分析程序等。

Vitrage-collector服務:負責從不同數據源獲取資源信息,包括主動獲取數據源的告警和狀態等資源,被動接收數據源發送過來的信息。負責將取得的信息解析成entity信息傳給Vitrage-graph使用。

Vitrage-notifier服務:用來通知外部系統Vitrage的告警或者狀態變化。在Ocata版本中只支持通知Nova force-down API以及SNMP。

Vitrage-api進程:Vitrage的API層,以進程形式表示Vitrage圖形顯示、vitrage CLI將調用vitrage-api。

Entity Graph + Evaluator

Vitrage holds the system state (resources & alarms) as a property graph

  • Entities are represented as graph vertices, and relationships are the edges between the vertices
  • Each vertex and edge can also have additional properties
  • Each edge has a special “label” indicating the type of relationship
  • Intuitive modeling of relationship/interaction data

Vitrage Evaluator listens to change events in the entity graph and upon event:

  • Retrieve templates (scenarios) relevant to event
  • Evaluate condition against the state of the Entity Graph
  • Execute actions for each matched condition

Use Cases for Vitrage:新增Nova實例

1) Nova datasource Driver查詢所有的nova實例,或者獲取消息隊列通知,得知新增了一個nova實例。 2) Nova datasource Driver向Entity Queue發出對應的事件。 3) The Entity Processor從Entity Queue獲得新增Nova實例事件。 4) The Entity Processor將事件傳遞給Nova Instance Transformer 5) 在圖上顯示最新的Nova實例,並和相應的Host建立連接關係。

Use Cases for Vitrage:新增Aodh告警

流程類似上面的新增Nova實例,不詳細說明了,直接上圖。

Use Cases for Vitrage:Nagios主機物理網卡故障推導出主機上的實例故障

通過Nagios, Zabbix監視物理網卡的狀態,一旦故障給出告警。

Vitrage通過監視工具得到故障告警,並將告警加入實體圖,下圖中的Host NIC

找到對應的腳本(模板)並執行以下的動作: 給出推導的有關主機的告警 同樣將此告警加入實體圖 改變Vitrage的主機狀態 可以通過調用Nova API來改變主機的狀態 增加告警的因果關係 一旦推導的主機告警成立,相同的流程會應用到主機上的vm實例和相關的VNF

Use Cases for Vitrage:RCA根本原因分析

1)Evaluator被通知一個新的告警Alarm-X(如下圖的Instance At Risk1) 2) Evaluator評估模板和圖,推導出在Alarm-X and Alarm-Y間有一個根本原因,在圖上增加一個Alarm-Y指向Alarm-X的箭頭。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章