Openstack-Ceilometer-Alarm运行机制

1校验

对alarm列表进行定时监测,如果发现与设置的limit值不满足,则发出警报

监控服务分为三种:默认服务,单进程校验服务和分布式校验服务。根据配置来决定,默认配置:default

Alarm状态


名称


数据库代码


对应数据库操作字段


UNKNOWN


insufficient data


insufficient_data_actions


OK


ok


ok_actions

ALARM


alarm


alarm_actions

1.1服务

1.1.0 AlarmService

基类,其他service都集成它,实现了基本的校验功能

1.1.1  AlarmEvaluationService(默认服务)

  1. 根据alarm列表(当前enable的alarm)启动校验定时器
  2. 启动负载均衡服务,启动心跳信息定时器

1.1.2  SingletonAlarmService(单进程校验服务)

单进程校验,处理能力较弱,数据量较大的时候会延时或者shutdown,不推荐使用

  1. 根据alarm列表(当前enable的alarm)逐个校验

1.1.3  PartitionedAlarmService(分布式校验服务)

PartitionedAlarmService

它通过rpc实现了一套多个evaluator进程之间的协作协议(PartitionCoordinator),使得可以通过水平扩展来不断增大alarm service的处理能力,这样实现了一个简单的负载均衡,还实现了高可用

PartitionCoordinator

允许启动多个ceilometer-alarm-evaluator进程,这多个进程之间的关系是互相协作的关系,他们中最早启动的进程会被选为master进程,master进程主要做的事情就是给其他进程分配alarm,每个进程都在周期性的执行三个任务:

  • 发布存在消息;通过rpc,向其它进程广播自己的状态,来告知其他进程,自己是活着的,每个进程中都保存有其他进程的最后活跃时间
  • 校验是否可以成为master;每个进程都会不断的更新自己所维护的其它进程的状态列表,根据这个状态列表,来判断是否应该由自己来当master,判断一个进程是否是master的条件只有一个,那就是看谁启动的早
  • 校验数据;检查本进程负责的alarm,调用ceilometerclient的接口,来获取该alarm的监控指标对应的监控数据,然后进行判断,发送报警等

1.2 Alarm

1.2.1 combination

Alarm的alarm,综合多个指标的结果来进行相应操作

1.2.2 threshould

监控某一个或者多个指标,若大于、小于或者等与监控的阈值等情况时,触发alarm指定状态的动作

2报警

报警功能是根据alarm对象中规定的规则定时校验meter数据,如果发现有符合条件的数据,发出报警。初始alarm状态为ok,校验后如果状态变为unkown或者alarm则alarm_history表会有alarm状态更新数据,同时触发对应状态的action。如果当前状态为alarm,校验后状态任然为alarm,则不会触发对应action。

2.1 Log

记录日志,级别:info

2.2 Rest

通过http协议调用alarm中指定状态的动作,通常是一个调用指定的地址,报告状态。

2.3 Test

测试使用,没有实际使用

2.4 Trust

调用keystone接口,使用rest中的方法发送

3可能遇到的问题

  1. 创建alarm时对于时间段选择的错误。如果需要一直监控而不是只在某个时间段监控的话,这个字段可以直接不赋值
  2. 创建alarm时几个条件的组合需要思考好。间隔时间(period/evaluation_periods)、时间范围(time_constraints),alarm类型(type)以及根据类型对应的操作(xx_action)
  3. 创建alarm初始状态给定为ok
  4. Alarm规则设置。一般是:[meter_name]记录中的 [field]在[evaluation_periods]时间内的[avg/max/min/..]数值[大于(gt)、小于(lt)、等于(eg)…]则满足条件,需要更新alarm状态。规则示例

"threshold_rule": {

"comparison_operator": "gt", #大于

"evaluation_periods": 2, #和period确定校验时间段

"exclude_outliers": False,

"meter_name": "disk.device.read.requests",

"period": 10,

"query": [ #查询规则

{

"field": "resource_id",

"op": "eq",

"type": "string",

"value": "fc0e5394-0276-413e-8d81-e3324df35a12-vda"

}

],

"statistic": "avg", #针对meter中volume的具体计算方法,如平均值,最大值,最小值等

"threshold": 990 #阈值

}

时间: 2024-12-18 20:20:59

Openstack-Ceilometer-Alarm运行机制的相关文章

《转》ceilometer的数据采集机制入门

问题导读 1.ceilometer负责什么事情? 2.ceilometer 有哪些概念? 3.ceilometer 如何采集hardware? 附上openstack 官网API   http://docs.openstack.org/developer/python-ceilometerclient/ ceilometer主要负责监控数据的采集,采集的项目包括虚拟机的性能数据,neutron-l3-router使用的网络带宽,glance&cinder&swift等租户使用信息,甚至是通

