首页 > 代码库 > Openstack+Monasca简介(1)

Openstack+Monasca简介(1)

由于关于Monasca的中文介绍并不多,本系列文章主要介绍Monsca组件在openstack的工作流程与原理:

  • Openstack+Monasca简介(1)

    Monasca组件介绍

Monasca是什么:

  • 一个具有高性能,可扩展,高可用的监控即服务的(MONaas)解决方案。

    • 使用Rest API接口来存储、查询性能和历史数据,不同与其他监控工具使用特殊的协议和传输方法,如nagios的NSCA,Monasca只利用了http。

    • 多租户认证,指标的提交和认证使用Keystone组件。存储关联租户ID

    • 指标使用(key,value)的键值来定义,称作量度(dimensions)

    • 对系统指标进行实时阈值和告警

    • 复合告警设置使用简单的语法,由子告警表达式和逻辑操作器组成

    • 监控代理支持内置的系统和服务的检查结果,同时也只nagios的checks和statsd

    • 根据开源技术搭建的开源监控方案

Monasca架构图

技术分享

  • monasca-agent:监控代理,python编写,包含了多个子组件,支持各种cpu使用率、可用内存、nagios插件、statsd、以及许多服务如mysql、rabbitMQ等监控

  • monasca-api: 一个用于监控的RESTful API接口,针对在以下概念和区域:

    • 指标:对于实时的大量指标的存储和查询

    • 统计:查询指标的统计数据

    • 告警定义:告警定义的增删查改

    • 告警: 查询和删除告警历史

    • 通知方式: 创建和删除通知方式,当告警状态改变时可以只接邮件通知用户
      -monasca API可以通过python或JAVA来实现

  • manasca-persister:消息队列传送指标或告警的消费者(RPC传输中的概念consumer),并将指标和告警存入对应的数据库

  • monasca-transform:一个转换聚合引擎,转换指标的名字和值,生成新的指标传递给消息队列,目前不可用

  • Anomaly and Prediction Engine:目前还是原型阶段

  • monasca-thresh:对指标进行计算,当超过阈值是发布告警给消息队列,基于Apache storm项目(开源实时分布式计算系统)

  • monasca-notification:接受从消息队列传来的告警,并发送通知,如发送告警邮件,Notification Engine基于Python

  • monasca-analytics:分析引擎,接受从消息队列传来的告警,进行异常检测和告警关联,不知道为什么架构图中没有。。

  • 消息队列:以前是支持RabbitMQ的,由于性能、规模、持续性和高可用的限制,转向了Kafka。

  • Metrics and Alarms Database:支持Vertica和infuxDB,对Cassandra的支持正在进行中

  • Config Database:配置信息数据库,目前使用Mysql,对PostgreSQL的支持正在进程中

  • python-monascaclient:python实现的命令行客户端,对monasca API进行操控

  • Monitoring UI:Horizon dashboard的可视化

  • Ceilometer publisher:提供给Ceilometer的multi-publisher插件,图中没有显示,用来转化和发布样本给monasca API。**这块等研究完ceilometer+monasca再来补充

除了第三方的组件,如storm这种,其他大部分组件都可以去各自源中去查看描述。

消息模板

Monasca/Message Schema

消息队列

  • 基于kafka

  • 在Monasca中各种消息通过messageQ发送或接收,具体查阅上面的消息模板

指标和告警数据库

目前支持Vertica和influxDB
在Vertica中用到的表如以下:

  • MonMetrics.Measurements: Stores the actual measurements that are sent.

  • MonMetrics.DefinitionDimensions

  • MonMetrics.Definitions

  • MonMetric.Dimensions

配置数据库

目前使用Mysql存储Monasca的配置信息
其中使用的SQL表:

  • alarm

  • alarm_action

  • notification_method

  • sub_alarm

  • sub_alarm_dimension


发于:blog.bobozhu.cn

本文出自 “DanielQu” 博客,请务必保留此出处http://qujunorz.blog.51cto.com/6378776/1868286

Openstack+Monasca简介(1)