cloudkitty (7.0.1) 安装 计费 面板 使用

cloudkitty为openstack计费项目,其项目原理参考https://blog.csdn.net/weixin_42640196/article/details/88046674

计费原理如图
计费原理图

本次安装基于queens版本。

cloudkitty手动安装

yum install centos-release-openstack-queens -y
yum install openstack-cloudkitty-api openstack-cloudkitty-processor openstack-cloudkitty-ui -y

编辑文件/etc/cloudkitty/cloudkitty.conf,其中的IP地址和帐号参考已建成集群,文章Kolla-ansible离线部署queens记录

[DEFAULT]
debug = False
log_dir = /var/log/kolla/cloudkitty
transport_url = rabbit://openstack:N9rN6bepSQE8MXZsJ0bVdVdm6OSR1gexqkQ8P0NZ@10.0.49.131:5672,openstack:N9rN6bepSQE8MXZsJ0bVdVdm6OSR1gexqkQ8P0NZ@10.0.49.132:5672,openstack:N9rN6bepSQE8MXZsJ0bVdVdm6OSR1gexqkQ8P0NZ@10.0.49.133:5672

[database]
connection = mysql+pymysql://cloudkitty:8ZVCQaBdX7Rj0JYpFZNAK2LCX4b179mCBVTffczz@10.0.49.149:3306/cloudkitty
max_retries = -1

[keystone_authtoken]
auth_uri = http://10.0.49.149:5000
auth_url = http://10.0.49.149:35357
auth_type = password
project_domain_id = default
user_domain_id = default
project_name = service
username = cloudkitty
password = r67E0XiEU9krFAEXORPe28yFEXM9V614mVx97xCf
memcache_security_strategy = ENCRYPT
memcache_secret_key = ORXMCNi8ZJCOk1BOrKcRLfYYL0bWddQdL0hPpfzf
memcached_servers = 10.0.49.131:11211,10.0.49.132:11211,10.0.49.133:11211

[oslo_concurrency]
lock_path = /var/lib/cloudkitty/tmp

[collect]
collector = ceilometer
services = compute,image,volume,network.bw.out,network.bw.in,network.floating

[keystone_fetcher]
keystone_version = 3
auth_section = keystone_authtoken

[ceilometer_collector]
auth_section = keystone_authtoken

[api]
host_ip = 10.0.49.139
port = 8889

[orchestrator]
coordination_url = mysql://cloudkitty:8ZVCQaBdX7Rj0JYpFZNAK2LCX4b179mCBVTffczz@10.0.49.149:3306/cloudkitty
 

保存退出。

新建文件 /etc/cloudkitty/metrics.yml,内容如下:

 

- name: OpenStack

  collector: ceilometer
  period: 3600
  wait_periods: 2
  window: 1800

  services:
    - compute
    - volume
    - network.bw.in
    - network.bw.out
    - network.floating
    - image

  services_objects:
    compute: instance
    volume: volume
    network.bw.out: instance_network_interface
    network.bw.in: instance_network_interface
    network.floating: network
    image: image
    radosgw.usage: ceph_account

  services_metrics:
    compute:
      - vcpus: max
      - memory: max
      - cpu: max
      - disk.root.size: max
      - disk.ephemeral.size: max
    volume:
      - volume.size: max
    network.bw.in:
      - network.incoming.bytes: max
    network.bw.out:
      - network.outgoing.bytes: max
    network.floating:
      - ip.floating: max
    image:
      - image.size: max
      - image.download: max
      - image.serve: max
    radosgw.usage:
      - radosgw.objects.size: max

  metrics_units:
    compute:
      1:
        unit: instance
    volume:
      volume.size:
        unit: GiB
    network.bw.in:
      network.incoming.bytes:
        unit: MB
        factor: 1/1000000
    network.bw.out:
      network.outgoing.bytes:
        unit: MB
        factor: 1/1000000
    network.floating:
      1:
        unit: ip
    image:
      image.size:
        unit: MiB
        factor: 1/1048576
    radosgw.usage:
      radosgw.objects.size:
        unit: GiB
        factor: 1/1073741824
    default_unit:
      1:
        unit: unknown

在控制节点创建数据库文件

mysql -uroot -p << EOF
CREATE DATABASE cloudkitty;
GRANT ALL PRIVILEGES ON cloudkitty.* TO 'CK_DBUSER'@'localhost' IDENTIFIED BY 'CK_DBPASSWORD';
EOF

初始化数据

cloudkitty-dbsync upgrade

