1cc8af453c
changed to IPMI changed to libvirt - mid sentence changed these to the Change-Id: I5b78b2d01bfa57c58089ba008d2d2cd7e08e2c74
243 lines
10 KiB
XML
243 lines
10 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<section xmlns="http://docbook.org/ns/docbook"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
version="5.0"
|
|
xml:id="section_telemetry-system-architecture">
|
|
<title>System architecture</title>
|
|
<para>The Telemetry module uses an agent-based architecture.
|
|
Several modules combine their responsibilities to collect data,
|
|
store samples in a database, or provide an API service for handling
|
|
incoming requests.</para>
|
|
<para>The Telemetry module is built from the following agents and
|
|
services:</para>
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><systemitem class="service">ceilometer-api</systemitem></term>
|
|
<listitem>
|
|
<para>Presents aggregated metering data to consumers
|
|
(such as billing engines, analytics tools and so forth).</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><systemitem class="service">ceilometer-polling</systemitem></term>
|
|
<listitem>
|
|
<para>Polls for different kinds of meter data by using the polling
|
|
plug-ins (pollsters) registered in different namespaces.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><systemitem class="service">ceilometer-agent-central</systemitem></term>
|
|
<listitem>
|
|
<para>Polls the public RESTful APIs of other OpenStack
|
|
services such as Compute service and Image service, in order to keep
|
|
tabs on resource existence, by using the polling plug-ins (pollsters)
|
|
registered in the central polling namespace.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><systemitem class="service">ceilometer-agent-compute</systemitem></term>
|
|
<listitem>
|
|
<para>Polls the local hypervisor or libvirt daemon to acquire
|
|
performance data for the local instances, messages and emits the
|
|
data as AMQP messages, by using the polling plug-ins (pollsters)
|
|
registered in the compute polling namespace.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><systemitem class="service">ceilometer-agent-ipmi</systemitem></term>
|
|
<listitem>
|
|
<para>Polls the local node with IPMI support, in order to
|
|
acquire IPMI sensor data and Intel Node Manager data, by using the polling
|
|
plug-ins (pollsters) registered in the IPMI polling namespace.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><systemitem class="service">ceilometer-agent-notification</systemitem></term>
|
|
<listitem>
|
|
<para>Consumes AMQP messages from other OpenStack services.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><systemitem class="service">ceilometer-collector</systemitem></term>
|
|
<listitem>
|
|
<para>Consumes AMQP notifications from the agents, then dispatches
|
|
these data to the appropriate data store.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><systemitem class="service">ceilometer-alarm-evaluator</systemitem></term>
|
|
<listitem>
|
|
<para>Determines when alarms fire due to the associated statistic
|
|
trend crossing a threshold over a sliding time window.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><systemitem class="service">ceilometer-alarm-notifier</systemitem></term>
|
|
<listitem>
|
|
<para>Initiates alarm actions, for example calling out to a webhook
|
|
with a description of the alarm state transition.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
<note>
|
|
<para>The <systemitem class="service">ceilometer-polling</systemitem> service is available
|
|
since the Kilo release.</para>
|
|
</note>
|
|
<para>Besides the <systemitem class="service">ceilometer-agent-compute</systemitem> and
|
|
the <systemitem class="service">ceilometer-agent-ipmi</systemitem> service,
|
|
all the other services are placed on one or more controller nodes.</para>
|
|
<para>The Telemetry architecture highly depends on the AMQP service both for consuming
|
|
notifications coming from OpenStack services and internal communication.</para>
|
|
<section xml:id="section_telemetry-supported-dbs">
|
|
<title>Supported databases</title>
|
|
<para>The other key external component of Telemetry is the database, where events, samples, alarm
|
|
definitions and alarms are stored.</para>
|
|
<note>
|
|
<para>Multiple database back ends can be configured in order to store events, samples and alarms
|
|
separately.</para>
|
|
</note>
|
|
<para>The list of supported database back ends:</para>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><link xlink:href="http://www.elasticsearch.org/">ElasticSearch (events only)</link>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><link xlink:href="http://www.mongodb.org/">MongoDB</link></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><link xlink:href="http://www.mysql.com/">MySQL</link></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><link xlink:href="http://www.postgresql.org/">PostgreSQL</link></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><link xlink:href="http://hbase.apache.org/">HBase</link></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><link xlink:href="http://www-01.ibm.com/software/data/db2/">DB2</link>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</section>
|
|
<section xml:id="section_telemetry-supported-hypervisors">
|
|
<title>Supported hypervisors</title>
|
|
<para>The Telemetry module collects information about the virtual machines, which requires
|
|
close connection to the hypervisor that runs on the compute hosts.</para>
|
|
<para>The list of supported hypervisors is:</para>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>The following hypervisors are supported via
|
|
<link xlink:href="http://libvirt.org/">Libvirt</link>:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
<link xlink:href="http://www.linux-kvm.org/page/Main_Page">Kernel-based
|
|
Virtual Machine (KVM)</link>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
<link xlink:href="http://wiki.qemu.org/Main_Page">Quick Emulator (QEMU)</link>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
<link xlink:href="https://linuxcontainers.org/">Linux Containers (LXC)</link>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
<link xlink:href="http://user-mode-linux.sourceforge.net/">
|
|
User-mode Linux (UML)</link>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<note>
|
|
<para>For details about hypervisor support in libvirt please check the
|
|
<link xlink:href="http://libvirt.org/hvsupport.html">Libvirt API
|
|
support matrix</link>.
|
|
</para>
|
|
</note>
|
|
</listitem>
|
|
<listitem>
|
|
<para><link
|
|
xlink:href="http://www.microsoft.com/en-us/server-cloud/hyper-v-server/default.aspx"
|
|
>Hyper-V</link>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
<link xlink:href="http://www.xenproject.org/help/documentation.html">XEN</link>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><link
|
|
xlink:href="http://www.vmware.com/products/vsphere-hypervisor/support.html"
|
|
>VMWare vSphere</link>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</section>
|
|
<section xml:id="section_telemetry-supported-networking-services">
|
|
<title>Supported networking services</title>
|
|
<para>Telemetry is able to retrieve information from OpenStack Networking
|
|
and external networking services:</para>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>OpenStack Networking:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Basic network meters</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Firewall-as-a-Service (FWaaS) meters</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Loadbalancer-as-a-Service (LBaaS) meters</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>VPN-as-a-Service (VPNaaS) meters</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>SDN controller meters:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><link xlink:href="http://www.opendaylight.org/software">
|
|
OpenDaylight</link></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><link xlink:href="http://opencontrail.org/">OpenContrail</link></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</section>
|
|
<section xml:id="section_telemetry-users-roles">
|
|
<title>Users, roles and tenants</title>
|
|
<para>This module of OpenStack uses OpenStack Identity for authenticating and authorizing
|
|
users. The required configuration options are listed in the <link xlink:href=
|
|
"http://docs.openstack.org/juno/config-reference/content/ch_configuring-openstack-telemetry.html">
|
|
Telemetry section</link> in the <citetitle>OpenStack Configuration Reference</citetitle>.</para>
|
|
<para>Two roles are used in the system basically, which are the 'admin' and 'non-admin'. The
|
|
authorization happens before processing each API request. The amount of returned data depends
|
|
on the role the requestor owns.</para>
|
|
<para>The creation of alarm definitions also highly depends on the role of the user, who
|
|
initiated the action. Further details about alarm handling can be found in
|
|
<xref linkend="section_telemetry-alarms"/> in this guide.</para>
|
|
</section>
|
|
</section>
|