Openstack-Mitaka Ceilometer 部署心得

时间:2023-01-09 20:42:32

Openstack-Mitaka Ceilometer 部署心得

标签 : Openstack


Ceilometer 是 Openstack 的监控管理计费模块,我所用的版本为 Mitaka 版本。Ceilometer 模块依赖 Keystone 认证模块,需要先部署好 Keystone 。

系统环境为 Centos 6.7。

把节点的 hostname 设置为 controller。

编辑 /etc/hosts文件如下:

# controller
127.0.0.1 controller

ceilometer-client

安装 python-ceilometerclient,通过 CLI 命令进行交互。

1. ceilometer
可管理和查看 ceilometer 模块收集到的资源信息。

这些 client 不依赖于配置文件,但与环境变量、命令行参数有关。


ceilometer 模块

首先,从 github 上把 ceilometer 模块克隆下来。

$ cd /opt/stack
$ git clone https://git.openstack.org/openstack/ceilometer.git -b stable/mitaka

安装 ceilometer web 服务:

$ cd ceilometer
$ sudo python setup.py install

该 ceilometer 模块依赖于配置文件,例如,/etc/ceilometer/ceilometer.conf,但与环境变量无关。


配置文件

复制样例配置文件到特定地方:

$ mkdir -p /etc/ceilometer
$ cp etc/ceilometer/*.json /etc/ceilometer
$ cp etc/ceilometer/*.yaml /etc/ceilometer
$ cp etc/ceilometer/ceilometer.conf.sample /etc/ceilometer/ceilometer.

编辑 /etc/ceilometer/ceilometer.conf, 并完成以下改动:

  • 在 [database] 部分中,配置数据库连接:
[database]
connection = mongodb://username:password@host:27017/ceilometer
  • 在 [keystone_authtoken] 部分中,配置如下:
[keystone_authtoken]
auth_url = http://controller:35357
project_name = admin
username = admin
password = admin
auth_type = password

以上为可通过验证的账号。

需要注意的是,使用 oslo-config-generator 生成的 ceilometer.conf 跟官网是有一定差别的,例如,在 [keystone_authtoken] 部分少了些字段,需要自己加上去,不然 ceilometer-api 运行失败。


建立服务信任

  • 建立 ceilometer 的账号。
openstack user create --domain default --password-prompt ceilometer
  • 把 admin 角色加入到 ceilometer 的账号中。
openstack role add --project service --user ceilometer admin
  • 创建 ceilometer 的服务实体。
openstack service create --name ceilometer \
--description "Telemetry" metering
  • 建立监控服务 API 终端。
openstack endpoint create --region RegionOne \
metering public http://controller:8777
openstack endpoint create --region RegionOne \
metering internal http://controller:8777
openstack endpoint create --region RegionOne \
metering admin http://controller:8777
  • 在 [service_credentials] 部分中,配置如下 ( 未确定 ) :
[service_credentials]
interface = internalURL
# Authentication type to load (string value)
# Deprecated group/name - [service_credentials]/auth_plugin
auth_type = password
# Authentication URL (string value)
auth_url = http://controller:5000/v3
# Project name to scope to (string value)
# Deprecated group/name - [service_credentials]/tenant-name
project_name = service
# Domain name containing project (string value)
project_domain_name = Default
# Username (string value)
# Deprecated group/name - [service_credentials]/user-name
username = ceilometer
# User's domain name (string value)
user_domain_name = Default
# User's password (string value)
password = ceilometer

这部分配置跟 ceilometer-polling 有关。


运行

需要先运行 keystone 模块,ceilometer 模块有多个,运行命令有:

ceilometer                     ceilometer-api                 ceilometer-db-legacy-clean     ceilometer-expirer             ceilometer-rootwrap
ceilometer-agent-notification ceilometer-collector ceilometer-dbsync ceilometer-polling ceilometer-send-sample

环境变量

$ export OS_AUTH_URL=http://controller:5000/v3
$ export OS_PROJECT_ID=0bd816d507f34276ab4bc253705d9818
$ export OS_USERNAME=ceilometer
$ export OS_PASSWORD=ceilometer
$ export OS_USER_DOMAIN_NAME=Default

ceilometer-client 只支持 v3 版本。v3 版本比 v2 多了个 domain 概念。


使用

运行 ceilometer-api 命令,就会默认占用端口 8777 运行一个 API Server,可通过 ceilometer-client 进行交互。