Thank you for reading this post, don't forget to subscribe!
По заверениям разработчиков системы мониторинга Prometheus, они специально не уделяли внимания поддержке авторизации, сконцентрировавшись на более важных и «революционных» вещах.
В итоге, метрики, которые собирает, например, node_exporter
, доступны для просмотра любому желающему по адресу http://[IP-адрес сервера]:9100/metrics. Как добавить базовую авторизацию в Prometheus — давайте разберемся!
Считаем, что у нас установлены все необходимые компоненты системы мониторинга Prometheus, а также веб-сервер Nginx.
В конфигурационном файле /etc/nginx/nginx.conf
добавим описание нашего сервера:
[codesyntax lang="php"]
1 2 3 4 5 6 7 8 9 10 11 |
... server { listen 0.0.0.0:19100; location / { proxy_pass http://localhost:9100/; auth_basic "Prometheus"; auth_basic_user_file ".htpasswd"; } } ... |
[/codesyntax]
Примечание. Это лишь базовый пример настройки, если у вас на сервере расположено несколько веб-сайтов то конфиг будет выглядеть иначе.
С помощью утилиты htpasswd
, которая входит в состав пакета httpd-tools, создадим нового пользователя, учетные данные которого будут использоваться для доступа к метрикам 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
и т. д.