<转>Openstack ceilometer 宿主机监控模块扩展

<Openstack ceilometer监控项扩展>( http://eccp.csdb.cn/blog/?p=352 )主要介绍了对虚拟机监控项扩展, 比較简单.怎样在ceilometer框架基础上,添加对宿主机.服务等的监控?本文以宿主机监控为例,具体介绍扩展方法. 首先,整体介绍Ceilometer採集监控数据到持久化存储的流程,在compute节点上通过pollster的轮询机制获取宿主机的各监控数据,通过publisher调用rpc将监控数据发送到消息队列.collector端依据

&amp;lt;转&amp;gt;Openstack Ceilometer监控项扩展

Openstack ceilometer主要用于监控虚拟机.服务(glance.image.network等)和事件.虚拟机的监控项主要包含CPU.磁盘.网络.instance.本文在现有监控项的基础上,介绍怎样添加新的监控项目. 一.Ceilometer框架结构 Ceilometer监控通过在计算节点部署Compute服务.轮询其计算节点上的instance.获取各自的CPU.网络.磁盘等监控信息,发送到RabbitMQ.Collector服务负责接收信息进行持久化存储.具体框架例如以下图所看

Android剖析和运行机制

翻译之<Android Anatomy and Physiology>,下载地址:http://download.csdn.net/detail/wuxiaoer717/6839427 大纲: 1. Android剖析 Linux内核 本地库(Native Libraries) Android运行时(Android Runtime) 应用框架 2. Android运行机制 启动流程 层间交互(Layer Interaction) 一. Android剖析 如下图所示为Android的架构图 1

&lt;转&gt;Openstack ceilometer 宿主机监控模块扩展

<Openstack ceilometer监控项扩展>( http://eccp.csdb.cn/blog/?p=352 )主要介绍了对虚拟机监控项扩展, 比较简单.如何在ceilometer框架基础上,增加对宿主机.服务等的监控?本文以宿主机监控为例,详细介绍扩展方法. 首先,总体介绍Ceilometer采集监控数据到持久化存储的流程,在compute节点上通过pollster的轮询机制获取宿主机的各监控数据,通过publisher调用rpc将监控数据发送到消息队列,collector端根据

深入理解struts的运行机制

在此申明本博文并非原创,原文:http://blog.csdn.net/lenotang/article/details/3336623,本文章是在此文章基础上进行优化.也谈不上优化,只是加上了点自己的想法 jar包准备 为什么会用到这两个jar包呢,因为我需要通过这个jar来解析xml配置文件. 新建项目 流程梳理 struts配置文件 <?xml version="1.0" encoding="UTF-8"?> <struts> <

Struts2运行机制

前言: 首先感谢中国最专业的java培训班<北京尚学堂>的无私奉献精神,免费提供这么多学习资料. 以及我的偶像马士兵老师,感觉您特帅,技术特别牛,今生若能相见,甚好.谢谢. struts2的运行机制: 探讨任何的运行机制,一定是这里开始, (http://localhost:8080/Struts2_Instroduction/hello.action)(.action可省略) 客户端在浏览器输入一个URL地址,这个请求通过http协议发送给tomcat,tomcat接收到请求后,查看请求的是

Spark架构及运行机制

Spark是基于内存计算的大数据并行计算框架.因为其基于内存计算,较Hadoop中MapReduce计算框架具有更高的实时性,同时保证了高效容错性和可伸缩性.从2009年诞生于AMPLab到现在已经成为Apache顶级开源项目,并成功应用于商业集群中.学习Spark就需要了解其架构及运行机制. Spark架构 Spark架构使用了分布式计算中master-slave模型,master是集群中含有master进程的节点,slave是集群中含有worker进程的节点. master作为整个集群的控制

SSL/TLS协议运行机制的概述

转自:SSL/TLS协议运行机制的概述 作者: 阮一峰 日期: 2014年2月 5日 互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 不使用SSL/TLS的HTTP通信,就是不加密的通信.所有信息明文传播,带来了三大风险. (1) 窃听风险(eavesdropping):第三方可以获知通信内容. (2) 篡改风险(tampering):第三方可以

java运行机制详细

JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现.编译虚拟机的指令集与编译微处理器的指令集非常类似.Java虚拟机包括一套字节码指令集.一组寄存器.一个栈.一个垃圾回收堆和一个存储方法域. Java虚拟机(JVM)是可运行Java代码的假想计算机.只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行. 1.为什么要使用Java虚拟机 Java语言的一个非常重要的特点就是与平台的无关性.而使用Java虚拟机是实