Ответ
Мой подход к диагностике системы — идти от общего к частному, используя многоуровневый стек инструментов.
1. Общая картина (Dashboard-ы): Первым делом открываю Grafana-дашборды, которые дают мгновенный обзор:
- Кластерный дашборд: Здоровье нод Kubernetes (CPU, Memory, Disk I/O), статус подов, сетевой трафик.
- Бизнес-метрики: Rate, latency, error rate ключевых сервисов (часто на основе RED-метрик).
- Дашборд по базам данных: Запросы в секунду, активные соединения, latency запросов.
2. Детальный осмотр и анализ: Если на дашбордах видна аномалия, перехожу к конкретным инструментам.
- Для Kubernetes-кластера:
# Быстрый снимок состояния kubectl get nodes -o wide kubectl top nodes kubectl get pods -A --sort-by='{.status.startTime}' | tail -20 # Смотреть последние запущенные поды kubectl describe pod <problem-pod> # Детали пода и события kubectl logs <pod-name> --tail=100 -f # Просмотр логов в реальном времени kubectl exec -it <pod-name> -- /bin/sh # При необходимости зайти в контейнер - Для анализа метрик и алертов: Использую Prometheus UI для ad-hoc-запросов, чтобы глубже исследовать проблему, выявленную на дашборде.
- Для поиска по логам: Использую Grafana с плагином Loki. Типовой запрос:
{app="api-service", level="error"} |= "timeout".
3. Инструменты уровня ОС/хоста (если проблема на конкретной ноде): Подключаюсь к ноде и использую стандартный набор:
- Процессы и ресурсы:
htop,vmstat 1,iostat -xz 1. - Сеть:
ss -tlnp(современная замена netstat),tcpdump -i any -n port 80для сниффинга трафика,mtrдля диагностики сетевых путей. - Диски:
df -h,lsblk,iotop.
4. Специализированные утилиты:
k9s: Терминальный UI для Kubernetes, незаменим для быстрой навигации по ресурсам, просмотра логов и описаний.stern: Агрегатор логов из нескольких подов по лейблу, напримерstern -n production app=frontend.jq: Для парсинга JSON-ответов API (например, от Kubernetes API или внутренних сервисов).
Мой принцип — максимально использовать централизованные инструменты (Grafana, Prometheus, Loki), чтобы минимизировать необходимость прямого доступа к продакшен-серверам.