Ответ
Мой рабочий день строится вокруг набора утилит для разных задач:
Для оперативного мониторинга и отладки:
htop/btop— мониторинг ресурсов (CPU, память, процессы).nethogs,iftop— анализ сетевого трафика.journalctlиtail -f— просмотр логов в реальном времени.strace/perf— профилирование и отладка процессов.kubectl(если работаю с K8s) — основной инструмент для управления кластером.
Для анализа и обработки данных:
jq— незаменим для парсинга и форматирования JSON (например, ответов от API).grep,awk,sed— классика для обработки текста в конвейерах (pipes).tcpdumpиwireshark(в CLI режиме) — для глубокого анализа сетевых пакетов.
Для автоматизации и управления инфраструктурой:
- Скрипты: Пишу на Bash для простых задач и на Python (с библиотеками
boto3,requests) для более сложной логики, например, для автоматического сбора метрик или управления облачными ресурсами. - Конфигурация: Использую Ansible для управления конфигурацией множества серверов.
Пример: Чтобы быстро найти все failed-поды в Kubernetes и увидеть причину, я часто использую связку:
kubectl get pods --all-namespaces --field-selector=status.phase!=Running | grep -v "Completed"
А затем детально смотрю логи конкретного пода с помощью kubectl logs <pod_name> --previous.
Ответ 18+ 🔞
А, ну это же классика, ёпта! Сидишь такой, как хитрая жопа, и думаешь: «Ну что мне сегодня впендюрить, чтобы всё летало?». А там, бля, овердохуища всего, и каждый день одно и то же. Но без этого никуда, чувак.
Вот смотри, у меня день обычно начинается с того, что я включаю htop или btop. Это, бля, как будто в душу бога мать заглянул — видишь, кто сколько CPU хавает, кто память жрёт. Сразу видно, какой процесс — распиздяй смердящий, который всё тормозит. Без этого — терпения ноль ебать, будешь как слепой щупаться.
Потом, если сеть тупит — сразу nethogs или iftop. Чтобы понять, кто там, сука, такой умный, что весь трафик на себя стянул. Это же волнение ебать, когда сервис лежит, а ты нихуя не понимаешь, в чём дело.
Логи — это отдельная песня. journalctl или tail -f в файл — это как подслушивать, о чём системы между собой шепчутся. А если совсем пиздец, и процесс себя ведёт как ебанько непредсказуемый — тут уже strace в ход идёт. Смотришь, на каком системном вызове он, бля, накрылся медным тазом. Профилирование через perf — это уже для особо изощрённых случаев, когда нужно докопаться до самой сути, до наносекунд.
Если в кубере работаешь — то kubectl это твои руки и ноги. Без него ты просто хуй в пальто, который ничего не может. Им и поды смотришь, и логи, и всё на свете.
Для анализа данных — тут без jq просто никуда. Прилетает тебе JSON от какого-нибудь API, а там, бля, манда с ушами, вложенность на три этажа. jq — это как волшебная палочка, которая эту хуйню разбирает на запчасти. Ну и классика жанра — grep, awk, sed. Это как отвёртка, молоток и пассатижи в мире текста. Без них чувствуешь себя голым.
Сеть копнуть глубже? tcpdump тебе в помощь. Это, бля, как рентген для пакетов. Видишь всё, что по проводам бежит. Правда, иногда смотришь на это и думаешь: «Ядрёна вошь, да кто это придумал?». Но без этого — никак.
Автоматизация — это святое. Простые задачи на Bash — там, где нужно быстро что-то склепать. Но если логика сложная, или с облаком Амазона работать — тут уже Python с boto3 и requests выручает. Писать скрипты, которые сами всё делают — это же кайф, чувак. Сидишь, пьешь кофе, а они там работают.
А чтобы конфиги на сотне серверов не править вручную — Ansible. Иначе с ума сойдёшь. Это как удалённо всем сразу впендюрить одно и то же, чтобы не было разночтений.
Вот, к примеру, реальная ситуация: в кубере какая-то хрень творится, поды падают. Сидишь и подозрение ебать чувствуешь. Первым делом — быстрая проверка:
kubectl get pods --all-namespaces --field-selector=status.phase!=Running | grep -v "Completed"
Смотришь — ага, вот этот полупидор frontend-xyz в статусе CrashLoopBackOff. Ну всё, ясно. Дальше смотришь логи:
kubectl logs frontend-xyz-123abc --previous
И там, бля, как обычно: «Connection refused to database». Ну вот, опять сетевая политика криво настроена или БД легла. И пошёл-поехал... Зато быстро локализовал, а не как мартышлюшка по кластеру тыкался.
В общем, инструментов — овердохуища. Главное — знать, какой когда хватать, чтобы не вышло пиздопроебибны. А так — работа кипит.