Prometheus это ?
Prometheus - это проект с открытым кодом, отвечающий за мониторинг и оповещение. Проект был выпущен в 2015 году.
У Прометея есть ряд особенностей:
- Поддерживает гибкие языки запросов;
- Имеет несколько режимов отображения и админ панели;
- Данные хранятся и передаются по протоколу HTTP.
Установка 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