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

系统环境为 Centos 6.7。
把节点的 hostname 设置为 controller。
编辑 /etc/hosts文件如下:

# controller127.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:35357project_name = adminusername = adminpassword = adminauth_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:8777openstack endpoint create --region RegionOne \
      metering internal http://controller:8777openstack 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-nameproject_name = service
    # Domain name containing project (string value)
    project_domain_name = Default# Username (string value)
    # Deprecated group/name - [service_credentials]/user-nameusername = 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 进行交互。