
Introduction
Prometheus is an open-source tool written in Go language used for monitoring real-time services and collecting metrics in a time-series database. Prometheus uses visualization tools like Grafana, which uses PromQL, a flexible query language to fetch data for monitoring and analysis.
Prometheus uses exporters, both community-maintained and official, to export metrics from third-party systems. You can find links to many exporters in the Prometheus documentation.
Prerequisites
- Deploy a fully updated Vultr Ubuntu 20.04 LTS
- At least 2GB of RAM and 1 vCPU
- SSH access with sudo privileges
1. Update the System
Update the apt package list to prepare the system for further installations.
$ sudo apt update2. Download and Install Prometheus
Prometheus installation files are packaged as precompiled binaries. To download your preferred binaries, you can visit the official Prometheus download page.
If you decide to install a different version of Prometheus, please note the version numbers in the following examples when downloading and extracting the archives.
Download the Prometheus release package.
$ wget https://github.com/prometheus/prometheus/releases/download/v2.27.1/prometheus-2.27.1.linux-amd64.tar.gzExtract the downloaded archive.
$ tar xvf prometheus-2.27.1.linux-amd64.tar.gzChange directory to the extracted archive.
$ cd prometheus-2.27.1.linux-amd64Create the configuration file directory.
$ sudo mkdir -p /etc/prometheusCreate the data directory.
$ sudo mkdir -p /var/lib/prometheusMove the binary files prometheus and promtool to /usr/local/bin/.
$ sudo mv prometheus promtool /usr/local/bin/Move console files in console directory and library files in console_libraries directory to /etc/prometheus/ directory.
$ sudo mv consoles/ console_libraries/ /etc/prometheus/Move the template configuration file prometheus.yml to /etc/prometheus/ directory
$ sudo mv prometheus.yml /etc/prometheus/prometheus.ymlVerify the installed version of Prometheus.
$ prometheus --versionVerify the installed version of promtool.
$ promtool --version3. Configure System Group and User
Create a prometheus group.
$ sudo groupadd --system prometheusCreate a user prometheus and assign it to the created prometheus group.
$ sudo useradd -s /sbin/nologin --system -g prometheus prometheusSet the ownership of Prometheus files and data directories to the prometheus group and user.
$ sudo chown -R prometheus:prometheus /etc/prometheus/ /var/lib/prometheus/
$ sudo chmod -R 775 /etc/prometheus/ /var/lib/prometheus/4. Configure Systemd Service
Create a systemd service file for Prometheus to start at boot time.
$ sudo nano /etc/systemd/system/prometheus.serviceAdd the following lines to the file and save it:
[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.targetStart the Prometheus service.
$ sudo systemctl start prometheusEnable the Prometheus service to run at system startup.
$ sudo systemctl enable prometheusCheck the status of the Prometheus service.
$ sudo systemctl status prometheusAccess Your Server
Access the Prometheus interface through your browser at port 9090. For example:
http://192.0.2.123:9090More Information
To learn more about Prometheus, please see the official documentation.