DevOps Brain 🧠 pinned «📍 Карта канала Ламповый чатик для своих людей: @devopsbrain_chat Собрал в одном месте все самые полезные посты - изучайте, применяйте! --- 🔵 Вредные советы начинающим специалистам в IT 🔵 Говорим с TeamCity на одном языке с помощью MCP 🔵 Делаем свой бесплатный…»
Media is too big
VIEW IN TELEGRAM
“Наши руки не для скуки” (с). Я давно хотел накидать скрипт для супер быстрой диагностики Linux. Конечно, это не замена полноценному мониторингу. Это дополнительный инструмент, который вы можете использовать в своем арсенале чтобы упростить себе жизнь. Самое главное что он сэкономит кучу времени.
В отчете вы получите:
curl -o ~/linux-diag-script.sh https://gist.githubusercontent.com/itcaat/45edeaf15f2d508bee766daa9a97400c/raw/linux-diag-script.sh
chmod +x ./linux-diag-script.sh
./linux-diag-script.sh
# Одной командой
curl https://gist.githubusercontent.com/itcaat/45edeaf15f2d508bee766daa9a97400c/raw/linux-diag-script.sh | sudo bash
Бонусом в скрипте встроена возможность получать Telegram уведомления и сам отчет при обнаружении проблем. Для этого надо создать бота и добавить в выполнение скрипта в cron.
1. Найди [@BotFather](https://t.me/BotFather) в Telegram
2. Отправь команду /newbot
3. Следуй инструкциям и получи токен бота (например: `123456789:ABCdefGHIjklMNOpqrsTUVwxyz`)
4. Получи Chat ID:
- Отправь сообщение боту
- Откройте:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates- Найди "chat":{"id": - это твой Chat ID
Теперь можешь добавить в cron (подставь свой botToken и chatId) и будешь получать уведомление в telegram если будет обнаружена какая то проблема.
# Проверка каждые 6 часов
0 */6 * * * root TELEGRAM_BOT_TOKEN="your_token" TELEGRAM_CHAT_ID="your_chat_id" /usr/local/bin/linux-diag-script.sh >/dev/null 2>&1
Актуальная версия скрипты доступна на GitHub Gist. Вы можете модифицировать его под свои нужды, добавлять новые проверки или как то интегрировать в runbook-и.
🔖 #linux #tools
---
DevOps Brain | Github
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11
Дорогие читатели моего канала, поздравляю вас всех с наступающими новым годом. 🎄
Не хочу подводить никаких итогов 2025 как сейчас принято.
А просто пожелаю вам всем, чтобы всё задуманное сделать в новом 2026 обязательно получилось реализовать.
Спасибо, что читаете мой канал и ставите огонечки🔥 - это важный мотиватор писать для вас дальше.
Stay tuned и встретимся в 2026 🏂
Не хочу подводить никаких итогов 2025 как сейчас принято.
А просто пожелаю вам всем, чтобы всё задуманное сделать в новом 2026 обязательно получилось реализовать.
Спасибо, что читаете мой канал и ставите огонечки🔥 - это важный мотиватор писать для вас дальше.
Stay tuned и встретимся в 2026 🏂
🔥23❤🔥4 3
Ну что, надеюсь все пережили эти длинные празники? 😀Пора возвращаться ( как бы это не было грустно) в суровую реальность.
Если после праздников у тебя нет мотивации, сложно собраться и даже простые задачи требуют усилий - с тобой всё в порядке. Это не лень и не выгорание, а обычная реакция на длинный перерыв.
Самое главное - не принимай серьёзных решений. Увольнение, смена профессии и переезд в Бали - отложи на неделю. После праздников мы склонны к резким движениям и странным идеям.
А помочь пережить первую рабочую неделю без лишней драмы тебе помогут небольшие советы
1. Признай очевидное.
Да, работать не хочется. И нет, с тобой ничего не случилось. Это не выгорание, это организм всё ещё считает, что январь - выходной.
2. Не пытайся “ворваться” - это ловушка.
После праздников надо входить медленно: сначала понять кем ты работал и чем занимался. И после этого переходить к быстро-решаемым маленьким задачам.
3. Сначала контекст.
Начни с того, чтобы разобраться, какие темы сейчас живые, а что может подождать. Это сэкономит силы и время.
4. Составь список дел. Короткий.
Например: “разобрать почту”, “не уволиться”, “поесть”. Этого будет вполне достаточно на первый день.
5. Запланируй первую “победу”.
Закрой что-то простое и порадуйся. Мозгу нужно вспомнить, что работа - это не только страдание, но и галочка “done”.
6. Опирайся на привычки.
Кофе, музыка, любимая кружка, одинаковый маршрут. Чем меньше экспериментов в первую неделю, тем быстрее вернётся нормальная продуктивность.
7. Разговаривай с людьми.
Все в одинаковом состоянии. Обсудить это - уже терапия. А ещё иногда так выясняется, что дедлайны тоже ещё плавают.
И на последок - не требуй от себя героизма. Ты не обязан быть продуктивным, позитивным, вдохновлённым и замотивированным в первый же день. Достаточно быть адекватным и на связи.
Кстати, если у вас есть истории как что то разломалось в праздники - приходите в комменты =)
#карьера
---
DevOps Brain | Github
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5 3🔥2😁2
Media is too big
VIEW IN TELEGRAM
У меня скопилось какое-то количество крутых TUI тулов, которыми пользуюсь и хочу с вами тоже делиться.
Некоторые супер известные - из серии lazydocker, lazygit и тд. Но банальщину оставим на потом. Хочется показать менее известные TUI-тулзы.
И первая тулза это git-igitt. Она нужна для просмотра Git-истории с читаемыми графами веток прямо в терминале.
⚡ Плюшки:
• визуальные Git-графы в терминале
• навигация по коммитам
• просмотр diff-ов
• кроссплатформенный
Установить можно через cargo или скачав соотвествующий бинарь со страницы релизов.
# Установить cargo можно командой curl https://sh.rustup.rs -sSf | sh
cargo install git-igitt
Навигация очень простая - просто стрелками на клавиатуре вверх вниз влево и вправо.
#tools #git
---
DevOps Brain | Github
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Media is too big
VIEW IN TELEGRAM
Рано или поздно у тебя или твоих коллег появляется Docker-образ, который по какой-то причине весит в разы больше, чем ожидали. Часто виной тому - лишние логи, кэш пакетных менеджеров (apt, npm, pip), или даже исходный код, который не нужен в runtime.
Как следствие pull образа занимает вечность, ну а дальше сильно замедляется развертывание в кластерах или на нодах.
Возникает вопрос: как посмотреть, что находится внутри этого образа и как сделать его меньше? Именно для этого и нужен dive.
По сути dive - это рентген для Docker-образов, который покажет:
- Все реальные слои файловой системы образа.
- Какие именно файлы были добавлены, изменены или удалены в каждом слое.
Попробуйте запустить dive на своем самом большом образе - гарантирую, вы удивитесь =)
# https://github.com/wagoodman/dive
dive <your-image:tag>
#tools #tui
---
DevOps Brain | Github | YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12 1
This media is not supported in your browser
VIEW IN TELEGRAM
ncdu - самая топовая тулза для быстрого поиска куда утекло место на серваке или локальной машинке.
В отличие от обычной команды du, утилита ncdu предоставляет удобный интерфейс, который облегчает навигацию по папкам, позволяет быстро и наглядно находить самые жирные файлы и директории.
Я покажу 2 примера использования - в базовом варианте ( будет достаточно для 99 процентов случаев ):
ncdu <some_path>
Расширенный пример с самыми интересными параметрами, которые потенциально могут пригодиться.
# --exclude-caches - не учитывать кеши
# --exclude '*.log' - не учитывать log-файлы
# --color dark - темная тема
# --show-percent - показывать процент от общего размера
# -- graph-style - стиль графической полоски (чисто вкусовщина для красоты)
ncdu --exclude-caches \
--exclude '*.log' \
--exclude '/proc/*' \
--color dark \
--show-percent \
--graph-style half-block <some_path>
Пакет доступен для всех популярных linux-дистрибутивов и macos. Пример как она работает есть на видео - как видно больше всего места в моем домашнем каталоге жрет Counter Strike oO.
#tools #cli #linux
---
Telegram | Github | YouTube | Twitter
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤🔥1
Я тут в праздники упоролся и подготовил материал на тему проектирования сетей в графическом симуляторе GNS3. Это будет небольшой цикл из нескольких статей в которых мы:
- Научимся работать в GNS3
- Настроим MikroTik RouterOS через консоль
- Изучим конфигурацию статических и динамических IP-адресов с разными пулами адресов
- Реализацем NAT для доступа в интернет
- Настроим Firewall правила на MikroTik:
- Воспользуемся адресными списками для упрощения управления
- Реализуем сегментацию сети и реализауем политики безопасности
Ну и на вкусное: пересоберем сеть с использованием Cisco L2-коммутатора, настроим VLAN и подрубим OSPF. Ну и вообще разберемся раз и навсегда на реальном примере как это работает на самом деле и зачем это нужно =)
Но для начала, если у тебя macOS на m-проце, я подгтовил пост как там настроить GNS3. К сожалению, там надо немного поплясать что симулятор заработал. Для остальных ОС проблем нет поставить и настроить. В общем - надеюсь тебе будет интересно.
https://habr.com/ru/articles/983362/
---
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤🔥7 3
Как и обещал я выкатываю 2-ую часть по симулятору сетей GNS3.
В статье мы разберем:
- Работу с GNS3 для моделирования сетей.
- Настройку MikroTik RouterOS через консоль (CLI).
- Конфигурацию статических и динамических IP-адресов.
- Настройку DHCP-серверов с разными пулами адресов.
- Реализацию NAT для доступа в интернет.
- Создание и применение Firewall правил.
- Использование адресных списков для упрощения управления.
- Сегментацию сети и реализацию политик безопасности.
Я буду очень рад если вы накидаете плюсов на хабре под постом.
---
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4 2
This media is not supported in your browser
VIEW IN TELEGRAM
Продолжаю делиться с вами крутыми TUI-тулзами. И сегодня на очереди posting - это супер крутой терминальный клиент для HTTP-запросов. Типа Postman, только без лишнего мусора в интерфейсе.
Вот ключевые фишки:
Тебе точно зайдет posting, если ты:
---
Please open Telegram to view this post
VIEW IN TELEGRAM
Иногда в проде происходит самая раздражающая вещь: ты видишь, что что-то запущено, но не понимаешь почему оно вообще живёт.
• ps покажет PID
- ss покажет порт
- systemctl покажет сервис
А вот связать всё это в одну понятную картинку - обычно ручной квест. И вот тут внезапно очень хорошо заходит утилита witr.
Сразу разберем пример использования на моей экспериментальной виртуалке где-то во Франции =)).
# Посмотрим по имени процесса.
root@dns:~# witr angie
Multiple matching processes found:
[1] angie (pid 35980)
angie: master process v1.11.2 #1 [/usr/sbin/angie -c /etc/angie/angie.conf]
[2] angie (pid 35981)
angie: worker process #1
Re-run with:
witr --pid <pid>
# Не повезло - у нас несолько пидов(уж простите за сквернословие)
# Поэтому посмотрим что там скрывается и почему работает 35981
root@dns:~# witr --pid 35981
Target : angie
# Это воркер, которого породил мастер-процесс ибо forked
Process : angie (pid 35981) {forked}
User : angie
Command : angie: worker process #1
Started : 6 days ago (Wed 2026-01-21 15:56:34 +00:00)
Restarts : 1
# Вот эта и есть killer-фича. Мы видим кто его породил!
# Systemd поднял master-процесс angie, а тот породил worker.
# Те это нормальный сервис под управлением init-системы
# А не кто то руками запустил.
Why It Exists :
systemd (pid 1) → angie (pid 35980) → angie (pid 35981)
Source : systemd
Working Dir : /
# Сразу видим порты на которых висит процесс мордой вперед
Listening : 0.0.0.0:44301
0.0.0.0:443
[::]:443
0.0.0.0:80
# Предупреждения - все по делу, ибо нефиг. Надо исправлять!
Warnings :
• Process is listening on a public interface
• Process is running from a suspicious working directory: /
И последнее - witr не пытается заменить systemd или сетевые утилиты. А просто экономит время, особенно когда ты на дежурстве и голова уже не варит.
Ну и бонусом можно не по pid-у пробивать процесс, а по занятому порту и дальше уже подключать детальный вывод с pid:
root@dns:~# witr --port 44301
Multiple matching processes found:
[1] angie (pid 35980)
angie: master process v1.11.2 #1 [/usr/sbin/angie -c /etc/angie/angie.conf]
[2] angie (pid 35981)
angie: worker process #1
Re-run with:
witr --pid <pid>
Полная инструкция и примеры использования: https://github.com/pranshuparmar/witr
---
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13
This media is not supported in your browser
VIEW IN TELEGRAM
Ребята, я сегодня релизнул cli-stash. Это TUI-утилита на Go + Bubble Tea для сохранения shell-команд в "избранном".
Она решает простую боль: сложные команды (docker, kubectl, ffmpeg) постоянно забываются, а копаться в history каждый раз это страдание.
Что умеет:
• Ctrl+A открывает историю шелла с поиском для добавления в избранное
• Нечеткий поиск
• Сортировка по частоте использования
И самое крутое, что команда вставляется прямо в терминал. Таким образом вам не надо ничего копипастить: нашел → выбрал → enter → команда уже в cli.
Установка в Linux:
go install github.com/itcaat/cli-stash@latest
# Build and install from source code
git clone https://github.com/itcaat/cli-stash.git
cd cli-stash
go build -o cli-stash .
sudo mv cli-stash /usr/local/bin/
Установка в MacOS:
# Install MacOS
brew install itcaat/tap/cli-stash
Использовать так (см. демку):
cli-stash
Исходники и инструкция по использованию есть на github
---
Telegram | Github | YouTube | Twitter
Please open Telegram to view this post
VIEW IN TELEGRAM
14🔥9❤🔥3 2
This media is not supported in your browser
VIEW IN TELEGRAM
Ребята, важная инфа 🚨
Я запускаю закрытый канал “Сундук айтишника”.
Несколько раз в день туда будут попадать самые сочные open-source находки с GitHub.
Что внутри?
🔸 6-8 самых сочных opensource-проекта в день с кратким описанием.
🔸 Никаких лонгридов. Коротко, по делу, только суть.
🔸 Фильтр на 95% шума. Только работающие и актуальные инструменты.
⚡️ Для первых 1000 подписчиков — бесплатно навсегда. Потом только — платный вход.
⏫ Забрать бесплатный доступ...
---
Telegram | Github | YouTube | Twitter
Я запускаю закрытый канал “Сундук айтишника”.
Несколько раз в день туда будут попадать самые сочные open-source находки с GitHub.
Что внутри?
🔸 6-8 самых сочных opensource-проекта в день с кратким описанием.
🔸 Никаких лонгридов. Коротко, по делу, только суть.
🔸 Фильтр на 95% шума. Только работающие и актуальные инструменты.
---
Telegram | Github | YouTube | Twitter
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4😁4🔥3 3 1
Вчера выложил 3-ю часть по сетям хабр, которая позволяет все больше погрузиться в практику конфигурирования сетей.
В ней мы пройдем полный путь построения сегментированной корпоративной сети. Начнем с настройки простейшей сети на MikroTik RouterOS в GNS3, настроим базовую маршрутизацию и DHCP.
Затем добавим интернет-доступ через NAT. После этого заменим простые виртуальные PC на Alpine Linux для реалистичности.
Далее научитимся создавать правила для фильтрации трафика между сегментами (сотрудники, гости, серверы), использовать адресные списки и логировать срабатывания.
По итогу получим готовую, безопасную и масштабируемую сетевую инфраструктуру с продуманными политиками доступа. Все этапы сопровождаются подробными командами, скриншотами и пояснениями.
Тыц...
UPD: скорее всего не буду больше продолжать цикл. Можно было уже перейти дальше к динамической маршрутизации, но там можно бесконечно масштабировать эту историю. К сожалению дальше продолжать цикл ни времени ни желания уже нет, лучше выделю время на более интересные штуки.
---
Telegram | Github | YouTube | Twitter
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6😁2
Когда в Linux заканчивается оперативная память, система стоит перед критическим выбором: зависнуть полностью или пожертвовать одним из процессов, чтобы выжить. За это жёсткое, но необходимое решение отвечает механизм OOM Killer (Out-of-Memory Killer).
Он не убивает процессы случайно. Вместо этого для каждого вычисляется "рейтинг плохости". Процесс с наивысшим рейтингом признаётся наименее важным и подлежит уничтожению. В расчёте участвуют почти все процессы, кроме init и потоков ядра (kernel threads).
Мы не будем вдаваться сейчас в детали реализации этого механизма - об этом написано уже множество статей. Вместо этого мы сразу посмотрим на сервере какой рейтинг у каждого процесса с помощью однострочника:
for p in /proc/[0-9]*; do pid=${p##*/}; [ -r $p/oom_score ] && printf "%4s %5s %8s %s\n" "$(cat $p/oom_score 2>/dev/null)" "$(cat $p/oom_score_adj 2>/dev/null)" "$pid" "$(cat $p/comm 2>/dev/null)"; done | sort -nr | column -t
Нам интересны 1 и 3 колонки, в которых oom_score и PID соответственно. Наш вывод говорит что, если придет oom kill, то первый “на вылет” fail2ban-server.
**700 0 131351 fail2ban-server**
693 0 1254 node
692 0 131649 fwupd
А теперь самое интересное...На самом деле можно принудительно вызывать oom killer командой:
$ sudo echo f > /proc/sysrq-trigger
$ sudo dmesg
[114247.906865] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/system.slice/fail2ban.service,task=fail2ban-server,pid=131351,uid=0
[114247.906966] Out of memory: Killed process 131351 (fail2ban-server) total-vm:886820kB, anon-rss:19928kB, file-rss:30592kB, shmem-rss:0kB, UID:0 pgtables:628kB oom_score_adj:0
[PRESS F TO PAY RESPECTS] как говорится. Совпадение это или нет мы не знаем. Но я почти уверен, что 10 лет назад один из контибьютов в ядро Linux (mchehab) сделал отсылку к Call Of Duty намеренно. 🤯
Всем хорошей пятницы! А если тебе интересно как именно ядро считает тот самый oom_score - поставь 🔥
UPD: ошибочка вышла - это просто совпадение =(
---
Telegram | Github | YouTube | Twitter
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22❤🔥6 2
This media is not supported in your browser
VIEW IN TELEGRAM
Ребята, я тут вспомнил что когда-то делал репозиторий для того, что бы можно было пощупать kubernetes+terraform локально прямо в Docker Desktop. Сегодня я его немного причесал и готов показать вам.
Если вам нужна песочница, в которой вы могли бы пощупать IAC и кубер, то забирайте тут https://github.com/itcaat/terraform-kubernetes-desktop-startkit
Внутри:
• Ingress Nginx
• cert-manager выпускает валидные TLS-сертификаты локально
• echo-сервис для экспериментов
Это не продакшн-решение. Это учебная песочница, чтобы понимать, как оно работает под капотом, а не просто читать. А полноценный гайд по использованию есть в readme.
---
Telegram | Github | YouTube | X | 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13 4 2
Нашёл интересный опенсорс-инструмент для тех, кто живёт в Proxmox / Docker / Kubernetes. Это такой “single pane of glass”.
• Инфра, ворклоады, бэкапы, сторидж – сгруппировано по задачам, а не по источникам.
• Алерты Slack / Discord / Telegram / Email из коробки.
• Есть персистентное хранение истории с retention.
• Нормальный визуальный обзор бэкапов.
• Можно подключить AI и задавать вопросы по инфраструктуре.
Это не замена полноценному продовому мониторингу уровня большой компании. Но как операционный обзор + AI-ассистент по инфраструктуре – выглядит очень прикольно.
Live Demo: https://demo.pulserelay.pro
Repo: https://github.com/rcourtman/Pulse
---
Telegram | Github | YouTube | Twitter
• Инфра, ворклоады, бэкапы, сторидж – сгруппировано по задачам, а не по источникам.
• Алерты Slack / Discord / Telegram / Email из коробки.
• Есть персистентное хранение истории с retention.
• Нормальный визуальный обзор бэкапов.
• Можно подключить AI и задавать вопросы по инфраструктуре.
docker run -d \
--name pulse \
-p 7655:7655 \
-v pulse_data:/data \
--restart unless-stopped \
rcourtman/pulse:latest
Это не замена полноценному продовому мониторингу уровня большой компании. Но как операционный обзор + AI-ассистент по инфраструктуре – выглядит очень прикольно.
Live Demo: https://demo.pulserelay.pro
Repo: https://github.com/rcourtman/Pulse
---
Telegram | Github | YouTube | Twitter
🔥6 3❤🔥2
🎮 Выкатил симулятор закрытых задач iKanban
Ну его нафиг, эту улицу с -14 “за бортом”. Всё утро с кофе и ноутом: допиливал пет-проекты и новую браузерку до состояния “не стыдно показать людям”.
Идея родилась на работе, когда мы с коллегами обсуждали, что кайфово когда задачки закрываешь. Мозг же реально выдает дофамин, когда задача уходит в DONE. Получается, что мем "Секс – это круто, но пробовали ли вы закрывать таски?" – уже не шутка, а жиза.
Поэтому я собрал игру, где вы:
• Выбираете персонажа (DevOps, SRE, Backend, Frontend)
• Получаете тонны абсурдных задач
• Хватаете дофамин от их выполнения
• Угараете в чате над виртуальными коллегами и залипаете кайфовую музыку
Залипать сюда 👉 https://t.me/ikanban_bot?startapp или просто на https://ikanban.ru.
P.S. Если что-то пойдет не так или захочется поругать – велкам в комменты. Похвала тоже принимается. А если хотите чтобы я рассказал в следующих постах как быстро поднимать микро-продукты – то ставьте🔥 .
---
🚀 Telegram | Github | YouTube | Twitter
Ну его нафиг, эту улицу с -14 “за бортом”. Всё утро с кофе и ноутом: допиливал пет-проекты и новую браузерку до состояния “не стыдно показать людям”.
Идея родилась на работе, когда мы с коллегами обсуждали, что кайфово когда задачки закрываешь. Мозг же реально выдает дофамин, когда задача уходит в DONE. Получается, что мем "Секс – это круто, но пробовали ли вы закрывать таски?" – уже не шутка, а жиза.
Поэтому я собрал игру, где вы:
• Выбираете персонажа (DevOps, SRE, Backend, Frontend)
• Получаете тонны абсурдных задач
• Хватаете дофамин от их выполнения
• Угараете в чате над виртуальными коллегами и залипаете кайфовую музыку
Залипать сюда 👉 https://t.me/ikanban_bot?startapp или просто на https://ikanban.ru.
P.S. Если что-то пойдет не так или захочется поругать – велкам в комменты. Похвала тоже принимается. А если хотите чтобы я рассказал в следующих постах как быстро поднимать микро-продукты – то ставьте
---
🚀 Telegram | Github | YouTube | Twitter
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Нашел htop для сетевых соединений - назвается snitch.
Открываешь и сразу понятно:
• кто слушает порт
• какой PID
• какой процесс
• какие соединения висят в established
• куда сервис вообще ходит
• можно прибить прямо из интерфейса
Также можно фильтровать TCP/UDP, отдельно LISTEN, отдельно ESTABLISHED, искать, сортировать.
Ставится "изи-пизи":
brew install snitch
или
go install github.com/karol-broda/snitch@latest
Забрать тут: https://github.com/karol-broda/snitch
---
Telegram | Github | YouTube | Twitter
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11😁2 1