Openstack Vitrage

2018-10-24 11:20:49 浏览数 (1)

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的箭头。

0 人点赞