feat: enhance Ansible playbook and Nginx configuration with authentication and logrotate setup
- 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.
This commit is contained in:
127
MONITORING_AUTH.md
Normal file
127
MONITORING_AUTH.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# 🔐 Авторизация для мониторинга
|
||||
|
||||
## Что было добавлено
|
||||
|
||||
Добавлена HTTP Basic Authentication для следующих сервисов мониторинга:
|
||||
|
||||
- **Prometheus** (`/prometheus/`) - метрики и мониторинг
|
||||
- **Alertmanager** (`/alerts/` и `/api/v1/`) - управление алертами
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
### 1. Автоматическая настройка через Ansible
|
||||
|
||||
```bash
|
||||
# Развертывание с паролями по умолчанию
|
||||
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. Ручная настройка
|
||||
|
||||
```bash
|
||||
# Настроить авторизацию
|
||||
make auth-setup
|
||||
|
||||
# Добавить пользователя
|
||||
make auth-add-user USER=admin
|
||||
|
||||
# Добавить еще одного пользователя
|
||||
make auth-add-user USER=operator
|
||||
```
|
||||
|
||||
## Управление пользователями
|
||||
|
||||
### Добавление пользователя
|
||||
```bash
|
||||
make auth-add-user USER=username
|
||||
```
|
||||
|
||||
### Сброс пароля
|
||||
```bash
|
||||
make auth-reset USER=username
|
||||
```
|
||||
|
||||
### Просмотр пользователей
|
||||
```bash
|
||||
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` - проверка состояния Prometheus
|
||||
- `https://your-server/nginx-health` - проверка состояния nginx
|
||||
|
||||
## Файлы конфигурации
|
||||
|
||||
### Nginx конфигурации
|
||||
- `infra/nginx/conf.d/prometheus.conf` - авторизация для Prometheus
|
||||
- `infra/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
|
||||
```bash
|
||||
sudo nginx -t
|
||||
```
|
||||
|
||||
### Проверка файла паролей
|
||||
```bash
|
||||
make auth-list
|
||||
```
|
||||
|
||||
### Проверка логов
|
||||
```bash
|
||||
sudo tail -f /var/log/nginx/error.log
|
||||
sudo tail -f /var/log/nginx/access.log
|
||||
```
|
||||
|
||||
### Перезапуск nginx
|
||||
```bash
|
||||
sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
## Переменные Ansible
|
||||
|
||||
В файле `infra/ansible/group_vars/all.yml`:
|
||||
|
||||
```yaml
|
||||
monitoring_username: "admin" # Имя пользователя по умолчанию
|
||||
monitoring_password: "admin123" # Пароль по умолчанию
|
||||
```
|
||||
|
||||
Можно переопределить через:
|
||||
- Переменные окружения
|
||||
- `--extra-vars` в ansible-playbook
|
||||
- Vault файлы для безопасного хранения паролей
|
||||
Reference in New Issue
Block a user