整体架构

说明

VM Server

主要功能:

  • 提供监控数据获取API
  • 提供报警触发器设置API
  • 提供时间获取API
  • 提供心跳API
  • 提供Agent管理界面

组件:

  • VMServer(API服务)
  • Mysql(存储用户设定的触发器)
  • Mongodb(存储监控数据)

VM Agent

主要功能:

  • 采集当前物理机下的所有虚拟机的监控数据。
  • 和VM Server保持的心跳,更新自己名下的虚拟机,更新虚拟机的报警设置。
  • 分析监控数据,并将监控数据上报给server。

数据采集存储流程

libvirt → VM Agent → mongodb

数据分析流程

  1. Agent通过心跳获取最新的触发器
  2. Agent根据触发器判断是否报警
  3. 触发报警就设置触发器状态,否则没有处理
  4. server检查到触发器发生变化,生成事件,同时根据触发器的报警联系人短信和邮件的设置生成发送任务。

数据获取流程

user → VM Server API → mongodb