Dieser Abschnitt beschreibt, wie der Telemetriedienst auf dem Controller Node zu installieren und zu konfigurieren ist, der Codename lautet Ceilometer. Der Telemetriedienst sammelt Messwerte von den meisten OpenStack-Diensten und löst wahlweise Alarme aus.
Bevor Sie den Telemetriedienst installieren und konfigurieren, müssen Sie eine Datenbank anlegen und Dienstanmeldeinformationen und API Endpunkte erstellen. Im Gegensatz zu anderen Diensten nutzt der Telemetriedienst eine NoSQL Datenbank. Befolgen Sie zunächst die Schritte in :ref:`environment-nosql-database`zur Installation und Konfiguration von MongoDB bevor Sie fortfahren.
Erstellen Sie die Datenbank 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" ] }
Ersetzen Sie CEILOMETER_DBPASS mit einem geeigneten Passwort.
Sourcen Sie die admin Anmeldeinformationen, um Zugriff auf die Admin-Kommandos zu bekommen:
$ . admin-openrc
Um die Dienstanmeldeinformationen zu erstellen, vervollständigen Sie folgende Schritte:
Benutzer ceilometer erstellen:
$ openstack user create --domain default --password-prompt ceilometer
User Password:
Repeat User Password:
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | e0353a670a9e496da891347c589539e9 |
| enabled | True |
| id | c859c96f57bd4989a8ea1a0b1d8ff7cd |
| name | ceilometer |
+-----------+----------------------------------+
Die Rolle admin zum Benutzer ceilometer hinzufügen.
$ openstack role add --project service --user ceilometer admin
Bemerkung
Das Kommando erzeugt keine Ausgabe.
Dienstobjekt ceilometer erstellen:
$ openstack service create --name ceilometer \
--description "Telemetry" metering
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Telemetry |
| enabled | True |
| id | 5fb7fd1bb2954fddb378d4031c28c0e4 |
| name | ceilometer |
| type | metering |
+-------------+----------------------------------+
API-Endpunkte für den Telemetriedienst erstellen:
$ 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 |
+--------------+----------------------------------+
Installieren Sie die Pakete:
# yum install openstack-ceilometer-api \
openstack-ceilometer-collector openstack-ceilometer-notification \
openstack-ceilometer-central python-ceilometerclient
Bearbeiten Sie die Datei /etc/ceilometer/ceilometer.conf und vervollständigen Sie folgende Aktionen:
Konfigurieren Sie den Datenbankzugriff in der Sektion [database] :
[database]
...
connection = mongodb://ceilometer:CEILOMETER_DBPASS@controller:27017/ceilometer
Ersetzen Sie CEILOMETER_DBPASS mit dem Passwort, welches Sie für die Telemetriedienst-Datenbank gewählt haben. Sonderzeichen im String für die Datenbankverbindung wie ‘:’, ‘/’, ‘+’, und ‘@’ müssen nach RFC2396<https://www.ietf.org/rfc/rfc2396.txt> maskiert werden.
Konfigurieren Sie den RabbitMQ Nachrichtenwarteschlangen-Zugriff in den Sektionen [DEFAULT] und [oslo_messaging_rabbit] :
[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
Ersetzen Sie RABBIT_PASS mit dem Passwort, welches Sie für den openstack Account in RabbitMQ gewählt haben.
Konfigurieren Sie den Identitätsdienst-Zugriff in den Sektionen [DEFAULT] und [keystone_authtoken]:
[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
Ersetzen Sie``CEILOMETER_PASS`` mit dem Passwort, welches Sie für den Benutzer ceilometer im Identitätsdienst gewählt haben.
Konfigurieren Sie die Dienstanmeldeinformationen in der Sektion [service_credentials]:
[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
Ersetzen Sie``CEILOMETER_PASS`` mit dem Passwort, welches Sie für den Benutzer ceilometer im Identitätsdienst gewählt haben.
Starten Sie die Telemetriedienste und konfigurieren Sie sie so, dass sie beim Systemstart gestartet werden:
# 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.