初始化后端存储

cloudkitty-storage-init

集成keystone认证

openstack user create cloudkitty --password CK_PASSWORD --email cloudkitty@localhost
openstack role add --project service --user cloudkitty admin
openstack role create rating
openstack role add --project XXX --user cloudkitty rating

创建rating服务和端点

openstack service create rating --name cloudkitty \
    --description "OpenStack Rating Service"
openstack endpoint create rating --region RegionOne \
    public http://localhost:8889
openstack endpoint create rating --region RegionOne \
    admin http://localhost:8889
openstack endpoint create rating --region RegionOne \
    internal http://localhost:8889

启动服务

systemctl start cloudkitty-processor.service

临时启动API

cloudkitty-api -p 8889

cloudkitty使用

一、以实例类型为费率计费

创建hashmap组

#  cloudkitty hashmap-group-create -n instance_uptime_flavor_id

+----------+--------------------------------------+
| Property | Value                                |
+----------+--------------------------------------+
| group_id | 7a00ca7f-30f1-4558-a27d-4f4280c157e9 |
| name     | instance_uptime_flavor_id            |
+----------+--------------------------------------+
 

创建hashmap服务

# cloudkitty hashmap-service-create -n instance

+------------+--------------------------------------+
| Property   | Value                                |
+------------+--------------------------------------+
| name       | instance                             |
| service_id | a89c0416-7b8e-4745-a9ec-cc2cd4e6194f |
+------------+--------------------------------------+

创建hashmap字段

# cloudkitty hashmap-field-create -s a89c0416-7b8e-4745-a9ec-cc2cd4e6194f -n flavor_id

+------------+--------------------------------------+
| Property   | Value                                |
+------------+--------------------------------------+
| field_id   | 03df2699-bae2-43c2-91c2-7275627e7087 |
| name       | flavor_id                            |
| service_id | a89c0416-7b8e-4745-a9ec-cc2cd4e6194f |
+------------+--------------------------------------+
查看实例类型ID

# openstack flavor show m1.small

+----------------------------+----------+
| Field                      | Value    |
+----------------------------+----------+
| OS-FLV-DISABLED:disabled   | False    |
| OS-FLV-EXT-DATA:ephemeral  | 0        |
| access_project_ids         | None     |
| disk                       | 20       |
| id                         | 2        |
| name                       | m1.small |
| os-flavor-access:is_public | True     |
| properties                 |          |
| ram                        | 2048     |
| rxtx_factor                | 1.0      |
| swap                       |          |
| vcpus                      | 1        |
+----------------------------+----------+
 

创建关联,m1.small类型费率 0.02    m1.tiny类型费率  0.01

# cloudkitty hashmap-mapping-create -c 0.02  -f 03df2699-bae2-43c2-91c2-7275627e7087  -v 2  -g 7a00ca7f-30f1-4558-a27d-4f4280c157e9  -t flat

+------------+--------------------------------------+
| Property   | Value                                |
+------------+--------------------------------------+
| cost       | 0.02000000                           |
| field_id   | 03df2699-bae2-43c2-91c2-7275627e7087 |
| group_id   | 7a00ca7f-30f1-4558-a27d-4f4280c157e9 |
| mapping_id | 36af4f6f-eac9-4213-8677-d9d7d35dfb05 |
| service_id | None                                 |
| tenant_id  | None                                 |
| type       | flat                                 |
| value      | 2                                    |
+------------+--------------------------------------+
 

# cloudkitty hashmap-mapping-create -c 0.01  -f 03df2699-bae2-43c2-91c2-7275627e7087  -v 1  -g 7a00ca7f-30f1-4558-a27d-4f4280c157e9  -t flat

+------------+--------------------------------------+
| Property   | Value                                |
+------------+--------------------------------------+
| cost       | 0.01000000                           |
| field_id   | 03df2699-bae2-43c2-91c2-7275627e7087 |
| group_id   | 7a00ca7f-30f1-4558-a27d-4f4280c157e9 |
| mapping_id | 4e8cc136-e901-44a4-bf40-b7d0493afedc |
| service_id | None                                 |
| tenant_id  | None                                 |
| type       | flat                                 |
| value      | 1                                    |
+------------+--------------------------------------+
 

二、以volume容量计费含折扣

#  cloudkitty hashmap-group-create -n volume_thresholds

+----------+--------------------------------------+
| Property | Value                                |
+----------+--------------------------------------+
| group_id | 68748772-eb15-4ef3-8b6d-c2e4fa4d22d8 |
| name     | volume_thresholds                    |
+----------+--------------------------------------+
# cloudkitty hashmap-service-create -n volume.size

