Skip to main content

Prometheus Installation Guide

For server administrators opting for standalone binary instances instead of automated setups, execute the following steps to deploy Prometheus version 3.11.3.

1. Create System User & Group

Isolate the Prometheus runtime by provisioning a dedicated system user without login capabilities:

create user:

sudo useradd --no-create-home --shell /bin/false prometheus

2. Directory Scaffolding

Create the required directories for configuration and data storage:

create configuration directory:

sudo mkdir /etc/prometheus

create data directory:

sudo mkdir /var/lib/prometheus

set permissions:

sudo chown prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus

3. Download & Extract Binary

Acquire the official Linux 64-bit package and expand it:

download prometheus:

wget https://github.com/prometheus/prometheus/releases/download/v3.11.3/prometheus-3.11.3.linux-amd64.tar.gz

extract package:

tar -zxvf prometheus-3.11.3.linux-amd64.tar.gz

output:

prometheus-3.11.3.linux-amd64/
prometheus-3.11.3.linux-amd64/LICENSE
...

4. Install Binary & Supporting Files

Migrate the binaries to their designated locations:

change directory:

cd prometheus-3.11.3.linux-amd64

copy binaries:

sudo cp prometheus /usr/local/bin/
sudo cp promtool /usr/local/bin/

set binary permissions:

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

5. Create Configuration File

Create the primary configuration file at /etc/prometheus/prometheus.yml:

create config:

sudo tee /etc/prometheus/prometheus.yml <<EOF
global:
scrape_interval: 15s

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

- job_name: 'node_exporter'
static_configs:
- targets: ['10.12.12.22:9100']
labels:
name: 'pra-onboard-client-mon-1'
- targets: ['10.12.12.23:9100']
labels:
name: 'pra-onboard-client-mon-2'
EOF

set config permissions:

sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml

6. Systemd Service Unit Definition

Register the service with systemd:

create service file:

sudo tee /etc/systemd/system/prometheus.service <<EOF
[Unit]
Description=Prometheus Monitoring System
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/ \\
--web.listen-address=0.0.0.0:9090

[Install]
WantedBy=multi-user.target
EOF

7. Start & Enable Service

Activate the service via systemd:

reload systemd:

sudo systemctl daemon-reload

start service:

sudo systemctl start prometheus

enable service:

sudo systemctl enable prometheus

Verification

Verify that Prometheus is active and serving metrics:

check service status:

sudo systemctl status prometheus

output:

Prometheus