Kevin Carter 33da8fc8eb Ensure the components are isolated from the system
This creates a specific slice which all OpenStack services will operate
from. By creating an independent slice these components will be governed
away from the system slice allowing us to better optimise resource
consumption.

See the following for more information on slices:

* https://www.freedesktop.org/software/systemd/man/systemd.slice.html

See for following for more information on resource controls:

* https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html

Tools like ``systemd-cgtop`` and ``systemd-cgls`` will now give us
insight into specific processes, process groups, and resouce consumption
in ways that we've not had access to before. To enable some of this reporting
the accounting options have been added to the [Service] section of the unit
file.

Change-Id: Ife2e28ce6b3e0d0219b8a5ec2ca8d9dbe513d5a7
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-03-28 23:58:51 -05:00
..
2016-09-09 13:08:38 -05:00
2017-01-10 18:02:49 +00:00
2017-01-26 22:10:45 +00:00
2017-01-26 22:10:45 +00:00

Gather and visualize cluster wide metrics

date

2016-09-01

tags

openstack, ansible

category

*openstack, *nix

About this repository

This set of playbooks will deploy InfluxDB, Telegraf, Grafana and Kapacitor for the purpose of collecting metrics on an OpenStack cluster.

Process

Clone the OPS repo

cd /opt
git clone https://git.openstack.org/openstack/openstack-ansible-ops

Copy the env.d files into place

cd openstack-ansible-ops/cluster_metrics
cp etc/env.d/cluster_metrics.yml /etc/openstack_deploy/env.d/

Add the export to update the inventory file location

export ANSIBLE_INVENTORY=/opt/openstack-ansible/playbooks/inventory/dynamic_inventory.py

If you are running the HA Proxy you should run the following playbook as well to enable the grafana port 8089

openstack-ansible playbook-metrics-lb.yml

Create the containers

openstack-ansible /opt/openstack-ansible/playbooks/lxc-containers-create.yml -e container_group=cluster-metrics

Install InfluxDB

openstack-ansible playbook-influx-db.yml

Install Influx Telegraf

If you wish to install telegraf and point it at a specific target, or list of targets, set the influx_telegraf_targets variable in the user_variables.yml file as a list containing all targets that telegraf should ship metrics to.

openstack-ansible playbook-influx-telegraf.yml --forks 100

Install grafana

If you're proxy'ing grafana you will need to provide the full root_path when you run the playbook add the following -e grafana_root_url='https://cloud.something:8443/grafana/'

openstack-ansible playbook-grafana.yml -e galera_root_user=root -e galera_address='127.0.0.1'

Once that last playbook is completed you will have a functioning InfluxDB, Telegraf, and Grafana metric collection system active and collecting metrics. Grafana will need some setup, however functional dashboards have been provided in the grafana-dashboards directory.

Install Kapacitor

openstack-ansible playbook-kapacitor.yml