逐步配置指南

注意

有关示例 cloudkitty.conf 文件,请参阅 cloudkitty.conf 参考

编辑 /etc/cloudkitty/cloudkitty.conf 以配置 cloudkitty。

常用选项

大多数 OpenStack 项目支持的选项也受 cloudkitty 支持

[DEFAULT]
verbose = true
debug = false
log_dir = /var/log/cloudkitty
transport_url = rabbit://RABBIT_USER:RABBIT_PASSWORD@RABBIT_HOST

API 认证方法

认证方法通过 auth_strategy 选项在 [DEFAULT] 部分中定义。

独立模式

如果您在独立模式下使用 CloudKitty,则必须使用 noauth

[DEFAULT]
auth_strategy = noauth

Keystone 集成

如果您将 CloudKitty 与 OpenStack 一起使用,您将希望使用 Keystone 认证

[DEFAULT]
auth_strategy = keystone

使用 Keystone 时,您必须为 Keystone 提供 CloudKitty 凭据。这些必须在 [keystone_authtoken] 部分中指定。由于这些凭据将在多个地方使用,因此使用公共部分很方便

[ks_auth]
auth_type = v3password
auth_protocol = http
auth_url = http://KEYSTONE_HOST:5000/
identity_uri = http://KEYSTONE_HOST:5000/
username = cloudkitty
password = CK_PASSWORD
project_name = service
user_domain_name = default
project_domain_name = default

[keystone_authtoken]
auth_section = ks_auth

注意

service 项目也可以称为 services

CloudKitty 提供 rating OpenStack 服务。

要将 cloudkitty 集成到 Keystone,请以 OpenStack 管理员身份运行以下命令

openstack user create cloudkitty --password CK_PASSWORD

openstack role add --project service --user cloudkitty admin

openstack service create rating --name cloudkitty \
    --description "OpenStack Rating Service"

openstack endpoint create rating --region RegionOne \
    public https://:8889

openstack endpoint create rating --region RegionOne \
    admin https://:8889

openstack endpoint create rating --region RegionOne \
    internal https://:8889

存储

下一步是配置存储。从 SQL 开始,创建 cloudkitty 表和用户

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

在配置文件的 [database] 部分中指定 SQL 凭据

[database]
connection = mysql+pymysql://CK_DBUSER:CK_DBPASSWORD@DB_HOST/cloudkitty

设置 SQL 数据库服务后,可以配置评级数据的存储后端。可以在 存储后端配置指南 中找到完整的配置参考。我们将使用 v2 存储后端,它将启用 v2 API。必须在文档的 [storage] 部分中指定存储版本和要使用的驱动程序

[storage]
version = 2
backend = influxdb

特定于驱动程序的选项随后在 [storage_{drivername}] 部分中指定

[storage_influxdb]
username = cloudkitty
password = cloudkitty
database = cloudkitty
host = influxdb

配置 SQL 和评级数据存储后端后,初始化存储

cloudkitty-storage-init

然后,运行数据库迁移

cloudkitty-dbsync upgrade

Fetcher

Fetcher 检索要评级的范围列表,然后将其传递给 collector。可以在 fetcher 配置指南 中找到完整的配置参考。对于此示例,我们将使用 gnocchi fetcher,它将发现要评级的范围(在本例中为 OpenStack 项目)。要使用的 fetcher 通过 backend 选项在 [fetcher] 部分中指定

[fetcher]
backend = gnocchi

特定于 fetcher 的选项随后在 [fetcher_{fetchername}] 部分中指定

[fetcher_gnocchi]
auth_section = ks_auth
region_name = MyRegion

Collector(收集器)

collector 将检索 fetcher 提供的范围的数据,并将其传递给评级模块。collector 的使用在 [collect] 部分中指定,collector 特定的选项在 [collector_{collectorname}] 部分中指定

[collect]
collector = gnocchi

[collector_gnocchi]
auth_section = ks_auth
region_name = MyRegion

请注意,您还需要配置 collector 应该收集哪些指标以及如何收集它们。请参阅 collector 配置指南 以了解更多信息