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 进行交互。