Задать вопрос
Все статьи / Полезная информация / Установка и настройка Prometheus на Ubuntu 24.04
Найти результаты:
Период:
с:
 
по:
Помощь в поиске

Помощь в поиске

apple banana
Найти записи, которые содержат хотя бы одно из двух слов.

+apple +juice
Найти записи, которые содержат оба слова.

+apple macintosh
Найти записи, которые содержат слово 'apple', но положение записей выше, если они также содержат 'macintosh'.

+apple -macintosh
Найти записи, которые содержат слово 'apple', но не 'macintosh'.

+apple ~macintosh
Найти записи, которые содержат слово 'apple', но если запись также содержит слово 'macintosh', rate it lower than if row does not. Это более "мягкий" чем поиск '+apple -macintosh', для которого наличие 'macintosh' вызывает что записи не будут возвращены вовсе.

+apple +(>turnover <strudel)
Найти записи, которые содержат слова 'apple' и 'turnover', или 'apple' и 'strudel' (в любом порядке), но ранг 'apple turnover' выше чем 'apple strudel'.

apple*
Найти записи, которые содержат такие слова как 'apple', 'apples', 'applesauce', или 'applet'.

"some words"
Найти записи, которые содержат точную фразу 'some words' (например записи содержащие 'some words of wisdom', но не "some noise words").

Установка и настройка Prometheus на Ubuntu 24.04

В этой статье мы покажем, как установить и настроить Prometheus на Ubuntu 24.04.

Что такое Prometheus

Prometheus – это система мониторинга и сбора метрик с открытым исходным кодом. Она разработана для наблюдения за состоянием приложений, серверов и инфраструктуры. 

Проект появился в компании SoundCloud и быстро стал одним из самых популярных инструментов мониторинга благодаря простоте настройки, гибкости и высокой надежности. Сегодня Prometheus активно развивается в составе экосистемы Cloud Native Computing Foundation (CNCF).

В основе работы Prometheus лежит модель pull-мониторинга: сервер Prometheus сам обращается к указанным целевым системам по HTTP и получает свежие данные. Благодаря этому метрики собираются централизованно, а конфигурацию можно легко контролировать из одного места.

Полученные данные сохраняются во внутренней базе временных рядов (TSDB), где их удобно обрабатывать и использовать для анализа. Для работы с метриками используется собственный язык запросов PromQL, который позволяет выполнять фильтрацию, агрегирование и вычисления в реальном времени.

Для чего нужен Prometheus

Prometheus используют для централизованного наблюдения за состоянием сервисов и инфраструктуры. Он помогает администраторам и разработчикам контролировать поведение систем, быстро реагировать на сбои и анализировать производительность. 

Систему используют, чтобы:

  • собирать метрики с сервисов, приложений, серверов и сетевых компонентов;
  • анализировать полученные данные с помощью запросов на языке PromQL;
  • отслеживать изменения в поведении систем и рост нагрузки;
  • выявлять сбои и аномалии на ранних этапах;
  • отправлять уведомления при нарушении заданных условий;
  • визуализировать показатели через внешние инструменты, такие как Grafana;
  • использовать динамическое обнаружение целей мониторинга в средах вроде Kubernetes;
  • хранить временные ряды метрик в собственной высокопроизводительной базе.

Где используется Prometheus

