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.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")
}
Ersetzen Sie CEILOMETER_DBPASS mit einem geeigneten Passwort.
Bemerkung
Wenn die Ausführung des Befehls fehlschlägt mit der Meldung, Sie seien nicht authorisiert einen Benutzer hinzuzufügen, kann es erforderlich sein, die Option auth in der Datei /etc/mongodb.conf auszukommentieren, den MongoDB-Dienst mit systemctl restart mongodb neu zu starten und den Befehl erneut auszuführen.
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:
# apt-get install ceilometer-api ceilometer-collector \
ceilometer-agent-central ceilometer-agent-notification
python-ceilometerclient
Aufforderungen von debconf beantworten.
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 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 neu:
# service ceilometer-agent-central restart
# service ceilometer-agent-notification restart
# service ceilometer-api restart
# service ceilometer-collector restart
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.