181 lines
4.0 KiB
Markdown
181 lines
4.0 KiB
Markdown
# Loki Ingress - Шпаргалка
|
||
|
||
## Быстрый старт
|
||
|
||
```bash
|
||
# 1. Клонируй репозиторий
|
||
git clone http://gitea-http.gitea.svc.cluster.local:3000/admin/k3s-gitops.git
|
||
cd k3s-gitops
|
||
|
||
# 2. Скопируй файлы в apps/loki/
|
||
cp secret-basic-auth.yaml apps/loki/
|
||
cp middleware-auth.yaml apps/loki/
|
||
cp ingress-loki.yaml apps/loki/
|
||
|
||
# 3. Commit и Push
|
||
git add apps/loki/*.yaml
|
||
git commit -m "feat(loki): Add Ingress with HTTPS and Basic Auth"
|
||
git push origin main
|
||
|
||
# 4. Синхронизация ArgoCD (или жди 3 минуты)
|
||
argocd app sync loki
|
||
```
|
||
|
||
## Проверка статуса
|
||
|
||
```bash
|
||
# Ingress
|
||
kubectl get ingress loki -n loki -o wide
|
||
|
||
# Certificate
|
||
kubectl get certificate loki-tls -n loki
|
||
|
||
# Все ресурсы
|
||
kubectl get all,ingress,secret,middleware,certificate -n loki
|
||
```
|
||
|
||
## Тестирование
|
||
|
||
```bash
|
||
# Health check
|
||
curl -u admin:lokipass123 https://loki.thedevops.dev/ready
|
||
|
||
# Metrics
|
||
curl -u admin:lokipass123 https://loki.thedevops.dev/metrics
|
||
|
||
# Labels
|
||
curl -u admin:lokipass123 https://loki.thedevops.dev/loki/api/v1/labels
|
||
```
|
||
|
||
## Credentials по умолчанию
|
||
|
||
- **URL:** https://loki.thedevops.dev
|
||
- **Username:** admin
|
||
- **Password:** lokipass123
|
||
|
||
## Изменить пароль
|
||
|
||
```bash
|
||
# Генерация нового пароля
|
||
htpasswd -nb admin your-new-password
|
||
|
||
# Обновить secret-basic-auth.yaml
|
||
# Замени строку в stringData.users
|
||
```
|
||
|
||
## DNS настройка
|
||
|
||
```
|
||
Type: A
|
||
Name: loki.thedevops.dev
|
||
Value: 5.182.17.194
|
||
TTL: 300
|
||
```
|
||
|
||
## Troubleshooting
|
||
|
||
### Ingress нет IP
|
||
```bash
|
||
kubectl get svc -n kube-system traefik
|
||
kubectl logs -n kube-system deployment/traefik --tail=50
|
||
```
|
||
|
||
### Сертификат не создается
|
||
```bash
|
||
kubectl describe certificate loki-tls -n loki
|
||
kubectl logs -n cert-manager deployment/cert-manager --tail=50
|
||
kubectl get challenge -n loki
|
||
```
|
||
|
||
### 401 Unauthorized
|
||
```bash
|
||
kubectl get secret loki-basic-auth -n loki
|
||
kubectl get middleware loki-auth -n loki -o yaml
|
||
```
|
||
|
||
### ArgoCD не синхронизирует
|
||
```bash
|
||
argocd app get loki
|
||
argocd app sync loki --force
|
||
kubectl logs -n argocd deployment/argocd-application-controller --tail=50
|
||
```
|
||
|
||
## Полезные команды
|
||
|
||
```bash
|
||
# Логи Loki
|
||
kubectl logs -n loki loki-0 -f
|
||
|
||
# Логи cert-manager
|
||
kubectl logs -n cert-manager deployment/cert-manager -f
|
||
|
||
# События
|
||
kubectl get events -n loki --sort-by='.lastTimestamp'
|
||
|
||
# ArgoCD sync
|
||
argocd app sync loki
|
||
argocd app get loki
|
||
argocd app diff loki
|
||
|
||
# Принудительная пересинхронизация
|
||
argocd app sync loki --prune --force
|
||
```
|
||
|
||
## Grafana интеграция
|
||
|
||
1. Скопируй `grafana-datasource-loki.yaml` в `apps/monitoring/`
|
||
2. Commit & Push
|
||
3. Sync ArgoCD приложение monitoring
|
||
4. Перезапусти Grafana (если нужно):
|
||
```bash
|
||
kubectl rollout restart deployment k8s-monitoring-grafana -n monitoring
|
||
```
|
||
|
||
## Endpoints
|
||
|
||
- `/ready` - health check
|
||
- `/metrics` - Prometheus metrics
|
||
- `/loki/api/v1/query` - LogQL queries
|
||
- `/loki/api/v1/labels` - available labels
|
||
- `/loki/api/v1/label/<name>/values` - label values
|
||
|
||
## LogQL примеры в Grafana
|
||
|
||
```logql
|
||
# Все логи из loki namespace
|
||
{namespace="loki"}
|
||
|
||
# Логи с ошибками
|
||
{namespace="loki"} |= "error"
|
||
|
||
# Rate за 5 минут
|
||
rate({namespace="loki"}[5m])
|
||
|
||
# Логи конкретного pod
|
||
{namespace="loki", pod="loki-0"}
|
||
```
|
||
|
||
## Безопасность
|
||
|
||
1. ✅ HTTPS включен (Let's Encrypt)
|
||
2. ✅ Basic Auth включен
|
||
3. 🔲 TODO: Изменить пароль по умолчанию
|
||
4. 🔲 TODO: Добавить Network Policy
|
||
5. 🔲 TODO: Настроить Rate Limiting
|
||
|
||
## Структура файлов
|
||
|
||
```
|
||
apps/loki/
|
||
├── secret-basic-auth.yaml ← Новый
|
||
├── middleware-auth.yaml ← Новый
|
||
├── ingress-loki.yaml ← Новый
|
||
├── namespace.yaml
|
||
├── configmap-loki.yaml
|
||
├── configmap-promtail.yaml
|
||
├── service.yaml
|
||
├── statefulset.yaml
|
||
├── daemonset-promtail.yaml
|
||
└── ...
|
||
```
|