+------------+--------------------------------------+
| Property   | Value                                |
+------------+--------------------------------------+
| name       | volume.size                          |
| service_id | 231baaed-c604-456c-aecc-a3279cfdf491 |
+------------+--------------------------------------+

# cloudkitty hashmap-mapping-create -c 0.001  -s 231baaed-c604-456c-aecc-a3279cfdf491  -t flat -g 68748772-eb15-4ef3-8b6d-c2e4fa4d22d8

+------------+--------------------------------------+
| Property   | Value                                |
+------------+--------------------------------------+
| cost       | 0.00100000                           |
| field_id   | None                                 |
| group_id   | 68748772-eb15-4ef3-8b6d-c2e4fa4d22d8 |
| mapping_id | 67cd1f05-538f-4074-b242-5da4962025d0 |
| service_id | 231baaed-c604-456c-aecc-a3279cfdf491 |
| tenant_id  | None                                 |
| type       | flat                                 |
| value      |                                      |
+------------+--------------------------------------+
 

超过50G打98折!

# cloudkitty hashmap-threshold-create -l 50 -c 0.98  -s 231baaed-c604-456c-aecc-a3279cfdf491  -t rate -g 68748772-eb15-4ef3-8b6d-c2e4fa4d22d8

+--------------+--------------------------------------+
| Property     | Value                                |
+--------------+--------------------------------------+
| cost         | 0.98000000                           |
| field_id     | None                                 |
| group_id     | 68748772-eb15-4ef3-8b6d-c2e4fa4d22d8 |
| level        | 50.00000000                          |
| service_id   | 231baaed-c604-456c-aecc-a3279cfdf491 |
| tenant_id    | None                                 |
| threshold_id | 6de5e876-a81a-4193-bcc8-07c12535a33a |
| type         | rate                                 |
+--------------+--------------------------------------+
 

特殊客户97折

# cloudkitty hashmap-threshold-create -l 50 -c 0.97  -s 231baaed-c604-456c-aecc-a3279cfdf491  -t rate -g 68748772-eb15-4ef3-8b6d-c2e4fa4d22d8  -p 3e919be4cd7249069309e51e99dd976a

+--------------+--------------------------------------+
| Property     | Value                                |
+--------------+--------------------------------------+
| cost         | 0.97000000                           |
| field_id     | None                                 |
| group_id     | 68748772-eb15-4ef3-8b6d-c2e4fa4d22d8 |
| level        | 50.00000000                          |
| service_id   | 231baaed-c604-456c-aecc-a3279cfdf491 |
| tenant_id    | 3e919be4cd7249069309e51e99dd976a     |
| threshold_id | 13870e48-aa4a-40f2-9368-cb056de38411 |
| type         | rate                                 |
+--------------+--------------------------------------+
 

超过200G 95折

# cloudkitty hashmap-threshold-create -l 200 -c 0.95  -s 231baaed-c604-456c-aecc-a3279cfdf491  -t rate -g 68748772-eb15-4ef3-8b6d-c2e4fa4d22d8
+--------------+--------------------------------------+
| Property     | Value                                |
+--------------+--------------------------------------+
| cost         | 0.95000000                           |
| field_id     | None                                 |
| group_id     | 68748772-eb15-4ef3-8b6d-c2e4fa4d22d8 |
| level        | 200.00000000                         |
| service_id   | 231baaed-c604-456c-aecc-a3279cfdf491 |
| tenant_id    | None                                 |
| threshold_id | 6a3c7538-13c8-45f4-acec-a71d6a761102 |
| type         | rate                                 |
+--------------+--------------------------------------+
 

得到某租户在某时间段的总费用

# cloudkitty  summary-get
+----------------------------------+---------------+------+---------------------+---------------------+
| Tenant ID                        | Resource Type | Rate | Begin Time          | End Time            |
+----------------------------------+---------------+------+---------------------+---------------------+
| 6019d748d3a04651a990a3db760c3314 | ALL           | 9.1  | 2020-01-01T00:00:00 | 2020-02-01T00:00:00 |
+----------------------------------+---------------+------+---------------------+---------------------+
 

使用cloudkitty-dashboad面板插件后,可以在horizon中使用cloudkitty

 

费用报表

 

在面板中管理hashmap service

 

 

参考文档

https://docs.openstack.org/cloudkitty/latest/user/rating/hashmap.html

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值