• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > <转>Openstack ceilometer 宿主机监控模块扩展,openstackceilometer

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

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含<转>Openstack ceilometer 宿主机监控模块扩展,openstackceilometer等服务器相关知识,网友希望可以进行参考

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


《Openstack ceilometer监控项扩展》( http://eccp.csdb.cn/blog/?p=352 )主要介绍了对虚拟机监控项扩展, 比较简单。如何在ceilometer框架基础上,增加对宿主机、服务等的监控?本文以宿主机监控为例,详细介绍扩展方法。

首先,总体介绍Ceilometer采集监控数据到持久化存储的流程,在compute节点上通过pollster的轮询机制获取宿主机的各监控数据,通过publisher调用rpc将监控数据发送到消息队列,collector端根据约定的topic接收相应管道发送的数据,并调用storage接口 进行持久化存储,具体流程如下图所示。

监控模块增加流程

其次,在该框架下如何扩展新的监控模块,顺其自然的想法即依次修改以上模块,其重点是配置文件的设置,需要定义发送端和接收端的topic、secrete和method才能将数据顺利发送到collector端进行存储。以下详细介绍各模块的修改方法。

一、compute数据采集pollster模块

该模块主要负责数据的采集,采集宿主机CPU、内存、网络等信息,封装成自定义数据格式后通过publisher发送到消息队列,该部分与ceilometer监控项扩展相似。
1、在ceilometer/ceilometer/compute/plugin.py中定义宿主机获取数据的基类。

class ServerPollster(plugin.PollsterBase):
    @abc.abstractmethod
    def get_samples(self, manager, cache, instances):

2、在ceilometer/ceilometer/compute下新建server_pollsters包,在该包下新建server_cpu.py、server_mem.py等。继承ServerPollster类实现get_samples方法,将获取的数据封装成定义的数据格式返回即可,可参考虚拟机采集数据架构。
3、同监控项的扩展,在ceilometer/setup.cfg中增加监控项pollster的配置,最后所有修改完成后,重新安装ceilometer。

二、发送数据publisher模块

1、修改ceilometer/pipeline.yaml配置文件,配置发送和接收数据的方式。

-
  name: server_pipeline
  interval: 60
  counters:
    - "server.cpu"
    - "server.mem"
  transformers:
  publishers:
    - rpc://?target=record_server_data&meter_type=server

其中,name为pipeline的名字;interval为轮询的时间间隔;counters为该pipeline的pollster名字;transformers若发送的数据在进行publisher之前需要进一步处理,可设置transformers进行转换;publishers指定发送数据到collector的方式,target指定collector端的接收方,根据meter_type获取rpc的topic、secret和method。
同时,需要设置ceilometer/ceilometer.conf文件,设置server的topic、secret、method信息,具体配置如下:

[publisher_rpc]
server_topic=server
server_secret=True
server_method=record_server_data

2、由于增加了新的topic发送通道,所以需要对ceilometer/ceilometer/publisher/rpc.py做相应的修改。首先,需要修改初始化函数,读取pipeline和ceilometer配置文件信息。其次,修改publish_counters函数,由于pipeline文件会对所有的counters每隔10分钟轮询一次,ceilometer默认采用topic为metering,其数据封装格式相同。但由于新增不同监控模块的数据封装格式不同,所以需要分开处理,10分钟轮询时只对counter类型为sample的数据进行publish。具体如下:

if self.meter_type == 'metering':
  meters = [
      meter_message_from_counter_beta(
        counter,
        self.topic_secret[self.meter_type],
        source)
        for counter in counters if type(counter) == sample.Sample
      ]
else:
  meters = [
      meter_message_from_counter_beta(
        counter,
        self.topic_secret[self.meter_type],
        source)
        for counter in counters
      ]
topic = self.meter_type

三、接收数据collector模块

1、ceilometer/ceilometer/collector/service.py文件initialize_service_hook中定义worker用于接收rpc发送过来的数据,具体配置如下:

for k, v in cfg.CONF.publisher_rpc.iteritems():
  if k.endswith('topic'):
    self.conn.create_worker(
      v,
      rpc_dispatcher.RpcDispatcher([self]),
      'ceilometer.collector.' + v,
    )

2、定义相应的target用于接收采集的数据,如下所示:

def record_server_data(self, context, data):
    for dispatcher in self.dispatchers:
        dispatcher.record_data(context, data, 'server')

其中,最后一个参数指定本次发送过来的topic类型,在调用dispatch.record_data方法时,用于调用相应的存储数据的方法,进而使得数据持久化到不同的数据库表中。
3、dispatch也是在原基础上做了相应的调整,该调整根据当前数据接收的topic,调用不同的方法,进行数据库的存储,具体如下:

def 


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • Java 调用Hive 自定义UDF,java调用hiveudf
  • 如何配置和使用Pivotal Cloud Foundry里的HAPorxy(下),pivotalhaporxy
  • hadoop学习笔记(三)——WIN7+eclipse+hadoop2.5.2部署,hadoopwin7
  • 机器学习数学基础- gradient descent算法(上),gradientdescent
  • Hadoop之——数据类型,hadoop数据类型
  • 大数据流式处理一个不能忽视的问题,数据流不能忽视
  • NOSQL(一)为什么选用NoSQL?,选用nosql
  • 数据预处理-PDB文件,数据预处理-pdb
  • http content length,contentlength
  • &lt;转&gt;linux上nagios安装完整版,linuxnagios

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • 关于hadoop程序优化的几点建议,hadoop几点建议
    • Xen安全架构sHype/ACM和XSM/Flask的相关网络资源,xenshype
    • HDFS读文件解析,
    • Sqoop工具,sqoop安装
    • LinkedIn Cubert安装指南,linkedincubert
    • 超人学院Hadoop大数据资源分享,超人学院hadoop分享
    • Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.3,mllibconvolution
    • Hadoop常见重要命令行操作及命令作用,hadoop命令行命令
    • JS查看Object对象的内容,jsobject对象
    • 通过 JMX 获取Hadoop/HBase监控数据,jmxhadoop

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有