Prometheus не входит в стандартные репозитории Linux, поэтому его придётся скачивать с репозитория разработчиков. К тому же его установка не самая простая, поэтому разберём её подробно.
Алгоритм скачивания, установки и первичной настройки Prometheus такой:
- Скачаем последнею версию Prometheus с официального репозитория разработчиков: wget https://github.com/prometheus/prometheus/releases/download/v2.39.1/prometheus-2.39.1.linux-amd64.tar.gz;
- Разархивируем архив: tar xfv prometheus-2.39.1.linux-amd64.tar.gz;
- Создадим каталоги, по которым будем распределять скаченные файлы: mkdir /etc/prometheus && mkdir /var/lib/prometheus;
- Перейдем в распакованный архив: cd prometheus-2.39.1.linux-amd64;
- Распределим файлы по созданным каталогам:
cp prometheus promtool /usr/local/bin/
cp -r console_libraries consoles prometheus.yml /etc/prometheus - Создадим пользователя, от имени которого будем запускать Prometheus: useradd --no-create-home --shell /bin/false prometheus;
- Назначим пользователя prometheus владельцем каталогов и файлов:
chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
chown prometheus:prometheus /usr/local/bin/{prometheus,promtool} - Добавим в конец конфигурационного файла prometheus.yml заранее созданные ноды:
- job_name: "frontend"
static_configs:
- targets: ["89.223.100.207:9100"]
- job_name: "backend"
static_configs:
- targets: ["89.223.100.51:9100"]
- job_name: "db_server"
static_configs:
- targets: ["45.134.27.185:9100"] - Протестируем работоспособность Prometheus — выполнив команду:
/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
В результате запуска Prometheus — вы увидите большое количество текстовой информации в терминале. Она нас не волнует, просто перейдите с помощью браузера на порт 9090 сервера, где запущен Prometheus — откроется web-порт Prometheus:
Кликнув по вкладке Status Targets, можно увидеть, с каких нод сейчас идёт сбор метрик. В нашем случае Prometheus собирает метрики с 3 серверов и c самого себя:
Хорошо, Prometheus уже работает. Вернёмся в терминал и донастроим Prometheus.
- Закроем выполнение Prometheus сочетанием клавиш CTR + C;
- После ручного запуска Prometheus иногда сбиваются права доступа, поэтому выполним ещё раз команду: chown -R prometheus:prometheus /var/lib/prometheus;
- Теперь автоматизируем запуск Prometheus через systemd. Выполните команду vim /etc/systemd/system/prometheus.service и внесите следующие параметры:
[Unit]
Description=Prometheus Service
After=network.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
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target - Выполним 3 команды systemd для запуска Prometeus в режиме демона:
systemctl enable prometheus
systemctl start prometheus
systemctl status prometheus
В результате выполнения последней команды — вы увидите следующие сообщение:
Это значит, что Prometheus установлен и работает исправно.