Conf files in $COLLECTD_CONF_DIR are loaded in alphabetical order. If there is an error loading the python plugin, the logfile plugin is not loaded. To help debugging, the logfile should be loaded first. Changing logfile.conf to 01-logfile.conf should fix this issue by making collectd load the logfile.conf first Closes-Bug: #1657859 Change-Id: I1f748d61d6d9a291bcc32476ac17bb0d60fdc573
82 lines
3.0 KiB
Bash
82 lines
3.0 KiB
Bash
#!/bin/bash
|
|
#
|
|
# common functions for collectd ceilometer plugin
|
|
# -----------------------------------------------
|
|
|
|
# start/stop service
|
|
#
|
|
function start_collectd {
|
|
if [ -e /usr/lib/systemd/system/collectd.service ] || [ -e /etc/init.d/collectd ]; then
|
|
sudo service collectd restart
|
|
fi
|
|
}
|
|
|
|
function stop_collectd {
|
|
if [ -e /usr/lib/systemd/system/collectd.service ] || [ -e /etc/init.d/collectd ]; then
|
|
sudo service collectd stop
|
|
fi
|
|
}
|
|
|
|
# install collectd service
|
|
function install_collectd {
|
|
if [[ "$COLLECTD_INSTALL" == True ]]; then
|
|
if is_fedora || is_ubuntu; then
|
|
install_package collectd
|
|
else
|
|
die $LINENO "No support for collectd on this platform"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Add conf file for plugin
|
|
function adapt_collectd_conf {
|
|
if [ ! -d "$COLLECTD_CONF_DIR" ]; then
|
|
sudo mkdir -p "$COLLECTD_CONF_DIR"
|
|
fi
|
|
|
|
sudo cp $COLLECTD_CEILOMETER_DIR/etc/collectd.conf.d/collectd-ceilometer-plugin.conf $COLLECTD_CONF_DIR/
|
|
|
|
# Configure collectd-ceiloemter-plugin.conf
|
|
sudo sed -i 's|ModulePath.*$|ModulePath "'$COLLECTD_CEILOMETER_DIR'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
|
|
sudo sed -i 's|VERBOSE.*$|VERBOSE '$COLLECTD_CEILOMETER_VERBOSE'|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
|
|
sudo sed -i 's|BATCH_SIZE.*$|BATCH_SIZE "'$COLLECTD_BATCH_SIZE'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
|
|
sudo sed -i 's|OS_AUTH_URL.*$|OS_AUTH_URL "'$OS_AUTH_URL'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
|
|
sudo sed -i 's|CEILOMETER_URL_TYPE.*$|CEILOMETER_URL_TYPE "'$CEILOMETER_URL_TYPE'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
|
|
sudo sed -i 's|CEILOMETER_TIMEOUT.*$|CEILOMETER_TIMEOUT "'$CEILOMETER_TIMEOUT'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
|
|
sudo sed -i 's|OS_PASSWORD.*$|OS_PASSWORD "'$SERVICE_PASSWORD'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
|
|
sudo sed -i 's|OS_TENANT_NAME.*$|OS_TENANT_NAME "'$SERVICE_TENANT_NAME'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
|
|
|
|
# Configure custom units
|
|
if [[ "$COLLECTD_CEILOMETER_UNITS" != none ]]; then
|
|
OIFS=$IFS
|
|
IFS=','
|
|
for UNIT in $COLLECTD_CEILOMETER_UNITS
|
|
do
|
|
sudo sed -i '/<UNITS>/a\ UNIT '"$UNIT"'' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
|
|
done
|
|
IFS=$OIFS
|
|
fi
|
|
|
|
# Configure collectd logfile plugin
|
|
if [ -n $COLLECTD_LOG_FILE ]; then
|
|
touch $COLLECTD_LOG_FILE
|
|
fi
|
|
|
|
sudo cp $COLLECTD_CEILOMETER_DIR/etc/collectd.conf.d/logfile.conf $COLLECTD_CONF_DIR/01-logfile.conf
|
|
|
|
sudo sed -i 's|LogLevel.*$|LogLevel "'$COLLECTD_LOG_LEVEL'"|g' $COLLECTD_CONF_DIR/01-logfile.conf
|
|
sudo sed -i 's|File.*$|File "'$COLLECTD_LOG_FILE'"|g' $COLLECTD_CONF_DIR/01-logfile.conf
|
|
|
|
}
|
|
|
|
|
|
# remove plugin conf file
|
|
function restore_collectd_conf {
|
|
|
|
if [ -f '$COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf' ]; then
|
|
sudo rm -f $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
|
|
sudo rm -f $COLLECTD_CONF_DIR/01-logfile.conf
|
|
fi
|
|
|
|
}
|