Installing monitors like Grafana would be very helpful for us. As one of the most used datasource, I decided to make a script on how to install prometheus.
#!/bin/bash
# Installing Prometheus
if [ -f "/usr/local/prometheus" ]; then
echo "Prometheus already exists ..."
exit
fi
# tput commands
CLEAR="tput clear"
DOWN="tput cud1"
BOLD="tput bold"
NORMAL="tput sgr0"
BLACK="tput setaf 0"
RED="tput setaf 1"
GREEN="tput setaf 2"
YELLOW="tput setaf 3"
BLUE="tput setaf 4"
$CLEAR
printf "Installing Prometheus\n\n"
# Curling Google to check if connected to a network
printf "Looling for a network...\n\n"
if curl google.com > /dev/null; then
$DOWN
$YELLOW
printf "Network connected.\n\n"
$NORMAL
else
$DOWN
printf "The server is not connected to the network. Please connect and try again.\n\n";
exit 1
fi
$DOWN
echo -n "Insert the version you would like to be installed, default is [ 2.49.1 ] : "
$BOLD
$BLUE
read VERSION
$NORMAL
VERSION=${VERSION:-2.49.1}
$DOWN
$NORMAL
if [ ! -f "prometheus-$VERSION.linux-amd64.tar.gz" ]; then
# Download prometheus
wget https://github.com/prometheus/prometheus/releases/download/v$VERSION/prometheus-$VERSION.linux-amd64.tar.gz -P /opt
fi
# extract the file
tar -xzvf /opt/prometheus-$VERSION.linux-amd64.tar.gz -C /usr/local
# make it s soft link
ln -s /usr/local/prometheus-$VERSION.linux-amd64 /usr/local/prometheus
# create a prometheus service file
cat >/usr/lib/systemd/system/prometheus.service<<EOF
[Unit]
Description=prometheus
After=network.target
[Service]
Type=simple
PIDFile=/var/run/prometheus.pid
WorkingDirectory=/usr/local/prometheus/prometheus --web.listen-address=0.0.0.0:9090 --storage.tsdb.path=/data/prometheus --web.enable-admin-api --storage.tsdb.retention=7d
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
$DOWN
# start the prometheus
sudo systemctl start prometheus.service
# check the status
sudo systemctl status prometheus.service
# see the listening sockets
netstat -tnlp |grep 9090
$DOWN
if sudo systemctl is-active --quiet prometheus.service; then
$DOWN
$BOLD
$YELLOW
printf "=========================================\n"
$GREEN
printf "Prometheus installed successfully!\n"
$NORMAL
$BOLD
$YELLOW
printf "=========================================\n"
$NORMAL
$DOWN
else
$DOWN
$RED
printf "Prometheus installation failed.\n\n"
$NORMAL
$DOWN
fi
Top comments (0)