Upload files to "loki-ingress-argocd-setup"
This commit is contained in:
712
loki-ingress-argocd-setup/ARGOCD_LOKI_INGRESS_SETUP.md
Normal file
712
loki-ingress-argocd-setup/ARGOCD_LOKI_INGRESS_SETUP.md
Normal file
@@ -0,0 +1,712 @@
|
||||
# ArgoCD GitOps Setup для Loki Ingress
|
||||
|
||||
## Текущая конфигурация
|
||||
|
||||
- **ArgoCD Application:** `loki`
|
||||
- **Git Repository:** `http://gitea-http.gitea.svc.cluster.local:3000/admin/k3s-gitops`
|
||||
- **Path:** `apps/loki`
|
||||
- **Auto-sync:** Включен (prune: true, selfHeal: true)
|
||||
- **Target Namespace:** `loki`
|
||||
|
||||
---
|
||||
|
||||
## Шаг 1: Подключись к Git репозиторию
|
||||
|
||||
### Вариант A: Через SSH (рекомендуется)
|
||||
|
||||
```bash
|
||||
# Клонируй репозиторий
|
||||
git clone git@gitea-http.gitea.svc.cluster.local:admin/k3s-gitops.git
|
||||
cd k3s-gitops
|
||||
|
||||
# Или если используешь внешний доступ
|
||||
git clone git@gitea.thedevops.dev:admin/k3s-gitops.git
|
||||
cd k3s-gitops
|
||||
```
|
||||
|
||||
### Вариант B: Через HTTP
|
||||
|
||||
```bash
|
||||
git clone http://gitea-http.gitea.svc.cluster.local:3000/admin/k3s-gitops.git
|
||||
cd k3s-gitops
|
||||
|
||||
# Введи credentials для Gitea
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 2: Проверь структуру директорий
|
||||
|
||||
```bash
|
||||
# Перейди в директорию приложения Loki
|
||||
cd apps/loki
|
||||
|
||||
# Посмотри текущую структуру
|
||||
tree .
|
||||
|
||||
# Должна быть примерно такая структура:
|
||||
# apps/loki/
|
||||
# ├── namespace.yaml
|
||||
# ├── configmap-loki.yaml
|
||||
# ├── configmap-promtail.yaml
|
||||
# ├── statefulset.yaml
|
||||
# ├── daemonset-promtail.yaml
|
||||
# ├── service.yaml
|
||||
# ├── ingress-promtail.yaml (уже существует)
|
||||
# ├── rbac.yaml
|
||||
# └── servicemonitor.yaml
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 3: Создай файлы для Loki Ingress
|
||||
|
||||
### 3.1 Secret для Basic Auth
|
||||
|
||||
Создай файл: `apps/loki/secret-basic-auth.yaml`
|
||||
|
||||
```yaml
|
||||
---
|
||||
# Basic Auth Secret для защиты Loki
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: loki-basic-auth
|
||||
namespace: loki
|
||||
labels:
|
||||
app.kubernetes.io/name: loki
|
||||
argocd.argoproj.io/instance: loki
|
||||
type: Opaque
|
||||
stringData:
|
||||
# Username: admin
|
||||
# Password: lokipass123
|
||||
# Сгенерировано с помощью: htpasswd -nb admin lokipass123
|
||||
users: |
|
||||
admin:$apr1$8jGXMp0X$xR7yGcZqz.pPJY4IaGQ0n0
|
||||
```
|
||||
|
||||
**Как создать свой пароль:**
|
||||
|
||||
```bash
|
||||
# Установи htpasswd (если нужно)
|
||||
sudo apt-get install apache2-utils
|
||||
|
||||
# Создай новый пароль
|
||||
htpasswd -nb admin your-secure-password
|
||||
|
||||
# Результат замени в stringData.users выше
|
||||
```
|
||||
|
||||
### 3.2 Traefik Middleware
|
||||
|
||||
Создай файл: `apps/loki/middleware-auth.yaml`
|
||||
|
||||
```yaml
|
||||
---
|
||||
# Traefik Middleware для Basic Auth
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
name: loki-auth
|
||||
namespace: loki
|
||||
labels:
|
||||
app.kubernetes.io/name: loki
|
||||
argocd.argoproj.io/instance: loki
|
||||
spec:
|
||||
basicAuth:
|
||||
secret: loki-basic-auth
|
||||
removeHeader: true
|
||||
```
|
||||
|
||||
### 3.3 Loki Ingress
|
||||
|
||||
Создай файл: `apps/loki/ingress-loki.yaml`
|
||||
|
||||
```yaml
|
||||
---
|
||||
# Ingress для Loki с HTTPS и аутентификацией
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: loki
|
||||
namespace: loki
|
||||
annotations:
|
||||
# Использовать Traefik ingress controller
|
||||
kubernetes.io/ingress.class: traefik
|
||||
|
||||
# Let's Encrypt сертификат
|
||||
cert-manager.io/cluster-issuer: letsencrypt-http
|
||||
cert-manager.io/acme-challenge-type: http01
|
||||
|
||||
# Применить Basic Auth middleware
|
||||
traefik.ingress.kubernetes.io/router.middlewares: loki-loki-auth@kubernetescrd
|
||||
|
||||
# Entry points (http и https)
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
|
||||
labels:
|
||||
app.kubernetes.io/name: loki
|
||||
argocd.argoproj.io/instance: loki
|
||||
spec:
|
||||
ingressClassName: traefik
|
||||
rules:
|
||||
- host: loki.thedevops.dev
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: loki
|
||||
port:
|
||||
number: 3100
|
||||
tls:
|
||||
- hosts:
|
||||
- loki.thedevops.dev
|
||||
secretName: loki-tls
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 4: Проверь файлы перед коммитом
|
||||
|
||||
```bash
|
||||
# Находясь в директории k3s-gitops/apps/loki/
|
||||
|
||||
# Проверь что файлы созданы
|
||||
ls -la
|
||||
|
||||
# Должны появиться:
|
||||
# - secret-basic-auth.yaml
|
||||
# - middleware-auth.yaml
|
||||
# - ingress-loki.yaml
|
||||
|
||||
# Валидируй YAML синтаксис
|
||||
kubectl apply --dry-run=client -f secret-basic-auth.yaml
|
||||
kubectl apply --dry-run=client -f middleware-auth.yaml
|
||||
kubectl apply --dry-run=client -f ingress-loki.yaml
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 5: Git Commit и Push
|
||||
|
||||
```bash
|
||||
# Из директории k3s-gitops/
|
||||
|
||||
# Добавь файлы в git
|
||||
git add apps/loki/secret-basic-auth.yaml
|
||||
git add apps/loki/middleware-auth.yaml
|
||||
git add apps/loki/ingress-loki.yaml
|
||||
|
||||
# Проверь статус
|
||||
git status
|
||||
|
||||
# Создай коммит
|
||||
git commit -m "feat(loki): Add Ingress with HTTPS and Basic Auth for loki.thedevops.dev"
|
||||
|
||||
# Push в репозиторий
|
||||
git push origin main
|
||||
# (или master - в зависимости от твоей ветки)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 6: ArgoCD Auto-Sync
|
||||
|
||||
Поскольку у тебя включен auto-sync, ArgoCD автоматически:
|
||||
1. Обнаружит изменения в git (в течение 3 минут)
|
||||
2. Применит новые манифесты
|
||||
3. Создаст Secret, Middleware и Ingress
|
||||
|
||||
### Ручная синхронизация (если не хочешь ждать)
|
||||
|
||||
#### Через ArgoCD CLI:
|
||||
|
||||
```bash
|
||||
# Синхронизируй приложение
|
||||
argocd app sync loki
|
||||
|
||||
# Посмотри статус
|
||||
argocd app get loki
|
||||
|
||||
# Посмотри логи синхронизации
|
||||
argocd app logs loki --follow
|
||||
```
|
||||
|
||||
#### Через ArgoCD UI:
|
||||
|
||||
1. Открой: `https://argocd.thedevops.dev` (или твой ArgoCD URL)
|
||||
2. Найди приложение `loki`
|
||||
3. Нажми кнопку **"SYNC"**
|
||||
4. Нажми **"SYNCHRONIZE"**
|
||||
|
||||
#### Через kubectl:
|
||||
|
||||
```bash
|
||||
# Триггер синхронизации через kubectl
|
||||
kubectl patch application loki -n argocd \
|
||||
--type merge \
|
||||
--patch '{"operation": {"initiatedBy": {"username": "manual"}}}'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 7: Проверка развертывания
|
||||
|
||||
### 7.1 Проверь ресурсы в кластере
|
||||
|
||||
```bash
|
||||
# Проверь что все ресурсы созданы
|
||||
kubectl get all,ingress,secret,middleware -n loki
|
||||
|
||||
# Проверь конкретно Ingress
|
||||
kubectl get ingress loki -n loki -o wide
|
||||
|
||||
# Должен показать:
|
||||
# NAME CLASS HOSTS ADDRESS PORTS AGE
|
||||
# loki traefik loki.thedevops.dev 5.182.17.194,62.169.30.194,... 80, 443 1m
|
||||
|
||||
# Проверь Middleware
|
||||
kubectl get middleware -n loki
|
||||
|
||||
# Проверь Secret
|
||||
kubectl get secret loki-basic-auth -n loki
|
||||
```
|
||||
|
||||
### 7.2 Проверь сертификат
|
||||
|
||||
```bash
|
||||
# Посмотри статус сертификата
|
||||
kubectl get certificate -n loki
|
||||
|
||||
# Должен появиться:
|
||||
# NAME READY SECRET AGE
|
||||
# loki-tls True loki-tls 2m
|
||||
|
||||
# Если сертификат не готов, посмотри детали
|
||||
kubectl describe certificate loki-tls -n loki
|
||||
|
||||
# Проверь логи cert-manager
|
||||
kubectl logs -n cert-manager deployment/cert-manager --tail=50
|
||||
```
|
||||
|
||||
### 7.3 Проверь ArgoCD статус
|
||||
|
||||
```bash
|
||||
# Посмотри статус приложения
|
||||
argocd app get loki
|
||||
|
||||
# Должно показать:
|
||||
# Health Status: Healthy
|
||||
# Sync Status: Synced
|
||||
|
||||
# Посмотри ресурсы приложения
|
||||
argocd app resources loki
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 8: Настрой DNS
|
||||
|
||||
### 8.1 Проверь IP адреса Ingress
|
||||
|
||||
```bash
|
||||
kubectl get ingress loki -n loki -o jsonpath='{.status.loadBalancer.ingress[*].ip}'
|
||||
|
||||
# Получишь IP адреса: 5.182.17.194 62.169.30.194 62.169.30.206
|
||||
```
|
||||
|
||||
### 8.2 Добавь DNS запись
|
||||
|
||||
В DNS провайдере (Cloudflare, Route53, и т.д.) создай A-record:
|
||||
|
||||
```
|
||||
Type: A
|
||||
Name: loki.thedevops.dev
|
||||
Value: 5.182.17.194 (или любой из твоих IP)
|
||||
TTL: 300
|
||||
```
|
||||
|
||||
**Или для всех IP (если нужен load balancing):**
|
||||
|
||||
```
|
||||
Type: A, Name: loki.thedevops.dev, Value: 5.182.17.194
|
||||
Type: A, Name: loki.thedevops.dev, Value: 62.169.30.194
|
||||
Type: A, Name: loki.thedevops.dev, Value: 62.169.30.206
|
||||
```
|
||||
|
||||
### 8.3 Проверь DNS резолюцию
|
||||
|
||||
```bash
|
||||
# Проверь что DNS работает
|
||||
nslookup loki.thedevops.dev
|
||||
|
||||
# Или
|
||||
dig loki.thedevops.dev
|
||||
|
||||
# Должен показать твои IP адреса
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 9: Тестирование доступа
|
||||
|
||||
### 9.1 Тестовые запросы
|
||||
|
||||
```bash
|
||||
# Проверка health endpoint (требует Basic Auth)
|
||||
curl -u admin:lokipass123 https://loki.thedevops.dev/ready
|
||||
|
||||
# Должен вернуть: ready
|
||||
|
||||
# Проверка метрик
|
||||
curl -u admin:lokipass123 https://loki.thedevops.dev/metrics
|
||||
|
||||
# Проверка labels
|
||||
curl -u admin:lokipass123 https://loki.thedevops.dev/loki/api/v1/labels
|
||||
|
||||
# Тестовый LogQL запрос
|
||||
curl -u admin:lokipass123 -G -s "https://loki.thedevops.dev/loki/api/v1/query" \
|
||||
--data-urlencode 'query={namespace="loki"}' | jq
|
||||
```
|
||||
|
||||
### 9.2 Проверка через браузер
|
||||
|
||||
1. Открой: `https://loki.thedevops.dev`
|
||||
2. Должен появиться Basic Auth prompt
|
||||
3. Введи:
|
||||
- **Username:** `admin`
|
||||
- **Password:** `lokipass123`
|
||||
4. Должна открыться страница Loki (скорее всего 404 на корневом пути - это нормально)
|
||||
5. Попробуй endpoints:
|
||||
- `https://loki.thedevops.dev/ready`
|
||||
- `https://loki.thedevops.dev/metrics`
|
||||
|
||||
### 9.3 Проверка HTTPS сертификата
|
||||
|
||||
```bash
|
||||
# Проверь SSL сертификат
|
||||
openssl s_client -connect loki.thedevops.dev:443 -servername loki.thedevops.dev
|
||||
|
||||
# Или через curl
|
||||
curl -vI https://loki.thedevops.dev 2>&1 | grep -i "SSL\|certificate"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 10: Интеграция с Grafana
|
||||
|
||||
### 10.1 Добавь Loki DataSource в Grafana
|
||||
|
||||
Создай файл: `apps/monitoring/grafana-datasource-loki.yaml`
|
||||
|
||||
```yaml
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: grafana-datasource-loki
|
||||
namespace: monitoring
|
||||
labels:
|
||||
grafana_datasource: "1"
|
||||
data:
|
||||
loki.yaml: |
|
||||
apiVersion: 1
|
||||
|
||||
datasources:
|
||||
# Внутренний доступ (из Grafana pod в кластере) - РЕКОМЕНДУЕТСЯ
|
||||
- name: Loki
|
||||
type: loki
|
||||
access: proxy
|
||||
url: http://loki.loki.svc.cluster.local:3100
|
||||
isDefault: false
|
||||
editable: true
|
||||
jsonData:
|
||||
maxLines: 5000
|
||||
timeout: 60
|
||||
derivedFields:
|
||||
- datasourceUid: prometheus
|
||||
matcherRegex: "traceID=(\\w+)"
|
||||
name: TraceID
|
||||
url: '$${__value.raw}'
|
||||
|
||||
# Внешний доступ (через домен, требует Basic Auth)
|
||||
- name: Loki External
|
||||
type: loki
|
||||
access: proxy
|
||||
url: https://loki.thedevops.dev
|
||||
isDefault: false
|
||||
editable: true
|
||||
basicAuth: true
|
||||
basicAuthUser: admin
|
||||
secureJsonData:
|
||||
basicAuthPassword: lokipass123
|
||||
jsonData:
|
||||
maxLines: 5000
|
||||
timeout: 60
|
||||
tlsSkipVerify: false
|
||||
```
|
||||
|
||||
### 10.2 Примени конфигурацию
|
||||
|
||||
```bash
|
||||
cd k3s-gitops/
|
||||
|
||||
# Добавь файл
|
||||
git add apps/monitoring/grafana-datasource-loki.yaml
|
||||
|
||||
# Commit & Push
|
||||
git commit -m "feat(grafana): Add Loki datasource configuration"
|
||||
git push origin main
|
||||
|
||||
# Если у Grafana отдельное ArgoCD приложение, синхронизируй его
|
||||
argocd app sync k8s-monitoring
|
||||
# (или как называется твое Grafana приложение)
|
||||
```
|
||||
|
||||
### 10.3 Перезапусти Grafana (опционально)
|
||||
|
||||
```bash
|
||||
# Если datasource не появился автоматически
|
||||
kubectl rollout restart deployment k8s-monitoring-grafana -n monitoring
|
||||
```
|
||||
|
||||
### 10.4 Проверь в Grafana UI
|
||||
|
||||
1. Открой Grafana: `https://grafana.thedevops.dev`
|
||||
2. Перейди в: **Configuration → Data Sources**
|
||||
3. Должны появиться:
|
||||
- `Loki` (внутренний)
|
||||
- `Loki External` (внешний)
|
||||
4. Нажми **Test** на каждом
|
||||
5. Должно показать: **"Data source is working"**
|
||||
|
||||
---
|
||||
|
||||
## Шаг 11: Тестирование логов в Grafana
|
||||
|
||||
### 11.1 Через Explore
|
||||
|
||||
1. В Grafana перейди: **Explore** (иконка компаса)
|
||||
2. Выбери Data Source: **Loki**
|
||||
3. Попробуй запросы:
|
||||
|
||||
```logql
|
||||
# Все логи из namespace loki
|
||||
{namespace="loki"}
|
||||
|
||||
# Логи Loki pod'ов
|
||||
{namespace="loki", app="loki"}
|
||||
|
||||
# Ошибки из всех namespaces
|
||||
{} |= "error"
|
||||
|
||||
# Rate запросов за последние 5 минут
|
||||
rate({namespace="loki"}[5m])
|
||||
```
|
||||
|
||||
### 11.2 Создай Dashboard
|
||||
|
||||
1. **Dashboards → Import**
|
||||
2. Вставь ID: **13639** (Loki Dashboard)
|
||||
3. Выбери Loki datasource
|
||||
4. **Import**
|
||||
|
||||
---
|
||||
|
||||
## Шаг 12: Мониторинг и алерты
|
||||
|
||||
### 12.1 Проверь ServiceMonitor
|
||||
|
||||
```bash
|
||||
# ServiceMonitor уже должен существовать
|
||||
kubectl get servicemonitor loki -n loki -o yaml
|
||||
```
|
||||
|
||||
### 12.2 Prometheus метрики
|
||||
|
||||
```bash
|
||||
# Проверь что Prometheus собирает метрики Loki
|
||||
kubectl port-forward -n monitoring svc/k8s-monitoring-kube-promet-prometheus 9090:9090
|
||||
|
||||
# В браузере открой: http://localhost:9090
|
||||
# Попробуй запрос: loki_ingester_memory_chunks
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Проблема: Ingress не получает IP
|
||||
|
||||
```bash
|
||||
# Проверь Traefik
|
||||
kubectl get svc -n kube-system traefik
|
||||
|
||||
# Проверь логи Traefik
|
||||
kubectl logs -n kube-system deployment/traefik --tail=50
|
||||
```
|
||||
|
||||
### Проблема: 401 Unauthorized
|
||||
|
||||
```bash
|
||||
# Проверь что Secret создан
|
||||
kubectl get secret loki-basic-auth -n loki
|
||||
|
||||
# Проверь содержимое
|
||||
kubectl get secret loki-basic-auth -n loki -o jsonpath='{.data.users}' | base64 -d
|
||||
|
||||
# Проверь что Middleware применен
|
||||
kubectl get middleware loki-auth -n loki -o yaml
|
||||
```
|
||||
|
||||
### Проблема: Сертификат не создается
|
||||
|
||||
```bash
|
||||
# Проверь CertificateRequest
|
||||
kubectl get certificaterequest -n loki
|
||||
|
||||
# Проверь Challenge
|
||||
kubectl get challenge -n loki
|
||||
|
||||
# Проверь Order
|
||||
kubectl get order -n loki
|
||||
|
||||
# Логи cert-manager
|
||||
kubectl logs -n cert-manager deployment/cert-manager -f
|
||||
|
||||
# Проверь что домен резолвится
|
||||
nslookup loki.thedevops.dev
|
||||
```
|
||||
|
||||
### Проблема: ArgoCD не синхронизирует
|
||||
|
||||
```bash
|
||||
# Проверь статус приложения
|
||||
argocd app get loki
|
||||
|
||||
# Проверь логи ArgoCD
|
||||
kubectl logs -n argocd deployment/argocd-application-controller -f
|
||||
|
||||
# Вручную триггер sync
|
||||
argocd app sync loki --force
|
||||
```
|
||||
|
||||
### Проблема: Loki недоступен из Grafana
|
||||
|
||||
```bash
|
||||
# Проверь что Service работает
|
||||
kubectl get svc loki -n loki
|
||||
|
||||
# Проверь endpoints
|
||||
kubectl get endpoints loki -n loki
|
||||
|
||||
# Тест внутри кластера
|
||||
kubectl run -it --rm debug --image=curlimages/curl --restart=Never -- \
|
||||
curl -s http://loki.loki.svc.cluster.local:3100/ready
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Полезные команды
|
||||
|
||||
```bash
|
||||
# Просмотр всех ресурсов Loki
|
||||
kubectl get all,ingress,secret,middleware,certificate -n loki
|
||||
|
||||
# Логи Loki pod
|
||||
kubectl logs -n loki loki-0 -f
|
||||
|
||||
# Логи Promtail
|
||||
kubectl logs -n loki daemonset/promtail -f
|
||||
|
||||
# ArgoCD приложение
|
||||
argocd app get loki
|
||||
argocd app sync loki
|
||||
argocd app diff loki
|
||||
|
||||
# Удалить и пересоздать Ingress (если нужно)
|
||||
kubectl delete ingress loki -n loki
|
||||
argocd app sync loki
|
||||
|
||||
# Принудительный sync всего приложения
|
||||
argocd app sync loki --prune --force
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Итоговая структура Git репозитория
|
||||
|
||||
```
|
||||
k3s-gitops/
|
||||
└── apps/
|
||||
└── loki/
|
||||
├── namespace.yaml
|
||||
├── configmap-loki.yaml
|
||||
├── configmap-promtail.yaml
|
||||
├── secret-basic-auth.yaml # НОВЫЙ
|
||||
├── middleware-auth.yaml # НОВЫЙ
|
||||
├── ingress-loki.yaml # НОВЫЙ
|
||||
├── ingress-promtail.yaml # СУЩЕСТВУЮЩИЙ
|
||||
├── service.yaml
|
||||
├── statefulset.yaml
|
||||
├── daemonset-promtail.yaml
|
||||
├── rbac.yaml
|
||||
└── servicemonitor.yaml
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Безопасность и Best Practices
|
||||
|
||||
1. **Пароли:**
|
||||
- Используй strong passwords
|
||||
- Рассмотри интеграцию с Vault для хранения паролей
|
||||
- Регулярно меняй пароли
|
||||
|
||||
2. **HTTPS:**
|
||||
- Всегда используй HTTPS для production
|
||||
- Let's Encrypt сертификаты автоматически обновляются
|
||||
|
||||
3. **Rate Limiting:**
|
||||
- Добавь Traefik middleware для rate limiting если нужно
|
||||
|
||||
4. **Network Policies:**
|
||||
- Ограничь доступ к Loki только от Promtail и Grafana
|
||||
|
||||
5. **Backup:**
|
||||
- Настрой backup для PVC (`loki-data`)
|
||||
- Используй Longhorn snapshots
|
||||
|
||||
---
|
||||
|
||||
## Следующие шаги
|
||||
|
||||
1. ✅ Добавить Ingress для Loki
|
||||
2. ✅ Настроить HTTPS с Let's Encrypt
|
||||
3. ✅ Добавить Basic Authentication
|
||||
4. ✅ Интегрировать с Grafana
|
||||
5. 🔲 Настроить alerting rules в Loki
|
||||
6. 🔲 Добавить Grafana dashboards
|
||||
7. 🔲 Настроить retention policies
|
||||
8. 🔲 Интегрировать с Tempo (distributed tracing)
|
||||
9. 🔲 Добавить Network Policies
|
||||
10. 🔲 Настроить backup для Loki data
|
||||
|
||||
---
|
||||
|
||||
## Ресурсы
|
||||
|
||||
- [Loki Documentation](https://grafana.com/docs/loki/latest/)
|
||||
- [Traefik Middleware](https://doc.traefik.io/traefik/middlewares/overview/)
|
||||
- [ArgoCD Documentation](https://argo-cd.readthedocs.io/)
|
||||
- [Cert-Manager Documentation](https://cert-manager.io/docs/)
|
||||
|
||||
---
|
||||
|
||||
## Поддержка
|
||||
|
||||
Если возникли проблемы:
|
||||
1. Проверь логи компонентов
|
||||
2. Проверь ArgoCD sync status
|
||||
3. Проверь Kubernetes events: `kubectl get events -n loki --sort-by='.lastTimestamp'`
|
||||
Reference in New Issue
Block a user