Prometheus

Prerequisites

sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt install fail2ban -y

Install

sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus

sudo mkdir /var/lib/prometheus
for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done
mkdir -p /tmp/prometheus && cd /tmp/prometheus
curl -s <https://api.github.com/repos/prometheus/prometheus/releases/latest> | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
tar xvf prometheus*.tar.gz
cd prometheus*/
sudo mv prometheus promtool /usr/local/bin/

# Check installed version
prometheus --version
promtool --version

sudo mv prometheus.yml /etc/prometheus/prometheus.yml
sudo mv consoles/ console_libraries/ /etc/prometheus/

System Service

sudo nano /etc/systemd/system/prometheus.service

[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
SyslogIdentifier=prometheus
User=ubuntu
ExecReload=/bin/kill -HUP \\$MAINPID
ExecStart=/usr/local/bin/prometheus \\
 --config.file=/etc/prometheus/prometheus.yml \\
 --storage.tsdb.path=/var/lib/prometheus \\
 --web.console.templates=/etc/prometheus/consoles \\
 --web.console.libraries=/etc/prometheus/console_libraries \\
 --web.listen-address=0.0.0.0:9090 \\
 --web.external-url=
RestartSec=always

[Install]
WantedBy=multi-user.target

housekeeping

for i in rules rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done
for i in rules rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done
sudo chown -R prometheus:prometheus /var/lib/prometheus/

Enable Service

sudo systemctl enable prometheus.service

Grafana