千家信息网

OpenStack监控测量服务Ceilometer安装及API说明的示例分析

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下OpenStack监控测量服务Ceilometer安装及API说明的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.Ceilometer是做什么的Ceil
千家信息网最后更新 2026年11月03日OpenStack监控测量服务Ceilometer安装及API说明的示例分析

小编给大家分享一下OpenStack监控测量服务Ceilometer安装及API说明的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

1.Ceilometer是做什么的

Ceilometer是OpenStack中的一个子项目,它像一个漏斗一样,能把OpenStack内部发生 的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑。Ceilometer的核心架构图



2.OpenStack监控测量服务Ceilometer安装


2.1 到github下载最新的ceilometer代码

2.2安装mongodb, 由于ceilometer采用mongodb作为默认数据持久化数据库,所以需要先安装mongodb

apt-get install mongodb

2.3在keystone中添加ceilometer用户

需注意:添加的ceilometer账户需要属于admin tenant否则会出现不能获取实例监控信息的情况,并且将此账户添加为ResellerAdmin角色中便于获取swift监控信息。 添加的ceilometer账户需要属于admin tenant,并且角色为ResellerAdmin以及Admin。

查看user列表

keystone --os-username admin --os_password pass --os_tenant_name admin --os_auth_url http://localhost:5000/v2.0 user-list


查看role列表

keystone --os-username admin --os_password pass --os_tenant_name admin --os_auth_url http://localhost:5000/v2.0 role-list


查看tanant列表

keystone --os-username admin --os_password pass --os_tenant_name admin --os_auth_url http://localhost:5000/v2.0 tenant-list


新建user

keystone --os-username admin --os_password pass --os_tenant_name admin --os_auth_url http://localhost:5000/v2.0 user-create --name ceilometer --email co@co.cn --tenant-id tid --pass pass --enabled true


添加user角色

keystone --os-username admin --os_password pass --os_tenant_name admin --os_auth_url http://localhost:5000/v2.0 user-role-add --user-id uid --tenant-id tid --role-id rid

2.4安装ceilometer

1)首先查看模块所依赖的包

vim ceilometer/requirements.txt

  1. d2to1>=0.2.10,<0.3

  2. pbr>=0.5,<0.6

  3. WebOb>=1.2

  4. kombu

  5. iso8601

  6. argparse

  7. SQLAlchemy>=0.7,<=0.7.99

  8. sqlalchemy-migrate>=0.7.2

  9. pymongo>=2.2

  10. eventlet

  11. anyjson>=0.2.4

  12. Flask==0.9

  13. pecan>=0.2.0

  14. stevedore>=0.7

  15. msgpack-python

  16. python-glanceclient

  17. python-novaclient>=2.6.10

  18. python-keystoneclient>=0.2.3

  19. python-swiftclient

  20. lxml

  21. requests>=1.1

  22. wsme>=0.5b2

  23. pyyaml

  24. oslo.config>=1.1.0

  25. happybase>=0.4

复制代码

此版本ceilometer使用G版本Openstack中新加的oslo.config模块完成配置文件读取模块。

此外要求WebOb的版本要在1.2以上,查看F版本Openstack使用的此库版本为1.0.8,这是比较大的冲突,并且发现有很多人反映此库与之前的库不兼容的情况(https://bugs.launchpad.net/ceilometer/+bug/1092227),在我实际的安装过程中也发现此库不能被python-novaclient, python-glanceclient等库所使用。于是我使用virtualenv(https://pypi.python.org/pypi/virtualenv)建立了一个隔离的python环境来安装运行ceilometer及相关依赖。




2)安装virtualenv并建立隔离沙箱

sudo pip install virtualenv #安装

virtualenv grizzlyenv #建立名为grizzlyenv的隔离环境

source grizzlyenv/bin/activate #进入grizzlyenv隔离环境

进入后在提示符前会出现提示,如

(grizzlyenv)root@ceilotest:/opt#

在此环境下,有一套独立于全局python的环境,在此使用pip和easy_install安装python包都可以不影响全局的python环境,使用完毕之后使用deactivate命令即可退出到全局环境,相关的使用方法在网上都可以找到,在此不赘述




3)隔离环境安装完毕之后,就能够在这之中安装ceilometer了

#cd ceilometer

#python setup.py develop

安装完之后可以看到所依赖的包都安装在了grizzlyenv/lib/python2.7/site-packages/ 路径之下。

将ceilometer/etc/ceilometer/下所有文件拷贝到/etc/ceilometer/目录下(没有则新建),并将其中ceilometer.conf.sample文件修改为:

ceilometer.conf

  1. [DEFAULT]

  2. verbose=True

  3. debug=True

  4. os_auth_url = http://192.168.5.202:35357/v2.0

  5. os_tenant_name = admin

  6. os_password = admin

  7. os_username = ceilometer

  8. policy_file = /etc/ceilometer/policy.json

  9. notification_topics = notifications,glance_notifications

  10. rabbit_password = admin

  11. rabbit_host = 127.0.0.1

  12. rabbit_max_retries = 10

  13. rpc_backend = ceilometer.openstack.common.rpc.impl_kombu


  14. [keystone_authtoken]

  15. signing_dir = /etc/ceilometer

  16. admin_tenant_name = admin

  17. admin_password = admin

  18. admin_user = ceilometer

  19. auth_protocol = http

复制代码

4) 启动ceilometer

在screen中开启四个选项卡,依次运行:

ceilometer-collector

ceilometer-agent-central

ceilometer-agent-compute

ceilometer-api

分别对应ceilometer架构中的四个重要模块,在ceilometer-agent-compute启动的过程中可能会出现No module named libvirt的问题,这是因为隔离环境中没有安装python-libvirt的缘故,但是同时发现无法使用pip来安装此库,但是使用dpkg -l命令查看是发现python-libvirt的确已经安装,于是直接将全局环境中的相关文件拷贝到隔离环境中来并修改相应权限:

cp /usr/lib/python2.7/dist-packages/libvirt* /opt/stack/grizzlyenv/lib/python2.7/site-packages/


chown stack:stack /opt/stack/grizzlyenv/lib/python2.7/site-packages/libvirt*

这样应该就能够正常启动了,启动之后可以到mongodb中查看相应的数据记录。



3.OpenStack监控测量服务Ceilometer API说明


3.API


3.1 Resources资源


获取资源的信息。



GET http://HOST:8777/v2/resources

列出所有资源的定义。

GET http://HOST:8777/v2/resources/{resource_id}

获取指定的资源的详细信息。

3.2 Meters计量


获取计量信息。



GET http://HOST:8777/v2/meters

到目前为止的计量数据列表。



GET http://HOST:8777/v2/meters/{meter_id}

获取指定ID的计量信息。



POST http://HOST:8777/v2/meters/{meter_id}

更新指定ID的计量信息列表。



GET http://HOST:8777/v2/meters/{meter_id}/statistics

计算在指定的时间范围内的样本的统计信息。

3.3 Alarms告警


列表,创建,获取详细信息,更新和删除报警。



GET http://HOST:8777/v2/alarms

根据指定查询,列出了警报。


POST http://HOST:8777/v2/alarms

创建一个报警。


GET http://HOST:8777/v2/alarms/{alarm_id}

获取指定ID的报警信息。


PUT http://HOST:8777/v2/alarms/{alarm_id}

更新指定ID的报警。



PUT http://HOST:8777/v2/alarms/{alarm_id}/state

设置一个指定ID的报警状态。



GET http://HOST:8777/v2/alarms/{alarm_id}/state

获取指定ID的报警状态。

GET http://HOST:8777/v2/alarms/{alarm_id}/history

组装指定ID的报警历史记录。

看完了这篇文章,相信你对"OpenStack监控测量服务Ceilometer安装及API说明的示例分析"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

环境 信息 监控 报警 隔离 服务 数据 版本 计量 测量 全局 文件 模块 资源 代码 角色 账户 更新 示例 分析 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网产品 科技与互联网 互联网核心科技是什么 北京互联网科技公司 亿人帮互联网科技 顺网科技2021年互联网排名 滨湖区互联网智能科技产品供应 湖南洣水互联网科技有限公司扣款 昭通云南众福互联网科技有限公司 港股科技和互联网 朱啸虎曾投资哪些互联网科技企业 小米互联网科技园入驻 下一代互联网重大应用科技园 万物互联网智能科技 互联网科技新闻 兰石爱特工业互联网科技分公司 北京军民互联网科技公司 互联网科技和医药行业 杭州融税互联网科技有限公司 恒生互联网科技趋势 新华互联网科技 河南云网互联网络科技有限公司 蓝思科技飞鸽互联网 致聘互联网科技 上海电发互联网科技有限公司 科技与互联网的利与弊 深圳艾果互联网通讯科技 卡尔迅互联网科技有限公司 2021世界互联网领先科技成果发布 张家口科技产业互联网平台
0