- Lab
- A Cloud Guru
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.
Path 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
.
-
What's a lab?
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.
Provided environment for hands-on practice
We will provide the credentials and environment necessary for you to practice right within your browser.
Guided walkthrough
Follow along with the author’s guided walkthrough and build something new in your provided environment!
Did you know?
On average, you retain 75% more of your learning if you get time for practice.