Skip to main content

Verification and Monitoring

После развёртки и настройки всех сервисов необходимо проверить работоспособность всей системы и настроить мониторинг.

Verification статуса подов​

Check статус всех подов во всех namespace:

kubectl get pods --all-namespaces

Все поды должны быть в статусе Running. Если есть поды в статусе Pending, Error, или CrashLoopBackOff, проверьте их логи:

kubectl describe pod <pod-name> -n <namespace>
kubectl logs <pod-name> -n <namespace>

Verification по namespace​

Check каждый namespace отдельно:

# Базы данных
kubectl get pods -n db

# Сервисы
kubectl get pods -n service

# Инфраструктура
kubectl get pods -n infrastructure

# Продуктивность
kubectl get pods -n productivity

# Код
kubectl get pods -n code

# Социальные сервисы
kubectl get pods -n social

# Данные
kubectl get pods -n data

# Ingress
kubectl get pods -n ingress

Verification of Services​

Check статус всех сервисов:

kubectl get svc --all-namespaces

Make sure, что все сервисы имеют ClusterIP и правильные порты.

Verification endpoint'ов​

Check, что у сервисов есть активные endpoints:

kubectl get endpoints --all-namespaces

Verification Ingress​

Check все Ingress ресурсы:

kubectl get ingress --all-namespaces

Make sure, что:

  • Все ingress правильно настроены
  • Домены указывают на правильные сервисы
  • TLS сертификаты настроены

Verification конкретного ingress​

kubectl describe ingress <ingress-name> -n <namespace>

Verification подключения через Pangolin​

Verification статуса Wireguard​

На клиенте:

cd /opt/pangolin
docker exec gerbil wg show

На сервере:

ssh user@your-vps-ip "docker exec gerbil wg show"

Verification ping через туннель​

ping 10.99.0.1  # IP сервера в Wireguard сети

Verification доступности of Services через туннель​

Check доступность сервисов через домены:

curl -I https://gitlab.local
curl -I https://youtrack.local
curl -I https://vaultwarden.local
curl -I https://grafana.local

Все сервисы должны отвечать HTTP 200 или редирект на страницу входа.

Verification доступности of Services через домены​

Verification DNS резолюции​

nslookup gitlab.local
dig gitlab.local

Verification через curl​

Check каждый сервис:

# GitLab
curl -I https://gitlab.local

# YouTrack
curl -I https://youtrack.local

# TeamCity
curl -I https://teamcity.local

# Vaultwarden
curl -I https://vaultwarden.local

# Grafana
curl -I https://grafana.local

# Authentik
curl -I https://authentik.local

# Glance
curl -I https://glance.local

Verification SSL сертификатов​

openssl s_client -connect gitlab.local:443 -servername gitlab.local < /dev/null

Make sure, что сертификаты действительны и не истекли.

Использование Glance для централизованного доступа​

Открытие Glance​

Откройте веб-интерфейс Glance:

https://glance.local

Verification ссылок​

Make sure, что все ссылки в Glance ведут на правильные сервисы и работают.

Configuration виджетов​

Добавьте виджеты для мониторинга:

  • Статус сервисов
  • Метрики использования ресурсов
  • Последние события

Мониторинг через Grafana​

Открытие Grafana​

Откройте веб-интерфейс Grafana:

https://grafana.local

Verification подключения к Prometheus​

  1. Configuration → Data Sources
  2. Make sure, что Prometheus подключен
  3. Test connection - должно быть "Data source is working"

Verification дашбордов​

  1. Dashboard → Browse
  2. Make sure, что дашборды отображают данные
  3. Check метрики:
    • CPU использование
    • Память
    • Сеть
    • Диск

Создание кастомных дашбордов​

Создайте дашборды для мониторинга:

  • Статус подов
  • Использование ресурсов кластера
  • Доступность сервисов
  • Метрики приложений

Логирование через Loki​

Verification Loki​

kubectl get pods -n service -l app=loki

Подключение Loki к Grafana​

  1. В Grafana: Configuration → Data Sources
  2. Add data source → Loki
  3. URL: http://loki.service.svc.cluster.local:3100
  4. Test & Save

