Как установить Prometheus на Debian 12

Prometheus — система мониторинга и оповещений с открытым исходным кодом, созданная для сбора и анализа метрик. Prometheus использует принцип активного опроса. Система самостоятельно обращается к целевым сервисам через HTTP и получает данные в формате метрик. Все метрики хранятся в собственной базе данных временных рядов, что позволяет эффективно анализировать изменения во времени. Для построения графиков и дашбордов часто используется вместе с Grafana. Prometheus также поддерживает правила алертинга, которые можно интегрировать с внешними системами уведомлений, например, Alertmanager.

В статье разберём, как установить Prometheus на виртуальный выделенный сервер, работающий под управлением Debian 12.

Как установить Prometheus на Debian 12

Если процесс Prometheus будет запускаться от имени суперпользователя, любая ошибка или уязвимость теоретически может дать злоумышленнику полный контроль над вашим сервером. Поэтому, чтобы не допустить этого, необходимо создать изолированною учётную запись и группу. Данная мера позволит ограничить права доступа для Prometheus только нужными файлами и каталогами.

Для этого сначала создайте специальную группу с именем prometheus:

$ sudo groupadd --system prometheus

Затем создайте системного пользователя prometheus. Такая учётная запись не сможет авторизоваться в систему и будет использоваться исключительно для запуска сервиса Prometheus с ограниченными правами:

$ sudo useradd -s /sbin/nologin --system -g prometheus prometheus

В данном случае параметр -s /sbin/nologin указывает на то, что пользователю нельзя заходить в систему интерактивно. Опция --system говорит о создании именно системного пользователя. Такая учётная запись будет использоваться исключительно для сервисов. Параметр -g prometheus указывает о назначении создаваемого пользователя в группу prometheus.

Далее создайте директорию, которая будет применяться в качестве рабочего места для Prometheus. Там будут располагаться его исполняемые файлы, конфигурация и вспомогательные скрипты. Выбор каталога /opt обусловлен тем, что по традиции в Linux он предназначен для стороннего софта, который не входит в состав системы и не инсталлируется через стандартные пакеты дистрибутивов.

$ sudo mkdir /opt/prometheus/

Теперь необходимо загрузить архив дистрибутива Prometheus. Для этого откройте браузер и перейдите на страницу загрузок данного ПО. Здесь выберите версию Prometheus и при помощи правой кнопки мыши скопируйте адрес ссылки на загрузку Linux-дистрибутива.

Страница загрузки дистрибутивов Prometheus

Затем перейдите в свой домашний каталог:

$ cd ~

Для загрузки архива установите wget — консольную утилиту, с помощью которой можно скачивать файлы из сети:

$ sudo apt install wget

После чего, используя утилиту wget и скопированную ранее ссылку, загрузите в текущий каталог архив дистрибутива:

$ wget https://github.com/prometheus/prometheus/releases/download/v3.5.0/prometheus-3.5.0.linux-amd64.tar.gz

Следующей командой распакуйте загруженный архив:

$ tar -xvzf prometheus-3.5.0.linux-amd64.tar.gz

Перейдите в каталог, полученный при распаковке:

$ cd prometheus-3.5.0.linux-amd64/

Затем переместите находящиеся там файлы prometheus, prometheus.yml и promtool в созданный ранее каталог /opt/prometheus/:

$ sudo mv prometheus prometheus.yml promtool /opt/prometheus/

После чего рекурсивно измените владельца и группу каталога /opt/prometheus/ и его содержимого на пользователя и группу prometheus. Это необходимо сделать, чтобы Prometheus имел доступ к своим файлам и мог корректно оперировать ими.

$ sudo chown -R prometheus:prometheus /opt/prometheus/

Как запустить Prometheus в качестве системного сервиса

Чтобы Prometheus автоматически запускался при старте сервера и работал в фоне как демон, необходимо настроить его запуск в качестве системного сервиса. Это также необходимо для того, чтобы его было удобно контролировать через systemctl, то есть запускать, останавливать или перезапускать, а также чтобы система сама следила за состоянием сервиса и перезапускала в случае какого-либо сбоя.

Для запуска Prometheus как службы, во-первых, необходимо создать специальный юнит-файл:

$ sudo nano /etc/systemd/system/prometheus.service

Данный файл в systemd нужен для того, чтобы описать, как должен запускаться и работать сервис. Другими словами, его содержание указывает на то, какой выполнять бинарный файл, с какими параметрами, от имени какого пользователя, где хранить журналы событий и что делать при сбое. В примере с Prometheus содержимое юнит-файла выглядит следующим образом:

[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/opt/prometheus/prometheus --config.file=prometheus.yml
WorkingDirectory=/opt/prometheus

[Install]
WantedBy=multi-user.target

Вставьте в файл данный текст, после чего закройте юнит-файл с сохранением внесённых изменений. Затем запустите перезагрузку конфигурации менеджера systemd для применения изменений без рестарта самого systemd или перезагрузки системы:

$ sudo systemctl daemon-reload

Затем установите новую службу в автозагрузку с одновременным её запуском:

$ sudo systemctl enable --now prometheus

Чтобы проверить корректность работы службы, запустите вывод её текущего состояния на экран:

$ systemctl status prometheus

В выводе не должно содержаться каких-либо сообщений об ошибках:

Вывод текущего состояния службы Prometheus

Поскольку веб-интерфейс Prometheus работает с использованием TCP-порта 9090, необходимо разрешить доступ к серверу через данный порт. Для чего добавьте в брандмауэр UFW разрешающее правило для порта 9090:

$ sudo ufw allow 9090/tcp

Чтобы подключиться к веб-интерфейсу Prometheus, откройте браузер и перейдите на http://X.X.X.X:9090, заменив X.X.X.X на IP-адрес вашего виртуального сервера.

Веб-интерфейс Prometheus, установленного на Debian

Вам также может понравиться