USharing
开放博客

Install Prometheus Server on Ubuntu 20.04/18.04 | Debian 10/9

Step 1: Create Prometheus system group

Let’s start by creating the Prometheus system user and group.

sudo groupadd --system prometheus

The group with ID < 1000 is a system group. Once the system group is added, create Prometheus system user and assign primary group created.

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

Step 2: Create data & configs directories for Prometheus

Prometheus needs a directory to store its data. We will create this under /var/lib/prometheus.

sudo mkdir /var/lib/prometheus

Prometheus primary configuration files directory is /etc/prometheus/. It will have some sub-directories:

for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done

Step 3: Download Prometheus

We need to download the latest release of Prometheus archive and extract it to get binary files. You can check releases from Prometheus releases Github page.

Install wget.

sudo apt update
sudo apt -y install wget curl vim

Then download latest binary archive for Prometheus.

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 -

Extract the file:

tar xvf prometheus*.tar.gz
cd prometheus*/

Move the binary files to /usr/local/bin/ directory.

sudo mv prometheus promtool /usr/local/bin/

Check installed version:

$ prometheus --version
prometheus, version 2.15.2 (branch: HEAD, revision: d9613e5c466c6e9de548c4dae1b9aabf9aaf7c57)
  build user:       root@688433cf4ff7
  build date:       20200106-14:50:51
  go version:       go1.13.5

$ promtool --version
promtool, version 2.15.2 (branch: HEAD, revision: d9613e5c466c6e9de548c4dae1b9aabf9aaf7c57)
  build user:       root@688433cf4ff7
  build date:       20200106-14:50:51
  go version:       go1.13.5

Move Prometheus configuration template to /etc directory.

sudo mv prometheus.yml /etc/prometheus/prometheus.yml

Also move consoles and console_libraries to /etc/prometheus directory:

sudo mv consoles/ console_libraries/ /etc/prometheus/

Step 4: Configure Prometheus on Debian / Ubuntu

Create or edit a configuration file for Prometheus – /etc/prometheus/prometheus.yml.

sudo vim /etc/prometheus/prometheus.yml

The template configurations should look similar to below:

# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']

You can edit the file to your default liking and save it.

Create a Prometheus systemd Service unit file

To be able to manage Prometheus service with systemd, you need to explicitly define this unit file.

sudo tee /etc/systemd/system/prometheus.service<<EOF
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=prometheus
Group=prometheus
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=

SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target
EOF

Change directory permissions.

Change the ownership of these directories to Prometheus user and group.

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/

Reload systemd daemon and start the service:

sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus

Check status using systemctl status prometheus command:

$ systemctl status prometheus

If your server has a running firewall service, you’ll need to open port 9090.

sudo ufw allow 9090/tcp

Confirm that you can connect to port 9090 by access the Prometheus server IP address / DNS name in your web browser.

来源:https://computingforgeeks.com/install-prometheus-server-on-debian-ubuntu-linux/
赞(0) 打赏
未经允许不得转载:USharing » Install Prometheus Server on Ubuntu 20.04/18.04 | Debian 10/9

觉得文章有用就打赏一下文章作者

微信扫一扫打赏