Prometheus: базовая авторизация

Mar 7, 2016 21:44 · 211 words · 1 minute read prometheus monitoring

По заверениям разработчиков системы мониторинга 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 и т. д.

tweet Share