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 #阈值

}

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

  1. 《转》Ceilometer Alarm API 參数具体解释 及 举例说明

    Ceilometer Alarm是H版新加入的功能,监控报警是云平台必不可少的部分,Ceilometer已经实现了比較完好的监控体系.报警怎么能缺少呢?用过AWS CloudWatch Alarm的人 ...

  2. 为自己的系统定制openstack ceilometer

    一.目的 最近研究了一下ceilometer,目的做一个监控系统,对系统中发生的事件进行处理.ceilometer对openstack各个组件信息的收集方式主要由 推 和  拉 两种. “推”: 就是 ...

  3. Android运行机制

    一. Android平台各层 Android平台架构图,如下图:由上到下依次为应用程序.应用程序框架.库.Android运行时.Linux内核. 1.Linux内核: Android系统基于Linux ...

  4. <转>Openstack Ceilometer监控项扩展

    Openstack ceilometer主要用于监控虚拟机.服务(glance.image.network等)和事件.虚拟机的监控项主要包含CPU.磁盘.网络.instance.本文在现有监控项的基础 ...

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

    <Openstack ceilometer监控项扩展>( http://eccp.csdb.cn/blog/?p=352 )主要介绍了对虚拟机监控项扩展, 比較简单.怎样在ceilomet ...

  6. Hadoop_19_MapReduce&&Yarn运行机制

    1.YARN的运行机制 1.1.概述: Yarn集群:负责海量数据运算时的资源调度,集群中的角色主要有:ResourceManager.NodeManager Yarn是一个资源调度(作业调度和集群资 ...

  7. (十三)Maven插件解析运行机制

    这里给大家详细说一下Maven的运行机制,让大家不仅知其然,更知其所以然. 1.插件保存在哪里? 与我们所依赖的构件一样,插件也是基于坐标保存在我们的Maven仓库当中的.在用到插件的时候会先从本地仓 ...

  8. 深入理解JavaScript运行机制

    深入理解JavaScript运行机制 前言 本文是写作在给团队新人培训之际,所以其实本文的受众是对JavaScript的运行机制不了解或了解起来有困难的小伙伴.也就是说,其实真正的原理和本文阐述的并不 ...

  9. javascript运行机制

    太久没更新博客了,Javascript运行机制 Record it 1.代码块 JavaScript中的代码块是指由<script>标签分割的代码段.例如: <script type ...

  10. ASP.NET MVC的运行机制--url的全局分析

    全局 首先我们来看一副图片       首先,用户通过Web浏览器向服务器发送一条url请求,这里请求的url不再是xxx.aspx格式,而是http://HostName/ControllerNam ...

随机推荐

  1. Gephi学习笔记

    使用gephi对图数据进行可视化操作,下面网址是gephi的说明文档 https://seinecle.github.io/gephi-tutorials/generated-pdf/semantic ...

  2. Nessus中文报告自动化脚本

    前言 Nessus扫描完成,总要花挺多时间去整理报告,为此写了一个小脚本,用于自动化生成中文漏洞报告. 解析导出的html报告,自动翻译成中文,并提供修复建议,减少整理报告的时间,提升工作效率. gi ...

  3. 【原创】我的KM算法详解

    0.二分图 二分图的概念 二分图又称作二部图,是图论中的一种特殊模型. 设G=(V, E)是一个无向图.如果顶点集V可分割为两个互不相交的子集X和Y,并且图中每条边连接的两个顶点一个在X中,另一个在Y ...

  4. Linux下的awk文本分析命令实例(二)

    awk实现求和.平均.最大值和最小值的计算操作 准备和数据文件 [finance@master2-dev ~]$ cat data.txt 求和 [finance@master2-dev ~]$ ca ...

  5. 命令行部署SharePoint2016离线前提条件和添加服务器的Feature

    前言 Sp2016的软件环境要求如下: 服务器场中的数据库服务器的最低要求: 以下各项之一: Microsoft SQL Server 2014 Service Pack 1 (SP1) 的 64 位 ...

  6. 关于Redis 应用 的一些 感悟

    最近在项目中 使用了 Redis技术

  7. 微信小程序开发笔记02

    今天学习了微信小程序开发用到的语言,wxml与wxss语言基本语法与html和css基本语法相似,学习起来相对简单.在小程序主要的语言是js(javascript,跟准确的说是jqery) ,由于这种 ...

  8. 初识NLTK

    需要用处理英文文本,于是用到python中nltk这个包 f = open(r"D:\Postgraduate\Python\Python爬取美国商标局专利\s_exp.txt") ...

  9. TCP 套叠字

    一.  TCP 协议 # ------------TCP套叠字-------------------- server 端 import socket,time ip_port=('localhost' ...

  10. Python学习之旅(二十三)

    Python基础知识(22):进程和线程(Ⅰ) 1.多进程 (1)fork Python的os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进程 fork可以在Mac ...