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:
