Как установить Prometheus на CentOS 8/RHEL 8 | DATAENGINER

Как установить Prometheus на CentOS 8/RHEL 8

Добро пожаловать в наше руководство по установке Prometheus на CentOS 8/RHEL 8. Prometheus — это набор инструментов для мониторинга и оповещения временных рядов с открытым исходным кодом, первоначально разработанный в SoundCloud. Он имеет очень активное развитие и сообщество и получил широкое распространение во многих организациях и компаниях.

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

Если вам интересно сравнее Prometheus, Grafana и Graphite, то статья находится здесь.

Установка Prometheus

Шаг 1: Добавьте системного пользователя и группу для Prometheus

Давайте начнем установку Prometheus на RHEL 8, создав отдельного пользователя, который будет запускать и управлять сервисом Prometheus. Это системный пользователь, который не имеет доступа к логину консоли/оболочки.

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

Обратите внимание, что у этого пользователя нет оболочки /bin/bash, поэтому мы использовали  -s /sbin/nologin.

Шаг 2: Установите NTP-сервер

Чтобы избежать смещения времени, настройте NTP-сервер на сервере Prometheus для обеспечения точного времени.

О том как настроить, вы можете прочитать здесь

Шаг 3: Создайте каталог данных для Prometheus

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

mkdir -p /app/prometheus

Шаг 4. Создайте каталоги конфигурации для Prometheus

Каталог первичных файлов конфигурации Prometheus — это  / etc / prometheus / . Он будет иметь несколько подкаталогов: rules, rules.d, files_sd.

mkdir -p /etc/prometheus/rules
mkdir -p /etc/prometheus/rules.d
mkdir -p /etc/prometheus/files_sd

Шаг 5. Загрузим Prometheus для CentOS 8/RHEL 8

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

Вы можете использовать curl или wget для загрузки из командной строки.

cd /app
wget https://github.com/prometheus/prometheus/releases/download/v2.16.0-rc.0/prometheus-2.16.0-rc.0.linux-amd64.tar.gz

Распакуем архив:

tar -xvf prometheus-2.16.0-rc.0.linux-amd64.tar.gz

Скопируем бинарные файлы promtool и prometheus из каталога который мы распаковали, в каталог для запуска бинарных файлов /usr/local/bin:

cd prometheus-2.16.0-rc.0.linux-amd64/
cp prometheus /usr/local/bin/
cp promtool /usr/local/bin/

Скопируем каталог console_libraries и consoles в созданный нами каталог для конфиг файлов /etc/prometheus

cp -r console_libraries/ /etc/prometheus/
cp -r consoles/ /etc/prometheus/

Скопируем файл tsdb в /app/prometheus, а каталог с распакованными файлами и архив удалим.

cp tsdb /app/prometheus
cd ..
ls
rm -rf prometheus-2.16.0-rc.0.linux-amd64 prometheus-2.16.0-rc.0.linux-amd64.tar.gz

Шаг 6. Создайте файл конфигурации Prometheus.

Файл конфигурации Prometheus будет находиться в  /etc/prometheus/prometheus.yml . 

Создайте простой файл конфигурации, используя следующий пример:

#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: 15s # scrape_timeout is set to the global default (10s). 
#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=<job_name> to any   timeseries scraped from this config.
  - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. 
static_configs: 
  - targets:    ['localhost:9090']

Вы можете изменить первоначальные настройки по своему усмотрению.

Шаг 7. Создать системный сервисный модуль

Чтобы иметь возможность управлять службой Prometheus с помощью systemd, вам нужно явно определить этот файл модуля. Для этого создадим сервисный файл.

vim /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
Environment="GOMAXPROCS=2"
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/app/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

В поле Environment=»GOMAXPROCS=2″ установим количество ядер процессора доступных нашей системе

Установите правильные разрешения каталогов

chown -R prometheus:prometheus /etc/prometheus/
chmod -R 755 /etc/prometheus/
chown -R prometheus:prometheus /app/prometheus/

Чтобы сервисный файл заработал перезагрузим демон systemctl и проверим статус сервиса, чтобы убедиться что приложение успешно запущенно.

systemctl daemon-reload
systemctl start prometheus
systemctl status prometheus

Шаг 8. Настройка фаерволла

В фаерволле откроем порт для доступа к Prometheus в нашем случае это 9090.

firewall-cmd --add-port=9090/tcp --permanent
firewall-cmd --reload

Откройте Prometheus Server IP/имя хоста и порт 9090

Теперь у вас установлен Prometheus Server в системе CentOS 8/RHEL 8 Linux. 

Постоянный редактор и автор сайта

Leave a reply:

Your email address will not be published.