- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ceilometer源码教程
Ceilometer项目源码架构
ceilometer主要概念
sample:采样数据是每个采集时间点上meter对应的值;
statistics:一般是统计学上某个周期内,meter对应的值(平均值之类);
resource:是被监控的资源对象,这个可以是一台虚拟机,一台物理机或者一块云硬盘;
alarm:是ceilometer的报警系统,可以通过阈值或者组合条件报警,并设置报警时触发的action,alarm的实现模型有两种,即单例报警系统和分布式报警系统;
meter:被跟踪资源的测量值。一个实例有很多的计量值,比如实例运行时长、CPU使用时间、请求磁盘的数量等。在Ceilometer中有三种计量值:
Cumulative:累计的,随着时间增长(如磁盘读写);
Gauge:计量单位,离散的项目(如浮动IP,镜像上传)和波动的值(如对象存储数值);
Delta:增量,随着时间的改变而增加的值(如带宽变化);
Central agent:运行在OpenStack架构中中央管理节点上用来测量和发送监控结果到收集器的服务;
Compute agent:运行再OpenStack架构中计算节点上的服务,用来测量和发送监控结果到搜集器中;
API server:Ceilometer的HTTPRESTAPI服务;
collector:运行在OpenStack架构中的服务,用来监控来自其他OpenStack组件和监控代理发送来的通知,并且将其存入数据库中;
ceilometer中的服务组件
需要说明这里是针对icehouse版对ceilometer模块进行源码解析。根据配置文件setup.cfg以及/ceilometer/cli.py可以知道,运行在ceilometer中的服务组件有如下所示:
ceilometer-api:ceilometer.cli:api
ceilometer-agent-central:ceilometer.cli:agent_central
ceilometer-agent-compute:ceilometer.cli:agent_compute
ceilometer-agent-notification:ceilometer.cli:agent_notification
ceilometer-send-sample:ceilometer.cli:send_sample
ceilometer-dbsync:ceilometer.cli:storage_dbsync
ceilometer-expirer:ceilometer.cli:storage_expirer
ceilometer-collector:ceilometer.cli:collector_service
ceilometer-alarm-evaluator:ceilometer.cli:alarm_evaluator
ceilometer-alarm-notifier:ceilometer.cli:alarm_notifier
ceilometer监控数据采集机制这里借助网上获取的一副图片来说明ceilometer监控数据的采集机制(对其作者表示感谢):
由上图可以看到,实现监控数据采集的服务组件有三个,分别是ceilometer-agent-central、ceilometer-agent-compute和ceilometer-agent-notification。按照我的理解,监控数据的采集主要分为两种情况实现,一种是服务组件通过相关模块的客户端或者计算节点的Hypervisor实现主动获取相关模块的相关监控数据,一种则是通过收集各个模块推送到oslo-messaging的通知(notification)信息,从中获取有用的监控数据,实现被动地采集相关监控数据。
其中ceilometer-agent-compute的服务组件主要用来收集计算节点上的虚拟机实例的监控数据,在每一个计算节点上都要运行这个服务组件,该agent通过Stevedore管理了一组pollster插件,分别用来获取计算节点上虚拟机的CPU,DiskIO,NetworkIO,Instance这些信息,这些信息大部分是通过调用Hypervisor的API来获取的,需要定期Poll轮询收集信息。
ceilometer-agent-central服务组件则运行在控制节点上,它主要通过调用相关模块的REST API,通过访问相关模块的客户端,从而实现主动收集相关模块(Image, Volume, Objects, Network)的监控数据,需要定期Poll轮询收集信息。而ceilometer-agent-notification服务组件则实现访问oslo-messaging,op
文档评论(0)