ajout du node exporter et config auto sur le host
This commit is contained in:
parent
369145c83e
commit
97b858b9eb
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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}
|
||||||
|
|
@ -17,4 +17,8 @@ FRONT_DIRECTORY=""
|
||||||
|
|
||||||
WEBSITE_TOKEN=""
|
WEBSITE_TOKEN=""
|
||||||
|
|
||||||
CADDYFILE="/etc/caddy/Caddyfile"
|
CADDYFILE="/etc/caddy/Caddyfile"
|
||||||
|
|
||||||
|
RECEIVING_IP=""
|
||||||
|
RECEIVING_USER=""
|
||||||
|
RECEIVING_PORT=""
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue