- Lab
-
Libraries: If you want this lab, consider one of these libraries.
- Cloud

Building a Prometheus Server
Prometheus is a powerful tool for monitoring your infrastructure. Getting started with Prometheus is as easy as setting up a single Prometheus server. There are multiple ways to install Prometheus. In this lab, you will have the opportunity to set up a Prometheus server by installing Prometheus from pre-compiled binaries made available by the Prometheus team.

Lab Info
Table of Contents
-
Challenge
Download and Install Prometheus
-
Create the
prometheus
user and directories:sudo useradd -M -r -s /bin/false prometheus
sudo mkdir /etc/prometheus /var/lib/prometheus
-
Download and extract the pre-compiled binaries:
wget https://github.com/prometheus/prometheus/releases/download/v2.16.0/prometheus-2.16.0.linux-amd64.tar.gz
tar xzf prometheus-2.16.0.linux-amd64.tar.gz prometheus-2.16.0.linux-amd64/
-
Move the files from the downloaded archive to the appropriate locations, and set ownership on these files and directories to the
prometheus
user:sudo cp prometheus-2.16.0.linux-amd64/{prometheus,promtool} /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/{prometheus,promtool}
sudo cp -r prometheus-2.16.0.linux-amd64/{consoles,console_libraries} /etc/prometheus/
sudo cp prometheus-2.16.0.linux-amd64/prometheus.yml /etc/prometheus/prometheus.yml
sudo chown -R prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus
-
Run Prometheus in the foreground to make sure everything is set up correctly so far:
prometheus --config.file=/etc/prometheus/prometheus.yml
-
-
Challenge
Configure Prometheus as a `systemd` Service
-
Create a
systemd
unit file for Prometheus:sudo vi /etc/systemd/system/prometheus.service
-
Define the Prometheus service in the unit file:
[Unit] Description=Prometheus Time Series Collection and Processing Server 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
-
Start and enable the Prometheus service:
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
-
Verify the Prometheus service is healthy:
sudo systemctl status prometheus
-
Make an HTTP request to Prometheus to verify it is able to respond:
curl localhost:9090
-
You can also access Prometheus in a browser using the server's public IP address:
http://<PROMETHEUS_SERVER_PUBLIC_IP>:9090
.
-
About the author
Real skill practice before real-world application
Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.
Learn by doing
Engage hands-on with the tools and technologies you’re learning. You pick the skill, we provide the credentials and environment.
Follow your guide
All labs have detailed instructions and objectives, guiding you through the learning process and ensuring you understand every step.
Turn time into mastery
On average, you retain 75% more of your learning if you take time to practice. Hands-on labs set you up for success to make those skills stick.