Last active
June 23, 2018 17:32
-
-
Save pkazi/ae6ff3cac64a78f809c26b1507c54f37 to your computer and use it in GitHub Desktop.
Install DCOS datadog metrics plugin on all dcos nodes (https://github.com/dcos/dcos-metrics/blob/master/docs/quickstart/datadog.md)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Usage : bash installDCOSDataDogMetricsPlugin.sh <Datadog API KEY> | |
DDAPI=$1 | |
if [[ -z $DDAPI ]]; then | |
echo "[Datadog Plugin] Need datadog API key as parameter." | |
echo "[Datadog Plugin] Usage : bash installDCOSDataDogMetricsPlugin.sh <Datadog API KEY>." | |
fi | |
tmpScriptMaster=$(mktemp "/tmp/installDatadogPlugin-XXXXXXXX") | |
tmpScriptAgent=$(mktemp "/tmp/installDatadogPlugin-XXXXXXXX") | |
declare agent=$tmpScriptAgent | |
declare master=$tmpScriptMaster | |
for role in "agent" "master" | |
do | |
cat <<EOF > ${!role} | |
curl -s -o /opt/mesosphere/bin/dcos-metrics-datadog -L https://downloads.mesosphere.io/dcos-metrics/plugins/datadog | |
chmod +x /opt/mesosphere/bin/dcos-metrics-datadog | |
echo "[Datadog Plugin] Downloaded dcos datadog metrics plugin." | |
export DD_API_KEY=$DDAPI | |
export AGENT_ROLE=$role | |
sudo curl -s -o /etc/systemd/system/dcos-metrics-datadog.service https://downloads.mesosphere.io/dcos-metrics/plugins/datadog.service | |
echo "[Datadog Plugin] Downloaded dcos-metrics-datadog.service." | |
sudo sed -i "s/--dcos-role master/--dcos-role \$AGENT_ROLE/g;s/--datadog-key .*/--datadog-key \$DD_API_KEY/g" /etc/systemd/system/dcos-metrics-datadog.service | |
echo "[Datadog Plugin] Updated dcos-metrics-datadog.service with DD API Key and agent role." | |
sudo systemctl daemon-reload | |
sudo systemctl start dcos-metrics-datadog.service | |
echo "[Datadog Plugin] dcos-metrics-datadog.service is started !" | |
servStatus=\$(sudo systemctl is-failed dcos-metrics-datadog.service) | |
echo "[Datadog Plugin] dcos-metrics-datadog.service status : \${servStatus}" | |
#sudo systemctl status dcos-metrics-datadog.service | head -3 | |
#sudo journalctl -u dcos-metrics-datadog | |
EOF | |
done | |
echo "[Datadog Plugin] Temp script for master saved at : $tmpScriptMaster" | |
echo "[Datadog Plugin] Temp script for agent saved at : $tmpScriptAgent" | |
for i in `dcos node | egrep -v "TYPE|master" | awk '{print $1}'` | |
do | |
echo -e "\n###> Node - $i" | |
dcos node ssh --option LogLevel=quiet --option StrictHostKeyChecking=no --master-proxy --private-ip=$i < $tmpScriptAgent | |
echo -e "=======================================================" | |
done | |
for i in `dcos node | egrep -v "TYPE|agent" | awk '{print $2}'` | |
do | |
echo -e "\n###> Master Node - $i" | |
dcos node ssh --option LogLevel=quiet --option StrictHostKeyChecking=no --master-proxy --private-ip=$i < $tmpScriptMaster | |
echo -e "=======================================================" | |
done | |
# Check status of dcos-metrics-datadog.service on all nodes. | |
#for i in `dcos node | egrep -v "TYPE|master" | awk '{print $1}'` ; do echo -e "\n###> $i"; dcos node ssh --option StrictHostKeyChecking=no --option LogLevel=quiet --master-proxy --private-ip=$i "sudo systemctl is-failed dcos-metrics-datadog.service"; echo -e "======================================\n"; done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment