ajout du node exporter et config auto sur le host

This commit is contained in:
Valentin 2024-06-07 13:29:22 +02:00
parent 369145c83e
commit 97b858b9eb
6 changed files with 78 additions and 15 deletions

View File

@ -45,8 +45,9 @@ Tested and optimised for [OVH VPS Starter](https://www.ovhcloud.com/fr/vps/cheap
9. Prompt for the url 9. Prompt for the url
10. Install and run Directus 10. Install and run Directus
11. Setup backup 11. Setup backup
12. Install and run the front-end 12. Setup node exporter
13. Setup a webhook 13. Install and run the front-end
14. Setup a webhook
## Post-install ## Post-install

View File

@ -1,23 +1,15 @@
#!/bin/bash #!/bin/bash
echo -e "${PURPLE}${BOLD}Enter the receiving server ip : ${RESET}" ./setup_ssh_keys.sh
read receiving_ip
echo -e "${PURPLE}${BOLD}Enter the receiving server user : ${RESET}"
read receiving_user
echo -e "${PURPLE}${BOLD}Enter the receiving server port : ${RESET}"
read receiving_port
ssh-keygen
ssh-copy-id -p ${receiving_port} ${receiving_user}@${receiving_ip}
install_pkg cron install_pkg cron
cp ./assets/backup.sh ~/backup.sh cp ./assets/backup.sh ~/backup.sh
chmod +x ~/backup.sh chmod +x ~/backup.sh
sed -i "s/^receiving_ip=.*/receiving_ip=$receiving_ip/" ~/backup.sh sed -i "s/^receiving_ip=.*/receiving_ip=$RECEIVING_IP/" ~/backup.sh
sed -i "s/^receiving_user=.*/receiving_user=$receiving_user/" ~/backup.sh sed -i "s/^receiving_user=.*/receiving_user=$RECEIVING_USER/" ~/backup.sh
sed -i "s/^receiving_port=.*/receiving_port=$receiving_port/" ~/backup.sh sed -i "s/^receiving_port=.*/receiving_port=$RECEIVING_PORT/" ~/backup.sh
cronjob="0 2 * * * ~/backup.sh" cronjob="0 2 * * * ~/backup.sh"

View File

@ -0,0 +1,47 @@
#!/bin/bash
if [[ -n "$RECEIVING_IP" && -n "$RECEIVING_USER" && -n "$RECEIVING_PORT" ]]; then
if ssh -p $RECEIVING_PORT -q -o BatchMode=yes -o ConnectTimeout=5 $RECEIVING_USER@$RECEIVING_IP exit; then
install_pkg ufw
node_exporter_port="9100"
ufw allow $node_exporter_port
node_exporter_version="1.8.1"
wget https://github.com/prometheus/node_exporter/releases/download/v${node_exporter_version}/node_exporter-${node_exporter_version}.linux-amd64.tar.gz
tar tar xvfz node_exporter-*.*-amd64.tar.gz
rm node_exporter-*.*-amd64.tar.gz
install_pkg tmux
tmux new-session -d -s node-exporter
tmux send-keys -t node-exporter "cd node_exporter-*.*-amd64 && ./node_exporter" C-m
get_ip
ssh -p $RECEIVING_PORT $RECEIVING_USER@$RECEIVING_IP << EOF
if command -v yq >/dev/null 2>&1; then
cd prometheus/prometheus
if [ -z "$(yq '.scrape_configs[] | select(.job_name == "node-exporter") | .static_configs[] | select(.targets[] == "${ip}:${node_exporter_port}")' prometheus.yml)" ]; then
yq '(.scrape_configs[] | select(.job_name == "node-exporter") | .static_configs) += [{"targets": ["${ip}:${node_exporter_port}"]}]' prometheus.yml -y > prometheus.temp.yml && mv prometheus.temp.yml prometheus.yml
else
echo "the node exporter config is already operational"
fi
if [ -z "$(yq '.scrape_configs[] | select(.job_name == "blackbox-http") | .static_configs[] | select(.targets[] == "https://${DOMAIN_NAME}")' prometheus.yml)" ]; then
yq '(.scrape_configs[] | select(.job_name == "blackbox-http") | .static_configs) += [{"targets": ["https://${DOMAIN_NAME}"]}]' prometheus.yml -y > prometheus.temp.yml && mv prometheus.temp.yml prometheus.yml
else
echo "the html prober config is already operational"
fi
else
echo "yq is not installed on the receiving server."
fi
EOF
else
. bin/setup_ssh_keys.sh
. bin/setup_node_exporter
fi
else
. bin/setup_ssh_keys.sh
. bin/setup_node_exporter
fi

11
bin/setup_ssh_keys.sh Normal file
View File

@ -0,0 +1,11 @@
#!/bin/bash
echo -e "${PURPLE}${BOLD}Enter the receiving server ip : ${RESET}"
read RECEIVING_IP
echo -e "${PURPLE}${BOLD}Enter the receiving server user : ${RESET}"
read RECEIVING_USER
echo -e "${PURPLE}${BOLD}Enter the receiving server port : ${RESET}"
read RECEIVING_PORT
ssh-keygen
ssh-copy-id -p ${RECEIVING_PORT} ${RECEIVING_USER}@${RECEIVING_IP}

View File

@ -18,3 +18,7 @@ FRONT_DIRECTORY=""
WEBSITE_TOKEN="" WEBSITE_TOKEN=""
CADDYFILE="/etc/caddy/Caddyfile" CADDYFILE="/etc/caddy/Caddyfile"
RECEIVING_IP=""
RECEIVING_USER=""
RECEIVING_PORT=""

View File

@ -104,6 +104,14 @@ if [[ "$answer" == "y" ]]; then
. bin/setup_backup.sh . bin/setup_backup.sh
fi fi
# NODE EXPORTER
echo -e "${PURPLE}${BOLD}Setup Node Exporter ? (y/N) ${RESET}"
read answer
if [[ "$answer" == "y" ]]; then
. bin/setup_node_exporter.sh
fi
# NUXT STATIC # NUXT STATIC
echo -e "${PURPLE}${BOLD}Install the front-end ? (y/N) ${RESET}" echo -e "${PURPLE}${BOLD}Install the front-end ? (y/N) ${RESET}"
read answer read answer