17.09.2022

Установка Prometheus на Ubuntu 20.04

Prometheus это ?

Prometheus - это проект с открытым кодом, отвечающий за мониторинг и оповещение. Проект был выпущен в 2015 году.

У Прометея есть ряд особенностей:

Установка Prometheus

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

sudo apt update
sudo apt upgrade


Установка веб-сервера Nginx

Nginx у нас доступен в открытых ресурсах Ubuntu. Установка начинается со следующих команд:

apt install nginx

Если у вас выскакивает данная ошибка:

Следует прописать данные команды:

rm /etc/nginx/sites-enabled/default

service nginx restart

и продолжайте идти по пунктам.

После всех манипуляций, прописываем последние команды из этого пункта, чтобы у нас веб-сервер(nginx) автоматически запускался когда мы включаем сервер.

systemctl stop/start/enable nginx.service

Создание пользователя в Prometheus

Сначала мы начнем с создания группы, после уже создадим пользователя и сразу добавляем его в группу. Так же требуется создать каталог.
Создаем сначала группу для пользователя:

groupadd prometheus

Далее создаем самого пользователя:

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

Создаем каталог:

mkdir /var/lib/prometheus

for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done

 

Теперь устанавливаем сам Prometheus на Ubuntu

Перед дальнейшей настройки рекомендую проверить, установлен ли у вас CURL, если не установлен то прописываем следующую команду и идем дальше:

apt install curl

Загружаем последнюю версию 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

Но перед этим зайдите в директорию, в которую мы ранее скопировали все.

cd /tmp/prometheus/prometheus-2.38.0.linux-amd64

После переносим файлы Prometheus и Promtool из папки Prometheus в каталог "/usr/local/bin".

mv prometheus promtool /usr/local/bin/

Настройка Prometheus

В первую очередь нужно создать файл конфигурации под именем «Prometheus.yml» в этом каталоге "/etc/prometheus".

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

Просматриваем содержимое prometheus.yml и если там есть данные то идем дальше.

Создание службы Prometheus Systemd

Для легкости создадим файлы для службы systemd:

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
chown -R prometheus:prometheus /var/lib/prometheus/

Как только вы все прописали и проверили, перезагружаем systemd:

systemctl daemon-reload
systemctl start/enable prometheus

Настройка брандмауэра

Теперь нам предстоит убедиться, что брандмауэр настроен верно и разрешает трафик по портам HTTPS(443), HTTP(80) и 9090.

Веб-сервер Nginx представляет себя как сервис ufw:

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

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

По стандарту Prometheus у нас доступен на HTTP-порту 9090. Чтобы проверить это, открываем наш браузер, и в адресной строки прописываем либо ip-адрес хоста на который мы ставили Prometheus или домен. И если все настроили верно, то у вас откроется вкладка дашбоарда Prometheus.
http://your-domain.com:9090 (пример http://domen1:9090)
http://server-ip-addreess:9090 (пример http://38.123.34.54:9090)

Вывод:

Благодаря данной публикации, вы с легкостью установите систему мониторинга Prometheus на сервер с операционной системой Ubuntu 20.04