Cette section décrit comment installer et configurer le service de Télémétrie, nom de code ceilometer, sur le contrôleur. Le service de Télémétrie collecte les mesures de la plupart des services OpenStack et peut également déclencher des alarmes.
Avant d’installer et configurer le service de Télémétrie, vous devez créer une base de données, des crédentiels de service et des endpoints API. Néanmoins, contrairement aux autres services, le service de Télémétrie utilise une base de données NoSQL. Voir Base de données NoSQL pour installer et configurer MongoDB avant de continuer.
Créer la base de données ceilometer:
# mongo --host controller --eval '
db = db.getSiblingDB("ceilometer");
db.createUser({user: "ceilometer",
pwd: "CEILOMETER_DBPASS",
roles: [ "readWrite", "dbAdmin" ]})'
MongoDB shell version: 2.6.x
connecting to: controller:27017/test
Successfully added user: { "user" : "ceilometer", "roles" : [ "readWrite", "dbAdmin" ] }
Remplacer CEILOMETER_DBPASS par un mot de passe approprié.
Sourcer les crédentiels admin pour accéder aux commandes en ligne réservées à l’administrateur :
$ . admin-openrc
Pour créer les crédentiels du service, réalisez les étapes suivantes :
Créer l’utilisateur ceilometer:
$ openstack user create --domain default --password-prompt ceilometer
User Password:
Repeat User Password:
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | e0353a670a9e496da891347c589539e9 |
| enabled | True |
| id | c859c96f57bd4989a8ea1a0b1d8ff7cd |
| name | ceilometer |
+-----------+----------------------------------+
Ajouter le rôle``admin`` à l’utilisateur ceilometer.
$ openstack role add --project service --user ceilometer admin
Note
Cette commande ne produit aucune sortie.
Créer l’entité de service ``ceilometer` :
$ openstack service create --name ceilometer \
--description "Telemetry" metering
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Telemetry |
| enabled | True |
| id | 5fb7fd1bb2954fddb378d4031c28c0e4 |
| name | ceilometer |
| type | metering |
+-------------+----------------------------------+
Créer les endpoints API pour le service de Télémétrie :
$ openstack endpoint create --region RegionOne \
metering public http://controller:8777
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | b808b67b848d443e9eaaa5e5d796970c |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 5fb7fd1bb2954fddb378d4031c28c0e4 |
| service_name | ceilometer |
| service_type | metering |
| url | http://controller:8777 |
+--------------+----------------------------------+
$ openstack endpoint create --region RegionOne \
metering internal http://controller:8777
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | c7009b1c2ee54b71b771fa3d0ae4f948 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 5fb7fd1bb2954fddb378d4031c28c0e4 |
| service_name | ceilometer |
| service_type | metering |
| url | http://controller:8777 |
+--------------+----------------------------------+
$ openstack endpoint create --region RegionOne \
metering admin http://controller:8777
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | b2c00566d0604551b5fe1540c699db3d |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 5fb7fd1bb2954fddb378d4031c28c0e4 |
| service_name | ceilometer |
| service_type | metering |
| url | http://controller:8777 |
+--------------+----------------------------------+
Installer les packages :
# yum install openstack-ceilometer-api \
openstack-ceilometer-collector openstack-ceilometer-notification \
openstack-ceilometer-central python-ceilometerclient
Éditer le fichier /etc/ceilometer/ceilometer.conf et réaliser les actions suivantes :
Dans la section [database], configurer l’accès à la base de données :
[database]
...
connection = mongodb://ceilometer:CEILOMETER_DBPASS@controller:27017/ceilometer
Remplacer CEILOMETER_DBPASS par le mot de passe choisi pour la base de données du service de Télémétrie. Vous devez protéger les caractères spéciaux comme ‘:’, ‘/’, ‘+’, et ‘@’ dans la chaîne de connexion conformément à la RFC2396..
Dans les sections [DEFAULT] et [oslo_messaging_rabbit], configurer l’accès au service de files de messages RabbitMQ:
[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
Remplacez RABBIT_PASS par le mot de passe que vous avez attribué au compte openstack dans RabbitMQ.
Dans les sections [DEFAULT] et [keystone_authtoken], configurer l’accès au service d’Identité :
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = ceilometer
password = CEILOMETER_PASS
Remplacer CEILOMETER_PASS par le mot de passe choisi pour l’utilisateur ceilometer dans le service d’Identité.
Dans la section [service_credentials], configurer les crédentiels du service :
[service_credentials]
...
auth_type = password
auth_url = http://controller:5000/v3
project_domain_name = default
user_domain_name = default
project_name = service
username = ceilometer
password = CEILOMETER_PASS
interface = internalURL
region_name = RegionOne
Remplacer CEILOMETER_PASS par le mot de passe choisi pour l’utilisateur ceilometer dans le service d’Identité.
Démarrer les services de Télémétrie et les configurer pour être lancés au démarrage du système :
# systemctl enable openstack-ceilometer-api.service \
openstack-ceilometer-notification.service \
openstack-ceilometer-central.service \
openstack-ceilometer-collector.service
# systemctl start openstack-ceilometer-api.service \
openstack-ceilometer-notification.service \
openstack-ceilometer-central.service \
openstack-ceilometer-collector.service
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.