Introduction

Prometheus is an open-source monitoring system developed by SoundCloud. Development on Prometheus started back in 2012 when SoundCloud felt that the existing monitoring systems were proving insufficient for their needs. It uses a time-series database just like Druid, InfluxDB, Graphite.

However, Prometheus is able to work on a multi-dimensional data model, uses a powerful query to language to leverage this data model properly. Uses pull method over HTTP to record real-time metrics, this helps admins to easily fine-tune the capabilities to their needs which in turn produces more accurate reports.

Prometheus has a browser-based tool called PromDash to build and view dashboards that use SQL backend. The Data model stores all data as time series: streams of timestamped values belonging to the same metric and the same set of labeled dimensions.

Another main attraction of Prometheus is that it uses single server nodes that are autonomous. How many times have you just given up trying to configure a distributed system cluster? Well, that won’t be the case this time.

Prerequisite:

To follow this tutorial, you will need:

  1.  sudo access to your system.
  2. Working internet connection as we will download the Prometheus Linux Binary.

Setup Prometheus Binaries

Step 1: Updating repos

As always, our first step will be to update the yum package repositories.

yum update -y

Step 2: Creating user and directories

Let’s create a Prometheus user, required directories, and make prometheus user as the owner of those directories.

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

 mkdir /etc/prometheus

 mkdir /var/lib/prometheus

 chown prometheus:prometheus /etc/prometheus

 chown prometheus:prometheus /var/lib/prometheus

Step 3: Getting Prometheus

Go to the official Prometheus downloads page and get the download link for Linux binary by right-clicking the binary and clicking on Copy Link next.

Step 4: Downloading and Installing Prometheus

Download the source using wget, untar it, and rename the extracted folder to prometheus-files.

wget https://github.com/prometheus/prometheus/releases/download/v2.20.0-rc.1/prometheus-2.20.0-rc.1.linux-amd64.tar.gz

tar -xvf prometheus-2.20.0-rc.1.linux-amd64.tar.gz

mv prometheus-2.20.0-rc.1.linux-amd64 prometheus-files

Step 5: Copying prometheus and promtool

You will have to copy prometheus and promtool binary from prometheus-files folder to /usr/local/bin.

cp prometheus-files/prometheus /usr/local/bin/

cp prometheus-files/promtool /usr/local/bin/

Step 6: Changing ownership

Change the ownership to prometheus user.

chown prometheus:prometheus /usr/local/bin/prometheus

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

Step 7: Moving consoles and libraries

Move the consoles and console_libraries directories from prometheus-files to /etc/prometheus folder and change the ownership to prometheus user.

 cp -r prometheus-files/consoles /etc/prometheus

 cp -r prometheus-files/console_libraries /etc/prometheus

 chown -R prometheus:prometheus /etc/prometheus/consoles  

chown -R prometheus:prometheus /etc/prometheus/console_libraries

Setup Prometheus Configuration

prometheus.yml holds all the prometheus configurations. The file be present in /etc/prometheus/prometheus.yml file.

Step 1: Create prometheus.yml file.

Create the prometheus.yml file.

touch /etc/prometheus/prometheus.yml

Step 2: Edit prometheus.yml file.

Open the file using vim or any file editor of your liking and copy the following contents to the prometheus.yml file.

global:

  scrape_interval: 10s

scrape_configs:

  – job_name: ‘prometheus’

    scrape_interval: 5s

    static_configs:

      – targets: [‘localhost:9090’]

Step 3: Ownership change for prometheus.yml file.

Change the ownership of the file to prometheus user.

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

Setup Prometheus Service File

Step 1: Create a prometheus service file.

 vi /etc/systemd/system/prometheus.service

Step 2: Edit prometheus.service

Copy the following content to the file.

[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/ \

    –web.console.templates=/etc/prometheus/consoles \

    –web.console.libraries=/etc/prometheus/console_libraries

[Install]

WantedBy=multi-user.target

Step 3: Reload the systemd

Reload the systemd service to register the prometheus service and start the prometheus service.

systemctl daemon-reload

 systemctl start prometheus

Check the prometheus service status using the following command.

 systemctl status prometheus

The status should show the active state as shown below.

Access Prometheus Web UI

Now you will be able to access the prometheus UI on 9090 port of the prometheus server.

http://<prometheus-ip>:9090/graph

You should be able to see the following UI as shown below.

Currently, we have only configured Prometheus. We need to register a target to actually some metrics from the system.

In order to do this please follow along to the next tutorial: Prometheus Node Exporter Guide


2 Comments

How To Monitor Linux Servers Using Prometheus Node Exporter – Virtono Community · July 28, 2020 at 1:31 PM

[…] Prometheus Server: In order to use the Prometheus Node Exporter you need a Prometheus Server running, please see the Prometheus setup guide for Linux. […]

How To Integrate and Visualize Prometheus Metrics In Grafana – Virtono Community · July 29, 2020 at 1:31 PM

[…] Setup Prometheus on Linux […]

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: