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

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

 

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

В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить ‘ sudo‘ к командам для получения привилегий root. Я покажу вам пошаговую установку Prometheus на Ubuntu 20.04 Focal Fossa. Вы можете следовать тем же инструкциям для Ubuntu 18.04, 16.04 и любого другого дистрибутива на основе Debian, например Linux Mint.

Установите Prometheus на Ubuntu 20.04 LTS Focal Fossa

Шаг 1. Во-первых, убедитесь, что все ваши системные пакеты обновлены, выполнив следующие aptкоманды в терминале.

sudo apt update
sudo apt upgrade

Шаг 2. Установка веб-сервера Nginx.

Nginx доступен в репозиториях Ubuntu по умолчанию. Чтобы установить его, выполните следующую команду:

sudo apt install nginx

После завершения установки запустите команды, чтобы Nginx автоматически запускался при запуске вашего сервера:

sudo systemctl stop nginx.service
sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Шаг 3. Создайте пользователей Prometheus.

Нам нужно создать пользователя и группу под названием prometheus, а также каталог под названием Prometheus:

sudo useradd -s /sbin/nologin --system -g prometheus prometheus
sudo mkdir /var/lib/prometheus
for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done

Шаг 4. Установка Prometheus на Ubuntu 20.04.

Загрузите последнюю стабильную версию Prometheus с помощью wgetкоманды:

mkdir -p /tmp/prometheus && cd /tmp/prometheus
curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
tar xvf prometheus*.tar.gz

После завершения извлечения файла переместите двоичные файлы prometheus и promtool из извлеченной архивной папки Prometheus в каталог:/usr/local/bin

sudo mv prometheus promtool /usr/local/bin/

Шаг 5. Настройте Prometheus.

Мы создадим файл конфигурации с именем prometheus.yml в каталоге:/etc/prometheus

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

Содержание prometheus.yml следующее:

my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
Alertmanager configuration
alerting:
alertmanagers:
static_configs: targets:
# - alertmanager:9093
Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
A scrape configuration containing exactly one endpoint to scrape:
Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label job= to any timeseries scraped from this config.
job_name: 'prometheus'
metrics_path defaults to '/metrics'
scheme defaults to 'http'.
static_configs:
targets: ['localhost:9090']

Шаг 6. Создайте службу Prometheus Systemd.

Теперь создадим файл для службы systemd:

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

Добавьте следующий файл:

[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP \$MAINPID
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 \
  --web.external-url=

SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target

Затем измените владельца этих каталогов на пользователя и группу Prometheus:

for i in rules rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done
for i in rules rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done
sudo chown -R prometheus:prometheus /var/lib/prometheus/

Как только вы закончите с вышеуказанными конфигурациями, перезагрузите systemd, используя следующую команду:

sudo systemctl daemon-relaod
sudo systemctl start prometheus
sudo systemctl enable prometheus

Шаг 7. Настройте брандмауэр.

Между тем вам необходимо убедиться, что ваш брандмауэр настроен на разрешение трафика по портам HTTP (80), HTTPS (443) и 9090. Nginx регистрирует себя как сервис ufw:

sudo ufw allow in "Nginx Full"
sudo ufw allow 9090/tcp

Шаг 8. Доступ к веб-интерфейсу Prometheus.

По умолчанию Prometheus будет доступен через HTTP-порт 9090. Откройте свой любимый браузер, перейдите к или и выполните необходимые действия, чтобы завершить установку.http://your-domain.com:9090http://server-ip-addreess:9090

Поздравляю! Вы успешно установили Prometheus . Благодарим за использование этого руководства для установки мониторинга с открытым исходным кодом Prometheus на Ubuntu 20.04 LTS (Focal Fossa). Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт Prometheus .