Prometheus используется в разных областях, включая:

  • Серверные инфраструктуры. Система подходит для наблюдения за физическими и виртуальными серверами. Она фиксирует загрузку процессора, состояние дисков, использование памяти, сетевую активность и другие показатели, которые влияют на стабильность платформы. Это помогает заранее заметить рост нагрузки и предотвратить проблемы.
  • Контейнерные среды и оркестраторы. Prometheus широко применяется в Kubernetes, Docker Swarm и других платформах, где количество сервисов может постоянно меняться. Сервер автоматически обнаруживает новые контейнеры или узлы и начинает собирать метрики.
  • Микросервисная архитектура. В распределенных системах крайне важно понимать, как ведет себя каждый отдельный сервис и как они взаимодействуют между собой. Prometheus отслеживает задержки запросов, число ошибок, длительность обработки операций и другие показатели, влияющие на качество работы приложения. 
  • Сетевое оборудование и инфраструктура связи. Prometheus может собирать метрики с маршрутизаторов, коммутаторов, балансировщиков нагрузки и других сетевых устройств, если они поддерживают экспорт данных. Система помогает контролировать пропускную способность, уровень ошибок и стабильность сетевых каналов.
  • Базы данных и хранилища. Prometheus интегрируется с PostgreSQL, MySQL, MongoDB, Redis, Kafka, RabbitMQ и другими системами хранения данных и очередей сообщений. Метрики помогают оценивать производительность, отслеживать задержки в обработке запросов и выявлять узкие места.
  • DevOps и CI/CD-пайплайны. В процессе разработки и развертывания приложений важно отслеживать состояние инструментов сборки, контейнеризации и доставки. Prometheus может собирать метрики Jenkins, GitLab Runner, ArgoCD, FluxCD и других систем. 

Основные компоненты Prometheus

Prometheus состоит из нескольких ключевых компонентов:

Сервер Prometheus 

Центральная часть системы. Сервер выполняет два основных действия: регулярно опрашивает указанные цели мониторинга и сохраняет полученные данные во внутреннюю базу временных рядов. Также именно сервер обрабатывает запросы PromQL и выдает результаты для визуализации или внешних систем.

База данных временных рядов (TSDB-СУБД)

Встроенная база данных, которая оптимизирована для хранения временных рядов. TSDB сохраняет метрики в виде пар «метка – значение» и позволяет быстро извлекать данные для анализа. 

Экспортеры

Отдельные процессы или программы, которые преобразуют данные из приложений, сервисов и оборудования в формат, понятный Prometheus. 

Существует большое количество экспортеров: от универсального node_exporter для серверов до специализированных решений для PostgreSQL, Nginx, Redis, Kubernetes и сетевого оборудования.

Service Discovery

Механизм обнаружения целей мониторинга. Prometheus может автоматически находить сервисы в динамических средах: например, Kubernetes, Consul, EC2 или Docker Swarm. С ним при изменении инфраструктуры не нужно вручную прописывать список целей в конфигурации.

PromQL

Язык запросов Prometheus, который предназначен для выборки, фильтрации и обработки метрик. PromQL позволяет вычислять агрегаты, строить зависимости, анализировать временные промежутки и формировать данные для графиков и алертов.

Alertmanager

Отдельный компонент, который отвечает за обработку и доставку уведомлений. Он принимает алерты от Prometheus, группирует их, устраняет повторяющиеся сообщения и отправляет уведомления в нужные каналы: email, Telegram, Slack, вебхуки и другие системы.

Веб-интерфейс 

Встроенный веб-интерфейс, доступный на порту 9090. Он позволяет быстро просматривать метрики, выполнять PromQL-запросы и проверять состояние целей. Интерфейс ограничен по возможностям, но полезен при отладке и проверке работы конфигурации.

Pushgateway

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

Подготовка к установке

Для начала нужно подготовить сервер, на котором он будет работать. Например, вы можете выбрать облачный или выделенный сервер SpaceWeb. На нем Prometheus будет регулярно опрашивать ваше приложение, собирать метрики и сохранять их для дальнейшего анализа.

Убедитесь, что:

  • сервер SpaceWeb работает на Ubuntu (лучше использовать LTS-версию, у нас – 24.04);
  • подключились к серверу по SSH, и у вас есть права sudo;
  • система обновлена и готова к установке пакетов.

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

Установка Prometheus начинается с загрузки его сборки. Prometheus распространяется в виде готовых бинарных файлов, которые упакованы в архивы tar.gz. 

На странице загрузок – как на официальном сайте, так и в GitHub – представлен список архивов для разных операционных систем и процессорных архитектур. При выборе важно учитывать два параметра: под какую ОС предназначена сборка и под какую архитектуру процессора. 

Для Ubuntu на стандартных серверах обычно выбирают вариант с указанием linux и amd64. Если планируете установить Prometheus на другой тип системы, просто выберите соответствующие параметры.

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

sudo wget https://github.com/prometheus/prometheus/releases/download/v2.45.3/prometheus-2.45.3.linux-amd64.tar.gz

Далее архив нужно распаковать:

sudo tar -xzf prometheus*.tar.gz

Файл архива больше не понадобится, поэтому его можно удалить:

sudo rm prometheus*.tar.gz

Появится директория с файлами Prometheus. Внутри находятся два исполняемых файла (prometheus и promtool), конфигурационные каталоги и основной файл настроек prometheus.yml. Чтобы продолжить установку, перейдите в эту директорию:

cd prometheus*/

Перед запуском Prometheus мы рекомендуем создать отдельного системного пользователя и группу. Это позволит ограничить права доступа и повысить безопасность работы сервиса:

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

Затем переместите исполняемые файлы в системный каталог, откуда они смогут запускаться как обычные программы:

sudo mv prometheus /usr/local/bin
sudo mv promtool /usr/local/bin

Назначьте владельцем нового пользователя, которого вы создали для Prometheus:

sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool

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

sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus

Переместите в них конфигурационные файлы и необходимые каталоги:

sudo mv consoles /etc/prometheus
sudo mv console_libraries /etc/prometheus
sudo mv prometheus.yml /etc/prometheus

И назначьте им корректные права доступа:

sudo chown prometheus:prometheus /etc/prometheus
sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
sudo chown -R prometheus:prometheus /var/lib/prometheus

На этом установка Prometheus завершена.

Как настроить Prometheus

Вся основная конфигурация Prometheus хранится в файле prometheus.yml. Через него задаются параметры сбора данных, список целей для опроса, периодичность обработки метрик и подключаемые файлы правил. Файл определяет, что и как будет мониториться.

Откройте конфигурационный файл в текстовом редакторе:

sudo nano /etc/prometheus/prometheus.yml

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

Например:

global:
  scrape_interval: 10s      # как часто опрашивать цели
  evaluation_interval: 10s  # как часто выполнять правила обработки
rule_files:
  # сюда можно добавить файлы правил, когда они появятся
  # - "/etc/prometheus/alerts.rules"
scrape_configs:
  - job_name: 'local-monitoring'
    static_configs:
      - targets: ['127.0.0.1:9090']

Что здесь важно:

  • global указывает базовые параметры работы сервера.
  • scrape_interval определяет, как часто Prometheus отправляет запросы к целям;
  • evaluation_interval указывает как часто анализируются данные по заданным правилам.
  • rule_files позволяет подключить один или несколько файлов правил (например, файлы alerting rules). На старте их может не быть, поэтому блок можно оставить пустым.
  • scrape_configs – основной раздел, в котором описываются задания (jobs). Каждое задание содержит набор целей – адресов и портов, с которых Prometheus должен собирать метрики.

В нашем  примере Prometheus обращается к себе по 127.0.0.1:9090.

Если вы планируете мониторить внешнее приложение, можно позже добавить дополнительную цель, например:

  - job_name: 'my-app'
    static_configs:
      - targets: ['10.0.0.5:8080']

Перед запуском убедитесь, что файл написан без ошибок. Для этого есть утилита promtool:

promtool check config /etc/prometheus/prometheus.yml

Важно! При работе с YAML необходимо строго соблюдать структуру отступов – в примерах используются пробелы, но можно применять и табуляцию. Главное – не смешивать их.

Настройка службы Prometheus в Systemd

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

Создайте файл конфигурации службы:

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

Вставьте следующее содержимое:

