Prometheus: базовая авторизация
Mar 7, 2016 21:44 · 211 words · 1 minute read
По заверениям разработчиков системы мониторинга Prometheus, они специально не уделяли внимания поддержке авторизации, сконцентрировавшись на более важных и «революционных» вещах.
В итоге, метрики, которые собирает, например, node_exporter
, доступны для просмотра любому желающему по адресу http://[IP-адрес сервера]:9100/metrics. Как добавить базовую авторизацию в Prometheus — давайте разберемся!
Считаем, что у нас установлены все необходимые компоненты системы мониторинга Prometheus, а также веб-сервер Nginx.
В конфигурационном файле /etc/nginx/nginx.conf
добавим описание нашего сервера:
...
server {
listen 0.0.0.0:19100;
location / {
proxy_pass http://localhost:9100/;
auth_basic "Prometheus";
auth_basic_user_file ".htpasswd";
}
}
...
Примечание. Это лишь базовый пример настройки, если у вас на сервере расположено несколько веб-сайтов то конфиг будет выглядеть иначе.
С помощью утилиты htpasswd
, которая входит в состав пакета apache2-utils
, создадим нового пользователя, учетные данные которого будут использоваться для доступа к метрикам node_exporter
. Назовем его «testuser»:
htpasswd -c .htpasswd testuser
New password:
Re-type new password:
Adding password for user testuser
Файл .htpasswd
состоит из строк, каждая из которых соответствует паре логин/хеш пароля. Логин отделяется от хеша пароля двоеточием. Пример содержимого файла .htpasswd
:
testuser:eCc5ls0kn3MEXyserbY
Перечитаем конфиг веб-сервера Nginx командой:
nginx -s reload
Теперь при переходе по адресу http://[IP-адрес сервера]:19100 необходимо будет ввести логин/пароль созданного с помощью утилиты htpasswd
пользователя.
Аналогичным образом можно настроить базовую авторизацию и для остальных компонентов системы мониторинга Prometheus, например Alertmanager
, Pushgateway
и т. д.