Skip to content

Instantly share code, notes, and snippets.

@zqfan
Last active August 29, 2015 13:56
Show Gist options
  • Save zqfan/9341384 to your computer and use it in GitHub Desktop.
Save zqfan/9341384 to your computer and use it in GitHub Desktop.
Copyright (c) 2014, Huawei Technologies Co., Ltd
All rights reserved

Ceilometer可靠性分析

异常场景

  1. mongodb服务不可用导致ceilometer-collector服务不可用。在ceilometer-collector服务启动时如果mongodb服务不可用,则会抛出异常,此时进程不会自然终止。当mongodb恢复为可用时,ceilometer-collector无法自动连接数据库,造成进程虽然存在但实际上功能不可用。
  2. keystone服务不可用导致ceilometer-agent-central服务不可用。当ceilometer-agent-central在指定的周期采集数据时,如果keystone服务中断,则会抛出异常但ceilometer-agent-central进程不会终止,且当keystone服务恢复后,ceilometer-agent-central服务不会自动恢复可用

服务可用性检测

  1. 强制在ceilometer-collector启动时保证mongodb服务可用,则不会出现该异常场景。对于服务监测,可以通过检测ceilometer-collector服务启动时以及周期采样数据时是否有数据入库,或者检测log中最新内容是否有RuntimeError: No ceilometer.dispatcher extensions found判定collector是否正常启动
  2. 这是新发现的一个可以修复的bug,在没有进行patch的环境中,可以通过检测周期采样数据是否入库或者log中最新内容是否有AuthorizationFailure: Authorization Failed来判定ceilometer-agent-central是否正常运行

应用场景分析

一体机场景

数据库服务异常

mysql服务异常将导致无法验证keystone token,导致各项功能不可用,未处理的数据可能丢失。mongodb服务异常将导致数据无法读写,api返回失败,各项功能不可用,未处理的数据可能丢失。

消息队列服务异常

消息队列服务异常将导致事件无法及时被收发,各项功能出现部分不可用或完全不可用,部分api可以正常使用,未处理的数据可能丢失。

服务进程异常

  • keystone服务异常将导致各功能不可用,可能导致ceilometer-agent-central服务异常
  • nova, glance, cinder, neutron, swift等服务异常,将导致对应服务的数据无法采集
  • ceilometer-api服务异常将导致无法响应对ceilometer的调用请求
  • ceilometer-collector服务异常将导致采集到的数据无法入库
  • ceilometer-agent-central服务异常将导致无法定时拉取非计算资源的数据
  • ceilometer-agent-compute服务异常将导致无法定时拉取计算资源的数据
  • ceilometer-alarm-evaluator服务异常将导致无法定时更新告警状态
  • ceilometer-alarm-notifier服务异常将导致告警被触发时无法发送通知

多节点部署(有HA)

多节点部署下控制节点与网络节点有高可用服务,单节点异常不会对功能造成服务不可用的影响

计算节点与控制节点网络连接异常

将导致对该计算节点上的数据采集失败

计算节点主机故障

将导致对该计算节点上的数据采集失败

典型流程分析

以周期采样任务为例,流程为:

  1. ceilometer:ceilometer-agent-central触发周期任务
  2. keystone:调用keystoneclient创建Client对象
  3. nova, and etc:根据定义的各个指标的拉取方法,调用对应的服务的客户端,获取数据
  4. amqp: 调用消息队列服务接口,发送消息
  5. ceilometer:ceilometer-collector获取消息,解析数据
  6. db:ceilometer-collector将数据入库

可能发生的故障为:

ceilometer-agent-central服务异常

导致的问题

无法进行周期性的数据采集

重现场景

停止ceilometer-agent-central服务,并等待一段时间(默认周期10分钟),此时即可发现没有新的采样数据生成

keystone服务异常

导致的问题

无法创建Client对象,进而导致ceilometer-agent-central服务无法进行数据采集工作

重现场景

停止keystone服务并等待一段时间(默认周期10分钟),此时即可发现没有新的采样数据生成,后台有日志报错

nova等服务异常

导致的问题

无法获取对应服务的数据,如nova停止服务,则浮动ip这个指标无法采集

重现场景

停止nova服务并等待一段时间(默认周期10分钟),此时即可发现没有新的采样数据生成,后台有日志报错

amqp服务异常

导致的问题

ceilometer-agent-central服务无法发送消息,之前已经发送但尚未被接收的消息也无法被ceilometer-collector服务收到

重现场景

停止amqp服务并等待一段时间(默认周期10分钟),此时即可发现没有新的采样数据入库,后台日志显示数据成功采集,但是发送消息时报错

ceilometer-collector服务异常

导致的问题

ceilometer-agent-central所发送的消息无法被接收,所采集到的数据无法入库,api查询将得不到最新的数据

重现场景

停止ceilometer-collector服务并等待一段时间(默认周期10分钟),此时即可发现新的采样数据没有入库

数据库服务异常

导致的问题

ceilometer-collector无法调用数据库接口将数据入库,api查询将得不到数据,数据库恢复后api查询将得不到最新的数据

重现场景

停止mongodb服务并等待一段时间(默认周期10分钟)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment