0

0

【openstack】cloudkitty组件,入门级安装(快速)

絕刀狂花

絕刀狂花

发布时间:2025-07-17 11:34:02

|

369人浏览过

|

来源于php中文网

原创

@toc

前言

什么是CloudKitty?

CloudKitty是OpenStack等云平台的评级即服务项目。其目的是提供云的退款和评级的通用解决方案。最初,CloudKitty仅能在OpenStack环境中运行,但现在它支持独立模式。

CloudKitty支持基于指标的评级:它会定期轮询终端节点,获取特定指标的度量值和元数据,并将评级规则应用于这些数据,最后将评级结果推送到其存储后端。

由于其高度模块化的设计,CloudKitty使得添加新功能变得简单。

架构

CloudKitty的架构分为四大块:

  • 数据检索(API)
  • 数据收集(cloudkitty-processor)
  • 数据评级
  • 数据存储

这些功能由两个进程处理:cloudkitty-apicloudkitty-processor。其中,数据检索部分由cloudkitty-api处理,其他部分由cloudkitty-processor处理。

以下是 CloudKitty 架构的概述:

【openstack】cloudkitty组件,入门级安装(快速)

安装

安装CloudKitty的命令如下:

yum install openstack-cloudkitty-api openstack-cloudkitty-processor openstack-cloudkitty-ui

配置

编辑/etc/cloudkitty/cloudkitty.conf来配置CloudKitty:

[DEFAULT]
verbose = True
log_dir = /var/log/cloudkitty

[oslo_messaging_rabbit] rabbit_userid = openstack rabbit_password = RABBIT_PASSWORD rabbit_hosts = RABBIT_HOST

[auth] username = cloudkitty password = CK_PASSWORD tenant = service region = RegionOne url = https://www.php.cn/link/65b5fc46fc82087ba24609b14f2dc4ff

[keystone_authtoken] username = cloudkitty password = CK_PASSWORD project_name = service region = RegionOne auth_url = https://www.php.cn/link/65b5fc46fc82087ba24609b14f2dc4ff auth_plugin = password

[database] connection = mysql://cloudkitty:CK_DBPASS@localhost/cloudkitty

[keystone_fetcher] username = admin password = ADMIN_PASSWORD tenant = admin region = RegionOne url = https://www.php.cn/link/65b5fc46fc82087ba24609b14f2dc4ff

[ceilometer_collector] username = cloudkitty password = CK_PASSWORD tenant = service region = RegionOne url = https://www.php.cn/link/6060d322713797e84f598ea25c812cab

设置数据库和存储后端

设置数据库和存储后端的命令如下:

[root@controller ~]# mysql -uroot -p000000
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 374
Server version: 10.1.20-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE cloudkitty; Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON cloudkitty.* TO 'cloudkitty'@'localhost' IDENTIFIED BY '000000'; Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON cloudkitty.* TO 'cloudkitty'@'%' IDENTIFIED BY '000000'; Query OK, 0 rows affected (0.00 sec)

运行数据库同步脚本

DM建站系统汽车保养维修HTML5网站模板1.5
DM建站系统汽车保养维修HTML5网站模板1.5

DM建站系统汽车保养维修HTML5网站模板,DM企业建站系统。是由php+mysql开发的一套专门用于中小企业网站建设的开源cms。DM系统的理念就是组装,把模板和区块组装起来,产生不同的网站效果。可以用来快速建设一个响应式的企业网站( PC,手机,微信都可以访问)。后台操作简单,维护方便。DM企业建站系统安装步骤:第一步,先用phpmyadmin导入sql文件。 第二步:把文件放到你的本地服务器

下载

运行数据库同步脚本的命令如下:

[root@controller ~]# cloudkitty-dbsync upgrade
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> 464e951dc3b8, Initial migration
INFO  [alembic.runtime.migration] Running upgrade 464e951dc3b8 -> 2ac2217dcbd9, Added support for meta collector
INFO  [alembic.runtime.migration] Running upgrade 2ac2217dcbd9 -> 385e33fef139, Added priority to modules_state.
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> 3dd7e13527f3, Initial migration
INFO  [alembic.runtime.migration] Running upgrade 3dd7e13527f3 -> 4fa888fd7eda, Added threshold support.
INFO  [alembic.runtime.migration] Running upgrade 4fa888fd7eda -> 54cc17accf2c, Fixed constraint name.
INFO  [alembic.runtime.migration] Running upgrade 54cc17accf2c -> 10d2738b67df, Rename mapping table to hashmap_mappings.
INFO  [alembic.runtime.migration] Running upgrade 10d2738b67df -> f8c799db4aa0, Fix unnamed constraints.
INFO  [alembic.runtime.migration] Running upgrade f8c799db4aa0 -> c88a06b1cfce, Clean hashmap fields constraints.
/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py:507: Warning: Duplicate index uniq_field_per_service. This is deprecated and will be disallowed in a future release.  cursor.execute(statement, parameters)
INFO  [alembic.runtime.migration] Running upgrade c88a06b1cfce -> 4da82e1c11c8, Add per tenant hashmap support
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> 4f9efa4601c0, Initial migration.

初始化存储后端

初始化存储后端的命令如下:

[root@controller ~]# cloudkitty-storage-init
No handlers could be found for logger "cloudkitty.utils"
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> 17fd1b237aa3, Initial migration
INFO  [alembic.runtime.migration] Running upgrade 17fd1b237aa3 -> 792b438b663, added tenant informations
INFO  [alembic.runtime.migration] Running upgrade 792b438b663 -> 307430ab38bc, improve qty precision
INFO  [alembic.runtime.migration] Running upgrade 307430ab38bc -> c703a1bad612, improve_qty_digit

CloudKitty使用Keystone进行身份验证,并提供rating服务。

创建用户和角色

创建CloudKitty用户和分配角色的命令如下:

[root@controller ~]# openstack user create --domain demo --password 000000 cloudkitty
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | d5db5c4ee4a14492b69408f63107d11f |
| enabled             | True                             |
| id                  | f1dea9309b834edba3aa4c1b8607dc16 |
| name                | cloudkitty                       |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

[root@controller ~]# openstack role add --project service --user cloudkitty admin

对于应由CloudKitty处理的每个租户,将rating角色赋予cloudkitty:

[root@controller ~]# openstack role create rating
+-----------+----------------------------------+
| Field     | Value                            |
+-----------+----------------------------------+
| domain_id | None                             |
| id        | ee01d36a397b4b0ebcb579044c32a73c |
| name      | rating                           |
+-----------+----------------------------------+

创建服务及其端点

创建rating服务及其端点的命令如下:

[root@controller ~]# openstack service create --name cloudkitty --description "OpenStack rating" rating
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack rating                 |
| enabled     | True                             |
| id          | 78f3d51cf74843cd8d325b790e0c2b1c |
| name        | cloudkitty                       |
| type        | rating                           |
+-------------+----------------------------------+

openstack endpoint create --region RegionOne rating public https://www.php.cn/link/37fd913e3ae9a65bc011675868062827 openstack endpoint create --region RegionOne rating internal https://www.php.cn/link/37fd913e3ae9a65bc011675868062827 openstack endpoint create --region RegionOne rating admin https://www.php.cn/link/37fd913e3ae9a65bc011675868062827

具体的端点创建输出如下:

[root@controller ~]# openstack endpoint create --region RegionOne rating public https://www.php.cn/link/37fd913e3ae9a65bc011675868062827
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 48b75b9d2d764b56a5bee00ff75b03b1 |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 78f3d51cf74843cd8d325b790e0c2b1c |
| service_name | cloudkitty                       |
| service_type | rating                           |
| url          | https://www.php.cn/link/37fd913e3ae9a65bc011675868062827           |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne rating internal https://www.php.cn/link/37fd913e3ae9a65bc011675868062827 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | b4f7fffa539441a68506db90b3ae89ce | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 78f3d51cf74843cd8d325b790e0c2b1c | | service_name | cloudkitty | | service_type | rating | | url | https://www.php.cn/link/37fd913e3ae9a65bc011675868062827 | +--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne rating admin https://www.php.cn/link/37fd913e3ae9a65bc011675868062827 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | a607a077f119417d9e650c16dcd61f10 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 78f3d51cf74843cd8d325b790e0c2b1c | | service_name | cloudkitty | | service_type | rating | | url | https://www.php.cn/link/37fd913e3ae9a65bc011675868062827 | +--------------+----------------------------------+

启动服务

启动CloudKitty服务的命令如下:

[root@controller ~]# systemctl start cloudkitty-processor.service
[root@controller ~]# cloudkitty-api -p 8889  #临时启动API
No handlers could be found for logger "cloudkitty.utils"
/usr/lib/python2.7/site-packages/pecan/init.py:122: RuntimeWarning: static_root is only used when debug is True, ignoring  RuntimeWarning


STARTING test server cloudkitty.api.app.build_wsgi_app Available at https://www.php.cn/link/bc2ba6731122a2b539616c6929597d18 DANGER! For testing only, do not use in production


192.168.200.1 - - [29/Apr/2022 15:06:41] "GET / HTTP/1.1" 200 209

安装仪表板

检索并安装CloudKitty的仪表板的命令如下:

git clone https://www.php.cn/link/d7416380bea3deeffaa942591263d351
python setup.py install
yum install -y wget
wget -O /etc/yum.repos.d/epel.repo https://www.php.cn/link/f03a550c53b59ef2cb9970d9672c78da
yum -y install python-pip
PY_PACKAGES_PATH=pip --version | cut -d' ' -f4
ln -s $PY_PACKAGESPATH/cloudkittydashboard/enabled/[0-9]*.py /usr/share/openstack-dashboard/openstack_dashboard/enabled/

最后,重新启动相关服务以应用更改:

[root@controller bin]# systemctl restart httpd.service memcached.service

相关专题

更多
数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

351

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2075

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

347

2023.08.31

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

255

2023.09.05

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

323

2023.10.09

数据库对象名无效怎么解决
数据库对象名无效怎么解决

数据库对象名无效解决办法:1、检查使用的对象名是否正确,确保没有拼写错误;2、检查数据库中是否已存在具有相同名称的对象,如果是,请更改对象名为一个不同的名称,然后重新创建;3、确保在连接数据库时使用了正确的用户名、密码和数据库名称;4、尝试重启数据库服务,然后再次尝试创建或使用对象;5、尝试更新驱动程序,然后再次尝试创建或使用对象。

410

2023.10.16

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

400

2023.10.16

vb连接数据库的方法
vb连接数据库的方法

vb连接数据库的方法有使用ADO对象库、使用OLEDB数据提供程序、使用ODBC数据源等。详细介绍:1、使用ADO对象库方法,ADO是一种用于访问数据库的COM组件,可以通过ADO连接数据库并执行SQL语句。可以使用ADODB.Connection对象来建立与数据库的连接,然后使用ADODB.Recordset对象来执行查询和操作数据;2、使用OLEDB数据提供程序方法等等。

219

2023.10.19

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

3

2026.01.20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.8万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 801人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号