From 07ae3f81ba6e240380f43748671badf0b4291f24 Mon Sep 17 00:00:00 2001 From: Helena McGough Date: Fri, 30 Jun 2017 15:20:58 +0000 Subject: [PATCH] Multi-node deployment configuration - Automated the required configurations for the collectd.conf file - Enables the virt and network plugins - Included a MULTI_NODE_DEPLOYMENT configuration option for this change - This is only enabled when the libvirt.py file is not in use - Provided instructions on how to deploy multi-node Change-Id: I151e318074250b94dbef247e6858c78086fcd362 --- devstack/libs/collectd | 4 ++ devstack/settings | 3 ++ doc/source/devstackGSG.rst | 47 +++++++++++++++++++ doc/source/usage.rst | 8 ++++ etc/collectd.conf.d/multi-node.conf | 32 +++++++++++++ .../notes/multi-node-f1dc4960570af3c5.yaml | 8 ++++ 6 files changed, 102 insertions(+) create mode 100644 etc/collectd.conf.d/multi-node.conf create mode 100644 releasenotes/notes/multi-node-f1dc4960570af3c5.yaml diff --git a/devstack/libs/collectd b/devstack/libs/collectd index 628a7cc..d6023e0 100644 --- a/devstack/libs/collectd +++ b/devstack/libs/collectd @@ -115,6 +115,10 @@ function adapt_collectd_conf { CONF_FILE=$(sudo find /etc -name "collectd.conf") sudo sed -E -i 's|(^\|^#)Hostname.*$|Hostname "'$(hostname)'"|g' $CONF_FILE + if [[ "$MULTI_NODE_DEPLOYMENT" == "True" ]]; then + sudo cp $COLLECTD_CEILOMETER_DIR/etc/collectd.conf.d/multi-node.conf $COLLECTD_CONF_DIR/ + fi + # configure collectd-gnocchi plugin if [[ "$COLLECTD_GNOCCHI_ENABLED" == "True" ]]; then diff --git a/devstack/settings b/devstack/settings index cd67732..d028d8a 100644 --- a/devstack/settings +++ b/devstack/settings @@ -32,6 +32,9 @@ OS_IDENTITY_API_VERSION=${IDENTITY_API_VERSION:-3} # Libvirt meter is deprecated LIBVIRT_METER_ENABLED=$(trueorfalse False LIBVIRT_METER_ENABLED) +# Multi-node deployment configurations enabled +MULTI_NODE_DEPLOYMENT=$(trueorfalse False MULTI_NODE_DEPLOYMENT) + # Fall back to default conf dir if option is unset if [ -z $COLLECTD_CONF_DIR ]; then if is_ubuntu; then diff --git a/doc/source/devstackGSG.rst b/doc/source/devstackGSG.rst index 9788def..a168565 100644 --- a/doc/source/devstackGSG.rst +++ b/doc/source/devstackGSG.rst @@ -216,3 +216,50 @@ Aodh Tools $ . tools/delete_alarms.sh $ sudo service collectd restart + +Multi-Node Deployment +--------------------- + +The collectd-ceilometer-plugin can be used on a multi-node deployment. The +following is description of deployment options and configurations for a multi- +node setup: + +* Set-up: + To collect metrics from all of the nodes in your deployment collectd must be + installed on each node. But the collectd-ceilometer-plugin only needs to be + configured on the controller node. +* Configuration settings: + - Set the configuration option that follows, in your local.conf on your + controller node to True. This will configure the collectd network plugin: + + :: + + MULTI_NODE_DEPLOYMENT=True + + - Enable the collectd network plugin on all of your compute nodes that data + is being collected from. Configure this plugin as follows: + + :: + + LoadPlugin network + + Server "" + + + - Enable the collectd virt plugin on all of your compute nodes as well. This + is configured as follows: + + :: + + LoadPlugin virt + + Connection + HostnameFormat uuid + + + + .. note:: + + Please refer to the following guide for more collectd network plugin + configuration options: + https://collectd.org/wiki/index.php/Plugin:Network diff --git a/doc/source/usage.rst b/doc/source/usage.rst index 396f36b..dab5359 100644 --- a/doc/source/usage.rst +++ b/doc/source/usage.rst @@ -183,6 +183,14 @@ LIBVIRT_METER_ENABLED Default: False +MULTI_NODE_DEPLOYMENT +~~~~~~~~~~~~~~~~~~~~~ + (True|False) Configures the collectd "network" plugin on the controller + node of a multi-node deployment. + + Default: False + + Authenticating using Identity Server API v3 ------------------------------------------- diff --git a/etc/collectd.conf.d/multi-node.conf b/etc/collectd.conf.d/multi-node.conf new file mode 100644 index 0000000..d292cc9 --- /dev/null +++ b/etc/collectd.conf.d/multi-node.conf @@ -0,0 +1,32 @@ +LoadPlugin network + + +# # client setup: +# Server "ff18::efc0:4a42" "25826" +# +# SecurityLevel Encrypt +# Username "user" +# Password "secret" +# Interface "eth0" +# ResolveInterval 14400 +# +# TimeToLive 128 +# +# # server setup: + Listen "::" +# +# SecurityLevel Sign +# AuthFile "/etc/collectd/passwd" +# Interface "eth0" +# +# MaxPacketSize 1452 +# +# # proxy setup (client and server as above): +# Forward true +# +# # statistics about the network plugin itself +# ReportStats false +# +# # "garbage collection" +# CacheFlush 1800 + diff --git a/releasenotes/notes/multi-node-f1dc4960570af3c5.yaml b/releasenotes/notes/multi-node-f1dc4960570af3c5.yaml new file mode 100644 index 0000000..9096aa8 --- /dev/null +++ b/releasenotes/notes/multi-node-f1dc4960570af3c5.yaml @@ -0,0 +1,8 @@ +--- +other: + - | + Include a MULTI_NODE_DEPLOYMENT configuration option for devstack, which + configures the collectd network plugin on the controller node. + Documentation is also included on how to configure collectd on the compute + nodes. All of the compute nodes require collectd to be installed with the + network and virt plugins to be configured.