- Added environment variables for project configuration in env.template. - Updated Ansible playbook to use environment variables for project settings and added tasks for monitoring authentication setup. - Enhanced Nginx configuration for Alertmanager and Prometheus with HTTP Basic Authentication. - Introduced logrotate configuration for managing log files and set up cron for daily execution. - Removed obsolete Uptime Kuma docker-compose file.
3.9 KiB
3.9 KiB
🔐 Авторизация для мониторинга
Что было добавлено
Добавлена HTTP Basic Authentication для следующих сервисов мониторинга:
- Prometheus (
/prometheus/) - метрики и мониторинг - Alertmanager (
/alerts/и/api/v1/) - управление алертами
Быстрый старт
1. Автоматическая настройка через Ansible
# Развертывание с паролями по умолчанию
ansible-playbook -i infra/ansible/inventory.ini infra/ansible/playbook.yml
# Развертывание с кастомными паролями
ansible-playbook -i infra/ansible/inventory.ini infra/ansible/playbook.yml \
-e monitoring_username=myuser \
-e monitoring_password=mypassword
2. Ручная настройка
# Настроить авторизацию
make auth-setup
# Добавить пользователя
make auth-add-user USER=admin
# Добавить еще одного пользователя
make auth-add-user USER=operator
Управление пользователями
Добавление пользователя
make auth-add-user USER=username
Сброс пароля
make auth-reset USER=username
Просмотр пользователей
make auth-list
Доступ к сервисам
После настройки авторизации:
- Prometheus:
https://your-server/prometheus/ - Alertmanager:
https://your-server/alerts/ - Alertmanager API:
https://your-server/api/v1/
При первом обращении браузер запросит логин и пароль.
Health Check endpoints
Следующие endpoints остаются доступными без авторизации:
https://your-server/prometheus/-/healthy- проверка состояния Prometheushttps://your-server/nginx-health- проверка состояния nginx
Файлы конфигурации
Nginx конфигурации
infra/nginx/conf.d/prometheus.conf- авторизация для Prometheusinfra/nginx/conf.d/alertmanager.conf- авторизация для Alertmanager
Ansible
infra/ansible/playbook.yml- автоматическая настройка авторизацииinfra/ansible/group_vars/all.yml- переменные по умолчанию
Скрипты
scripts/generate_auth_passwords.sh- генерация паролейinfra/nginx/AUTH_SETUP.md- подробная документация
Безопасность
- Пароли хранятся в зашифрованном виде в
/etc/nginx/passwords/monitoring.htpasswd - Файл доступен только для чтения пользователю root и группе www-data
- Используется HTTPS для всех соединений
- Настроена защита от брутфорса через fail2ban
Устранение проблем
Проверка конфигурации nginx
sudo nginx -t
Проверка файла паролей
make auth-list
Проверка логов
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/access.log
Перезапуск nginx
sudo systemctl reload nginx
Переменные Ansible
В файле infra/ansible/group_vars/all.yml:
monitoring_username: "admin" # Имя пользователя по умолчанию
monitoring_password: "admin123" # Пароль по умолчанию
Можно переопределить через:
- Переменные окружения
--extra-varsв ansible-playbook- Vault файлы для безопасного хранения паролей