[Unit]
Description=Prometheus Monitoring Service
After=network-online.target
Wants=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 \
  --web.enable-lifecycle
Restart=on-failure
[Install]
WantedBy=multi-user.target

Пояснения к настроенным параметрам:

  • User / Group указывают пользователя и группу, от имени которых запускается процесс. Важно, чтобы эти сущности уже были созданы при установке.
  • ExecStart – основная команда запуска.
    Здесь задаются пути к конфигурации, каталогу с данными и шаблонам веб-интерфейса. Дополнительный параметр --web.enable-lifecycle позволяет перезагружать конфиг без остановки процесса.
  • Restart=on-failure определяет, что Systemd будет автоматически перезапускать Prometheus, если он аварийно завершится.

Сохранив файл, обновите Systemd, чтобы он подхватил новую службу:

sudo systemctl daemon-reload

Затем включите автоматический запуск:

sudo systemctl enable Prometheus

И запустите службу:

sudo systemctl start Prometheus

Проверить статус работы можно командой:

sudo systemctl status prometheus

Ожидаемый вывод должен содержать строку:

Active: active (running)

Если служба не запустилась, чаще всего проблема в конфигурационном файле – стоит проверить логи:

journalctl -u prometheus -f

Как открыть интерфейс Prometheus

Веб-интерфейс Prometheus встроен в сам сервер и доступен по HTTP. Чтобы открыть интерфейс, достаточно указать в браузере IP-адрес вашего сервера и порт, на котором работает Prometheus.

Адрес будет выглядеть следующим образом:

http://IP-адрес-сервера:9090

Например:

http://203.0.113.15:9090

Загрузится стандартная панель Prometheus. В ней можно просматривать метрики, выполнять запросы, проверять состояние целей и диагностировать работу системы.

Если интерфейс не открывается, скорее всего, доступ к порту 9090 заблокирован брандмауэром. Чтобы разрешить входящие соединения, выполните:

sudo ufw allow 9090/tcp

Визуализация и интеграция с Grafana

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

О том, как установить Grafana, рассказали в статье «Пошаговая установка Grafana на Ubuntu». 

Grafana работает на порту 3000, поэтому ее панель управления открывается по адресу:

http://IP-адрес-сервера:3000

Например:

http://203.0.113.15:3000

При первом входе вас попросят ввести стандартные учетные данные: логин admin и пароль admin. Система сразу предложит изменить пароль – лучше сделайте это, чтобы защитить доступ к панели.

После входа можно подключить Prometheus как источник данных для визуализации. Для этого:

  1. Перейдите в раздел Connections.
  2. Откройте вкладку Data Sources.
  3. Нажмите Add data source, чтобы добавить новый источник.
  4. В списке поддерживаемых систем найдите Prometheus и выберите его. 
  5. Откроется страница настройки подключения. В поле URL укажите адрес вашего Prometheus-сервера. Если Grafana установлена на той же машине, можно использовать:
http://localhost:9090

или IP-адрес сервера:

http://IP-адрес:9090

Остальные параметры можно оставить по умолчанию. 

6.  Чтобы подтвердить настройки, нажмите Save & Test. Если соединение установлено успешно, Grafana сообщит об этом.

Заключение 

Prometheus давно зарекомендовал себя как надежный инструмент для наблюдения за состоянием сервисов и инфраструктуры. Он показывает, как системы реагируют на нагрузку, какие участки работают нестабильно и какие метрики требуют повышенного внимания.

Если не хочется развертывать всю систему вручную, в SpaceWeb доступно готовое решение VPS с Prometheus + Grafana. Оно позволяет получить визуальные панели и метрики прямо на своем виртуальном сервере. Все работает в единой среде, а данные остаются под вашим полным контролем – удобный способ организовать мониторинг без лишних усилий.

Предыдущая статья
Установка Zabbix на Ubuntu и Debian
Следующая статья
Файл hosts на macOS