Хеширование пароля и создание web.config.file
# Установка htpasswd:
sudo apt install -y apache2-utils
PASSWORD='<password>'
PASSWORDHASHED="$(echo ${PASSWORD} | htpasswd -inBC 10 '' | tr -d ':\n')"
echo "basic_auth_users:\n admin: '$PASSWORDHASHED'" \
| sudo tee /etc/prometheus/web.yml
# basic_auth_users:
# admin: '$2y$10$VBQTOJXBEAIK086F/82Ob.TVrdExsDXRE2R5.gh3ZW.qoyFsTRQka'
# Проверяем файл 👇
promtool check web-config /etc/prometheus/web.ymlЧтобы не было такой ошибки:

Нужно добавить basic_auth в конфиг prometheus:
scrape_configs:
- job_name: "prometheus"
scrape_interval: 5s
scrape_timeout: 5s
static_configs:
- targets: ["localhost:9090"]
basic_auth:
username: "<your_username>"
password: "<your_password>"Изменение команды запуска Prometheus
Измени значение ExecStart в systemd-юните prometheus:
ExecStart=/usr/local/bin/prometheus $ARGS\
--config.file=/etc/prometheus/prometheus.yml \
--web.config.file=/etc/prometheus/web.ymlПерезапускай сервер:
sudo systemctl daemon-reload
sudo systemctl restart prometheus
systemctl status prometheusТест
Обычный curl http://localhost:9090 не пустит и выдаст Unauthorized, поэтому нужно юзать ключ -u:
curl -u '<user>' http://localhost:9090 # <интерактивный ввод пароля>
# Либо сразу с паролем (небезопасно):
curl -u '<user>:<password>' http://localhost:9090Sauce: Защита сервера Prometheus с помощью basic аутентификации
Prometheus