diff --git a/ceilometer/api/app.wsgi b/ceilometer/api/app.wsgi new file mode 100644 index 0000000000..7ce62c2ca7 --- /dev/null +++ b/ceilometer/api/app.wsgi @@ -0,0 +1,30 @@ +# -*- mode: python -*- +# -*- encoding: utf-8 -*- +# +# Copyright © 2013 New Dream Network, LLC (DreamHost) +# +# Author: Doug Hellmann +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +"""Use this file for deploying the API under mod_wsgi. + +See http://pecan.readthedocs.org/en/latest/deployment.html for details. +""" + +from ceilometer import service +from ceilometer.api import app + +# Initialize the oslo configuration library and logging +service.prepare_service([]) + +application = app.VersionSelectorApplication() diff --git a/doc/source/index.rst b/doc/source/index.rst index 6175875233..b5cb811d9d 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -48,7 +48,7 @@ Table of contents architecture measurements - install + install/index configuration webapi/index contributing/index diff --git a/doc/source/install/development.rst b/doc/source/install/development.rst new file mode 100644 index 0000000000..e49daf8101 --- /dev/null +++ b/doc/source/install/development.rst @@ -0,0 +1,54 @@ +.. + Copyright 2012 Nicolas Barcet for Canonical + 2013 New Dream Network, LLC (DreamHost) + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + +================================================ + Installing and Running the Development Version +================================================ + +Ceilometer has four daemons. The :term:`compute agent` runs on the +Nova compute node(s) while the :term:`central agent` and +:term:`collector` run on the cloud's management node(s). In a +development environment created by devstack_, these two are typically +the same server. They do not have to be, though, so some of the +instructions below are duplicated. Skip the steps you have already +done. + +.. _devstack: http://www.devstack.org/ + +Configuring Devstack +==================== + +.. index:: + double: installing; devstack + +1. Create a ``localrc`` file as input to devstack. + +2. Ceilometer makes extensive use of the messaging bus, but has not + yet been tested with ZeroMQ. We recommend using Rabbit or qpid for + now. + +3. Nova does not generate the periodic notifications for all known + instances by default. To enable these auditing events, set + ``instance_usage_audit`` to true in the nova configuration file. + +4. The ceilometer services are not enabled by default, so they must be + enabled in ``localrc`` before running ``stack.sh``. + +This example ``localrc`` file shows all of the settings required for +ceilometer:: + + # Enable the ceilometer services + enable_service ceilometer-acompute,ceilometer-acentral,ceilometer-collector,ceilometer-api diff --git a/doc/source/install/index.rst b/doc/source/install/index.rst new file mode 100644 index 0000000000..b7379f6206 --- /dev/null +++ b/doc/source/install/index.rst @@ -0,0 +1,28 @@ +.. + Copyright 2013 New Dream Network, LLC (DreamHost) + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + +.. _install: + +======================= + Installing Ceilometer +======================= + +.. toctree:: + :maxdepth: 2 + + development + manual + mod_wsgi + diff --git a/doc/source/install.rst b/doc/source/install/manual.rst similarity index 87% rename from doc/source/install.rst rename to doc/source/install/manual.rst index e37927c368..785bc4be98 100644 --- a/doc/source/install.rst +++ b/doc/source/install/manual.rst @@ -1,5 +1,6 @@ .. Copyright 2012 Nicolas Barcet for Canonical + 2013 New Dream Network, LLC (DreamHost) Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain @@ -13,52 +14,9 @@ License for the specific language governing permissions and limitations under the License. -.. _install: - -======= -Install -======= - -Installing and Running the Development Version -++++++++++++++++++++++++++++++++++++++++++++++ - -Ceilometer has four daemons. The :term:`compute agent` runs on the -Nova compute node(s) while the :term:`central agent` and -:term:`collector` run on the cloud's management node(s). In a -development environment created by devstack_, these two are typically -the same server. They do not have to be, though, so some of the -instructions below are duplicated. Skip the steps you have already -done. - -.. _devstack: http://www.devstack.org/ - -Configuring Devstack -==================== - -.. index:: - double: installing; devstack - -1. Create a ``localrc`` file as input to devstack. - -2. Ceilometer makes extensive use of the messaging bus, but has not - yet been tested with ZeroMQ. We recommend using Rabbit or qpid for - now. - -3. Nova does not generate the periodic notifications for all known - instances by default. To enable these auditing events, set - ``instance_usage_audit`` to true in the nova configuration file. - -4. The ceilometer services are not enabled by default, so they must be - enabled in ``localrc`` before running ``stack.sh``. - -This example ``localrc`` file shows all of the settings required for -ceilometer:: - - # Enable the ceilometer services - enable_service ceilometer-acompute,ceilometer-acentral,ceilometer-collector,ceilometer-api - -Installing Manually -+++++++++++++++++++ +===================== + Installing Manually +===================== Installing the Collector ======================== diff --git a/doc/source/install/mod_wsgi.rst b/doc/source/install/mod_wsgi.rst new file mode 100644 index 0000000000..cbbaaf0561 --- /dev/null +++ b/doc/source/install/mod_wsgi.rst @@ -0,0 +1,56 @@ +.. + Copyright 2013 New Dream Network, LLC (DreamHost) + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + +==================================== + Installing the API Behind mod_wsgi +==================================== + +Ceilometer comes with a few example files for configuring the API +service to run behind Apache with ``mod_wsgi``. + +app.wsgi +======== + +The file ``ceilometer/api/app.wsgi`` sets up the V2 API WSGI +application. The file is installed with the rest of the ceilometer +application code, and should not need to be modified. + +etc/apache2/ceilometer +====================== + +The ``etc/apache2/ceilometer`` file contains example settings that +work with a copy of ceilometer installed via devstack. + +.. literalinclude:: ../../../etc/apache2/ceilometer + +1. Copy or symlink the file to ``/etc/apache2/sites-avilable``. + +2. Modify the ``VirtualHost`` directive, setting a hostname or IP for + the service. The default settings assume that the ceilometer API is + the only service running on the local Apache instance, which + conflicts with Horizon's default configuration. + +3. Modify the ``WSGIDaemonProcess`` directive to set the + ``user`` and ``group`` values to a user available on your server. + +4. Modify the ``APACHE_RUN_USER`` and ``APACHE_RUN_GROUP`` values to + the name of a user and group available on your server. + +5. Enable the ceilometer site. + + :: + + $ a2ensite ceilometer + $ service apache2 reload diff --git a/etc/apache2/ceilometer b/etc/apache2/ceilometer new file mode 100644 index 0000000000..53d87ceec6 --- /dev/null +++ b/etc/apache2/ceilometer @@ -0,0 +1,33 @@ +# Copyright (c) 2013 New Dream Network, LLC (DreamHost) +# +# Author: Doug Hellmann +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +# This is an example Apache2 configuration file for using the +# ceilometer API through mod_wsgi. This version assumes you are +# running devstack to configure the software. + + + WSGIDaemonProcess ceilometer user=vagrant group=vagrant threads=5 + WSGIScriptAlias / /opt/stack/ceilometer/ceilometer/api/app.wsgi + + SetEnv APACHE_RUN_USER vagrant + SetEnv APACHE_RUN_GROUP vagrant + WSGIProcessGroup ceilometer + + ErrorLog /var/log/apache2/ceilometer_error.log + LogLevel warn + CustomLog /var/log/apache2/ceilometer_access.log combined + + \ No newline at end of file