设为首页 收藏本站
查看: 1248|回复: 0

[经验分享] Openstack-Ceilometer-Alarm运行机制

[复制链接]

尚未签到

发表于 2015-4-12 14:38:20 | 显示全部楼层 |阅读模式
  
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(默认服务)

  • 根据alarm列表(当前enable的alarm)启动校验定时器
  • 启动负载均衡服务,启动心跳信息定时器
1.1.2  SingletonAlarmService(单进程校验服务)
  单进程校验,处理能力较弱,数据量较大的时候会延时或者shutdown,不推荐使用

  • 根据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的监控指标对应的监控数据,然后进行判断,发送报警等
DSC0000.jpg

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可能遇到的问题

  • 创建alarm时对于时间段选择的错误。如果需要一直监控而不是只在某个时间段监控的话,这个字段可以直接不赋值
  • 创建alarm时几个条件的组合需要思考好。间隔时间(period/evaluation_periods)、时间范围(time_constraints),alarm类型(type)以及根据类型对应的操作(xx_action)
  • 创建alarm初始状态给定为ok
  • 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 #阈值
    }

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56342-1-1.html 上篇帖子: ubuntu openStack icehouse dashboard theme自定义 下篇帖子: OpenStack Controller HA (3)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表