Просмотр логов​

  1. Explore → Loki
  2. Выберите namespace и pod
  3. Просмотрите логи

Verification баз данных​

PostgreSQL​

# Verification статуса
kubectl get pods -n db -l app=postgres

# Подключение
kubectl exec -it -n db deployment/postgres -- psql -U postgres

# Verification баз данных
kubectl exec -it -n db deployment/postgres -- psql -U postgres -c "\l"

MongoDB​

# Verification статуса
kubectl get pods -n db -l app=mongodb

# Verification replica set
kubectl exec -it -n db deployment/mongodb -- mongosh --eval "rs.status()"

ValKey​

# Verification статуса
kubectl get pods -n db -l app=valkey

# Verification подключения
kubectl exec -it -n db deployment/valkey-master -- valkey-cli ping

Verification Vault​

Статус Vault​

kubectl exec -n service deployment/vault -- vault status

Make sure, что статус: Sealed: false

Verification Secrets​

# Список Secrets
kubectl exec -n service deployment/vault -- vault kv list secret/

# Просмотр секрета
kubectl exec -n service deployment/vault -- vault kv get secret/vaultwarden/secrets

Verification Consul​

Статус Consul​

kubectl get pods -n service -l app=consul

Члены кластера​

kubectl exec -n service deployment/consul -- consul members

UI Consul​

Откройте веб-интерфейс Consul (если включен):

https://consul.local

Мониторинг ресурсов​

Использование ресурсов узлов​

kubectl top nodes

Использование ресурсов подов​

kubectl top pods --all-namespaces

Детальная информация о ресурсах​

kubectl describe node <node-name>

Verification событий​

Check последние события в кластере:

kubectl get events --all-namespaces --sort-by='.lastTimestamp' | tail -50

Обратите внимание на события типа Warning или Error.

Configuration алертов​

Алерты в Grafana​

  1. Alerting → Alert rules
  2. Создайте правила для:
    • Высокое использование CPU/памяти
    • Недоступность сервисов
    • Ошибки в логах
    • Проблемы с дисками

Каналы уведомлений​

Настройте каналы уведомлений:

  • Email
  • Slack
  • Discord
  • PagerDuty

Резервное копирование​

Verification резервных копий​

Make sure, что настроено резервное копирование:

  • Баз данных (PostgreSQL, MongoDB)
  • Persistent volumes
  • Конфигурации (Helm charts, secrets)

Тестирование восстановления​

Периодически проверяйте возможность восстановления из резервных копий.

Чек-лист проверки​

Используйте этот чек-лист для проверки системы:

  • Все поды в статусе Running
  • Все сервисы имеют активные endpoints
  • Все ingress правильно настроены
  • Wireguard туннель работает
  • Все домены резолвятся и доступны
  • SSL сертификаты действительны
  • Glance показывает все сервисы
  • Grafana подключена к Prometheus
  • Loki собирает логи
  • Базы данных работают
  • Vault распечатан и доступен
  • Consul работает
  • Ресурсы используются разумно
  • Настроены алерты
  • Настроено резервное копирование

Устранение проблем​

Поды не запускаются​

  1. Check события: kubectl describe pod <pod-name> -n <namespace>
  2. Check логи: kubectl logs <pod-name> -n <namespace>
  3. Check ресурсы: kubectl describe node
  4. Check persistent volumes: kubectl get pv, pvc

Сервисы недоступны​

  1. Check ingress: kubectl describe ingress -n <namespace>
  2. Check DNS: nslookup <domain>
  3. Check SSL: openssl s_client -connect <domain>:443
  4. Check логи Traefik: kubectl logs -n ingress -l app=traefik

Проблемы с базами данных​

  1. Check статус: kubectl get pods -n db
  2. Check логи: kubectl logs -n db <db-pod>
  3. Check подключение: попробуйте подключиться к БД
  4. Check persistent volumes

Next Steps​

После проверки системы:

  1. Настройте регулярные проверки
  2. Настройте автоматические алерты
  3. Настройте резервное копирование
  4. Документируйте особенности вашей установки