[2 min installs] Prometheus on Ubuntu
Prometheus is a powerful open-source monitoring system that can collect metrics from various sources, store them, and visualize them in a web interface. In this guide, we will walk you through the installation process of Prometheus on Ubuntu 20.04 in under two minutes.
Prerequisites
Before we start, you need to ensure that you have the following:
- Ubuntu 20.04 operating system up and running
- Sudo privileges on your user account
Step 1 - Update the System
Before you install any new packages, it is recommended to update the system to the latest packages. To do this, run the following command in your terminal:
sudo apt update && sudo apt upgrade
Step 2 - Install Prometheus
Prometheus is not available in the default Ubuntu package repository. But it comes in precompiled binaries compressed into a .tar
or .zip
file. To download Prometheus, head over to the official download page or to the official GitHub repository. At the moment of writing this guide, the latest version of Prometheus is 2.43.0.
First, we need to create the configuration and data directories for Prometheus.
Create a configuration directory for Prometheus by running the following command:
sudo mkdir -p /etc/prometheus
For the data directory, execute:
sudo mkdir -p /var/lib/prometheus
Once the directories are created, download the compressed installation file from the GitHub repository. Note that this link may no longer be valid. To get the current version of Prometheus, go to the official GitHub repository, navigate to Releases, and select the version you wish to download.
wget https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-amd64.tar.gz
Now, extract the downloaded file:
tar -xvf prometheus-2.31.3.linux-amd64.tar.gz
Navigate to the Prometheus folder:
cd prometheus-2.31.3.linux-amd64
Once in the directory move the prometheus
and promtool
binary files to /usr/local/bin/
folder:
sudo mv prometheus promtool /usr/local/bin/
Move console files in console
directory and library files in the console_libraries
directory to /etc/prometheus/
directory.
sudo mv consoles/ console_libraries/ /etc/prometheus/
Move the prometheus.yml template configuration file to the /etc/prometheus/
directory.
sudo mv prometheus.yml /etc/prometheus/prometheus.yml
It was quite a lot of steps, but fortunately, this is all for the installation part. Make sure that everything worked by running the following command the will print the Prometheus version:
prometheus --version
promtool --version
Step 3 - Create a Prometheus group and user
It is strongly recommended that we create a Prometheus group and user before proceeding to the next step which involves creating a system file for Prometheus.
To create a prometheus
group execute the following command:
sudo groupadd --system prometheus
Create prometheus
user and assign it to the just-created prometheus
group:
sudo useradd -s /sbin/nologin --system -g prometheus prometheus
Next, configure the directory ownership and permissions as shown below:
sudo chown -R prometheus:prometheus /etc/prometheus/ /var/lib/prometheus/
sudo chmod -R 775 /etc/prometheus/ /var/lib/prometheus/
That’s it for this step. Now, prometheus
user and group are created and you can move on the next step.
Step 4 - Create a systemd file for Prometheus
Create and open a new systemd
file for Prometheus using your favorite text editor. In this guide, we will use nano
sudo nano /etc/systemd/system/prometheus.service
Copy and paste the following configuration into the newly created file:
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Restart=always
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 \
--web.listen-address=0.0.0.0:9090
[Install]
WantedBy=multi-user.target
Save the changes and exit the systemd
file. In the nano
editor, press Ctr + O
to write the changes, confirm with Enter
, and press Ctrl + X
to exit the editor.
Now, start the Prometheus service:
sudo systemctl start prometheus
Enable the Prometheus service to run at startup:
sudo systemctl enable prometheus
That’s it for this step. Check that everything works so far by checking the status of the Prometheus service:
sudo systemctl status prometheus
Step 5 - Access Prometheus Web Interface
Prometheus web interface is available on port 9090 by default.
If you have a UFW firewall running, open the 9090 port:
sudo ufw allow 9090/tcp
sudo ufw reload
To access the Prometheus web interface, open your web browser and navigate to http://localhost:9090/
or http://SERVER_IP:9090/
.
Conclusion
Congratulations! You have successfully installed Prometheus on Ubuntu 20.04. Now you can explore the Prometheus web interface to visualize the metrics collected from different sources. With Prometheus, you can monitor the performance of your systems and applications and identify potential issues before they become a problem.