Prometheus

Monitoring system for collecting and storing time series data.

Ubuntu 24.04 LTS

Creating Prometheus System Users and Directory

$ sudo apt update && sudo apt upgrade

$ sudo useradd --no-create-home --shell /bin/false prometheus
$ sudo mkdir /etc/prometheus
$ sudo mkdir /var/lib/prometheus

Download Prometheus Binary File

$ cd /tmp/
$ wget https://github.com/prometheus/prometheus/releases/download/v3.5.0/prometheus-3.5.0.linux-amd64.tar.gz
$ tar -xvf prometheus-3.5.0.linux-amd64.tar.gz

$ cd prometheus-3.5.0.linux-amd64
$ sudo mv prometheus.yml /etc/prometheus
$ sudo chown -R prometheus:prometheus /etc/prometheus

$ sudo mv prometheus /usr/local/bin/
$ sudo chown prometheus:prometheus /usr/local/bin/prometheus

$ sudo mv promtool /usr/local/bin/
$ sudo chown prometheus:prometheus /usr/local/bin/promtool

Prometheus configuration file

$ sudo vim /etc/prometheus/prometheus.yml
$ sudo systemctl restart prometheus
global:
  scrape_interval:     15s
  evaluation_interval: 15s

rule_files:
  # - "first.rules"
  # - "second.rules"

scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']

Creating Prometheus Systemd file

$ sudo vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
    --config.file /etc/prometheus/prometheus.yml \
    --storage.tsdb.path /var/lib/prometheus/ \

[Install]
WantedBy=multi-user.target
$ sudo systemctl daemon-reload
$ sudo systemctl start prometheus
$ sudo systemctl enable prometheus
$ sudo systemctl status prometheus

Accessing Prometheus in Browser

$ sudo ufw allow 9090/tcp
http://server-IP-or-Hostname:9090

Prometheus

Github

Prometheus doc

comments powered by Disqus