Cette section décrit comment installer et configurer le service de Télémétrie, nom de code ceilometer, sur le nœud contrôleur. Le service de Télémétrie collecte les mesures de la plupart des services OpenStack et optionnellement déclenche des alarmes.
Avant d’installer et configurer le service de Télémétrie, vous devez créer une base de données, des credentials, 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.addUser({user: "ceilometer",
pwd: "CEILOMETER_DBPASS",
roles: [ "readWrite", "dbAdmin" ]})'
MongoDB shell version: 2.4.x
connecting to: controller:27017/test
{
"user" : "ceilometer",
"pwd" : "72f25aeee7ad4be52437d7cd3fc60f6f",
"roles" : [
"readWrite",
"dbAdmin"
],
"_id" : ObjectId("5489c22270d7fad1ba631dc3")
}
Remplacer CEILOMETER_DBPASS par un mot de passe qui convient.
Sourcer les accréditations admin pour obtenir l’accès aux commandes en ligne spécial-admin:
$ source admin-openrc.sh
Pour créer les credentials du service, suivre les étapes suivantes:
Create the ceilometer user:
$ openstack user create --domain default --password-prompt ceilometer
User Password:
Repeat User Password:
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | c859c96f57bd4989a8ea1a0b1d8ff7cd |
| name | ceilometer |
+-----------+----------------------------------+
Ajouter le role``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 points de terminaison 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 |
+--------------+----------------------------------+
Installez les paquets:
# zypper install openstack-ceilometer-api \
openstack-ceilometer-collector \
openstack-ceilometer-agent-notification \
openstack-ceilometer-agent-central python-ceilometerclient \
openstack-ceilometer-alarm-evaluator \
openstack-ceilometer-alarm-notifier
Éditer le fichier /etc/ceilometer/ceilometer.conf et faire les modifications suivantes:
Dans la section [database], configurez 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 à la file de message RabbitMQ:
[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
Remplacer RABBIT_PASS par le mot de passe choisi pour le compte openstack dans RabbitMQ.
Dans la section [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
auth_plugin = password
project_domain_id = default
user_domain_id = 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 credentials du service:
[service_credentials]
...
os_auth_url = http://controller:5000/v2.0
os_username = ceilometer
os_tenant_name = service
os_password = CEILOMETER_PASS
os_endpoint_type = internalURL
os_region_name = RegionOne
Remplacer CEILOMETER_PASS par le mot de passe choisi pour l’utilisateur ceilometer dans le service d’Identité.
Dans la section [collector], configurer le dispatcher:
[collector]
...
dispatcher = database
(Optionnel) Pour faciliter la résolution des problèmes, activer la verbosité des logs dans la section [DEFAULT] :
[DEFAULT]
...
verbose = True
Démarrer les services de Télémétrie et les configurer pour démarrer au boot du système:
# systemctl enable openstack-ceilometer-api.service \
openstack-ceilometer-agent-notification.service \
openstack-ceilometer-agent-central.service \
openstack-ceilometer-collector.service \
openstack-ceilometer-alarm-evaluator.service \
openstack-ceilometer-alarm-notifier.service
# systemctl start openstack-ceilometer-api.service \
openstack-ceilometer-agent-notification.service \
openstack-ceilometer-agent-central.service \
openstack-ceilometer-collector.service \
openstack-ceilometer-alarm-evaluator.service \
openstack-ceilometer-alarm-notifier.service
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.