blob: b7f215b1ca51810a89aa351b4065eaa6b3a39577 [file]
#!/bin/bash
#
# Script to install Cloud Monitoring and Logging Agent on lab host.
#
# Assumptions:
# The Cloud Project service account key file ($HOME/luci/swarming-key.json)
# is available. This is used to upload metrics and logs to the Cloud Project.
#
# Prerequisites:
# All companion python modules are copied to same directory.
set -e
function print_help {
echo -e "
Usage: $0 -n <hostname> -f <fqdn> -p <project_id> -z <zone_name>
Available options:
\t-n\thostname
\t-f\tfully qualified domain name
\t-p\tproject id
\t-z\tzone name
\t-?,-h\tHelp
"
}
hostname="uninitialized"
fqdn="uninitialized"
ip="uninitialized"
project_id="uninitialized"
zone_name="uninitialized"
while getopts "?h:n:f:i:p:z:" opt
do
case $opt in
n) hostname=$OPTARG;;
f) fqdn=$OPTARG;;
i) ip=$OPTARG;;
p) project_id=$OPTARG;;
z) zone_name=$OPTARG;;
?|h) print_help; exit 1;;
esac
done
shift $((OPTIND-1))
root_dir="$( cd "$(dirname "$0")" ; pwd -P )"
config_transformer="$root_dir/generate_monitoring_configs.py"
# Install jinja2
pip install jinja2
# Set up GCP service account credential
echo "Setting up GCP credentials - started"
APPLICATION_DEFAULT_CREDS="/etc/google/auth/application_default_credentials.json"
sudo mkdir -p /etc/google/auth
sudo cp "$HOME/luci/swarming-key.json" "$APPLICATION_DEFAULT_CREDS"
sudo chown root:root "$APPLICATION_DEFAULT_CREDS"
sudo chmod 0400 "$APPLICATION_DEFAULT_CREDS"
echo "Setting up GCP credentials - success"
# Install Monitoring Agent
echo "Installing monitoring agent - started"
cd $HOME
curl -sSO https://dl.google.com/cloudagents/install-monitoring-agent.sh
sudo env REPO_SUFFIX=unstable bash install-monitoring-agent.sh
echo "installing monitoring agent - success"
# Install Logging Agent
echo "Installing logging agent - started"
cd $HOME
curl -sSO https://dl.google.com/cloudagents/install-logging-agent.sh
sudo env REPO_SUFFIX=unstable bash install-logging-agent.sh
echo "Installing logging agent - success"
/usr/bin/python $config_transformer --debug --hostname $hostname --fqdn $fqdn --ip $ip --project_id $project_id --zone_name $zone_name
sudo cp $root_dir/collectd.conf /etc/stackdriver/collectd.conf
sudo cp $root_dir/google-fluentd.conf /etc/google-fluentd/google-fluentd.conf
sudo service stackdriver-agent restart
sudo service google-fluentd restart