How to Install and Configure Prometheus on a Linux Server

prometheus kurulum cpynet

Prometheus, an open-source, lightweight monitoring system with a powerful alerting mechanism, has gained significant popularity in the IT world. Its flexibility and scalability make it an ideal choice for monitoring system health and performance. In this guide, we will walk you through the step-by-step process of installing and configuring Prometheus on a Linux server.


Prerequisites

Before diving into the installation, ensure that the following prerequisites are met:

  1. Sudo Privileges: Administrative privileges are required to perform installation and configuration tasks.
  2. Internet Access: The server must have internet access to download Prometheus binaries.
  3. Firewall Configuration: Ensure that port 9090 is open to access Prometheus’s web interface.

Step 1: Installing Prometheus Binary Files

Update Package Repositories

Before downloading Prometheus, update the package repositories to ensure all packages are up to date:

sudo yum update -y

Download Prometheus Binary

Use the following command to download the latest Prometheus binary:

curl -LO https://github.com/prometheus/prometheus/releases/download/v2.22.0/prometheus-2.22.0.linux-amd64.tar.gz

Extract and Rename Files

Extract the downloaded archive and rename the folder for convenience:

tar -xvf prometheus-2.22.0.linux-amd64.tar.gz
mv prometheus-2.22.0.linux-amd64 prometheus-files

Step 2: Setting Up Prometheus User and Directories

Create Prometheus User

Create a dedicated system user for running Prometheus:

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

Create Necessary Directories

Set up the required directories for Prometheus configuration and data storage:

sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus

Set the appropriate ownership for these directories:

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

Step 3: Moving Prometheus Binary Files

Move Prometheus Binaries

Move the prometheus and promtool binaries to a system-wide location:

sudo cp prometheus-files/prometheus /usr/local/bin/
sudo cp prometheus-files/promtool /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool

Move Console Files

Copy Prometheus console files to the appropriate directories:

sudo cp -r prometheus-files/consoles /etc/prometheus
sudo cp -r prometheus-files/console_libraries /etc/prometheus
sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries

Step 4: Configuring Prometheus

The Prometheus configuration file defines how the application behaves, which metrics to scrape, and how often.

Create prometheus.yml

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

sudo vi /etc/prometheus/prometheus.yml

Add the following content:

global:
  scrape_interval: 10s

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

Set ownership of the configuration file:

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

Step 5: Creating a Systemd Service for Prometheus

To ensure Prometheus runs as a service, create a systemd unit file.

Create the Service File

Open a new service file for Prometheus:

sudo vi /etc/systemd/system/prometheus.service

Add the following content:

[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

Reload Systemd and Start Prometheus

Reload the systemd manager configuration and start Prometheus:

sudo systemctl daemon-reload
sudo systemctl start prometheus

Verify that the service is running:

sudo systemctl status prometheus

Enable the service to start on boot:

sudo systemctl enable prometheus

Step 6: Accessing the Prometheus Web Interface

Prometheus’s web interface can be accessed via port 9090. Open a web browser and navigate to:

http://<your-server-ip>:9090/graph

Here, you can query existing metrics and visualize data. The default configuration scrapes Prometheus’s own metrics.


Step 7: Adding Additional Monitoring Targets

Prometheus can monitor multiple targets. To add more targets, edit the prometheus.yml file:

scrape_configs:
  - job_name: 'my-app'
    static_configs:
      - targets: ['my-app-server:8080']

Restart Prometheus to apply changes:

sudo systemctl restart prometheus

Conclusion

In this guide, we have covered the complete process of installing and configuring Prometheus on a Linux server. Prometheus is a powerful tool for monitoring system health, gathering metrics, and triggering alerts. Its flexibility allows you to monitor various services and applications by simply adjusting the configuration file.

By following these steps, you’ve set up a robust monitoring solution for your systems. Remember to keep Prometheus updated and secure access to its web interface for optimal performance and security.

Previous Article

UFW: List and Delete Firewall Rules Easily

Next Article

Recover Your Keystore Password from a Stash File Using Perl

Subscribe to our Newsletter! 📬

Subscribe to our email newsletter to get the latest posts delivered right to your email.
Pure inspiration, zero spam ✨