- 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.4 KiB
3.4 KiB
Настройка авторизации для мониторинга
Обзор
Добавлена HTTP Basic Authentication для следующих сервисов:
- Prometheus (
/prometheus/) - метрики и мониторинг - Alertmanager (
/alerts/и/api/v1/) - управление алертами
Управление паролями
Автоматическая настройка через Ansible
При развертывании через Ansible пароли настраиваются автоматически:
# Использовать пароли по умолчанию
ansible-playbook -i inventory.ini playbook.yml
# Задать свои пароли
ansible-playbook -i inventory.ini playbook.yml \
-e monitoring_username=myuser \
-e monitoring_password=mypassword
Ручная настройка
- Создать файл паролей:
sudo mkdir -p /etc/nginx/passwords
sudo htpasswd -c /etc/nginx/passwords/monitoring.htpasswd admin
- Добавить дополнительных пользователей:
sudo htpasswd /etc/nginx/passwords/monitoring.htpasswd username
- Установить правильные права:
sudo chown root:www-data /etc/nginx/passwords/monitoring.htpasswd
sudo chmod 640 /etc/nginx/passwords/monitoring.htpasswd
- Перезапустить nginx:
sudo systemctl reload nginx
Использование скрипта генерации
# Сгенерировать пароль для пользователя admin
sudo /usr/local/bin/generate_auth_passwords.sh admin
# Сгенерировать пароль для другого пользователя
sudo /usr/local/bin/generate_auth_passwords.sh myuser
Доступ к сервисам
После настройки авторизации доступ к сервисам:
- 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
Безопасность
- Пароли хранятся в зашифрованном виде в файле
/etc/nginx/passwords/monitoring.htpasswd - Файл доступен только для чтения пользователю root и группе www-data
- Используется HTTPS для всех соединений
- Настроена защита от брутфорса через fail2ban
Устранение проблем
Проверка конфигурации nginx
sudo nginx -t
Проверка файла паролей
sudo cat /etc/nginx/passwords/monitoring.htpasswd
Проверка логов nginx
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/access.log
Сброс пароля
sudo htpasswd /etc/nginx/passwords/monitoring.htpasswd admin