Admin Guides | Сисадмин
11.4K subscribers
1.25K photos
20 videos
34 files
559 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
Заглядываем в конфиги и превращаем хаос в систему

💬 Шёпотом: курс «Ansible: Infrastructure as Code» стартует 28 апреля.

Подойдёт всем, кто хочет научиться:

🔹 работать с подходом IaC и автоматизировать рутину;
🔹 выполнять всякие сложные задачи типа блоковой замены, управления потоком выполнения и пр.;
🔹 настраивать Ansible под необходимые задачи;
🔹 писать свои модули;
🔹 решать сисадминские задачи;
🔹 встраивать Ansible в пайплайн Gitlab и много чего ещё.

Успевайте оформить обучение, пока действует ранняя цена 🤝

Программа курса и все подробности — по ссылке ⬅️
👍2
Лимиты systemd: что произойдёт, если запустить 20k сервисов одновременно

Запустить 20 000 systemd-юнитов — звучит безумно, но на самом деле это вполне достижимо на современной машине. Вопрос в другом: где начнёт всё сыпаться?

Мы сгенерировали 20k простых сервисов с шаблоном ExecStart=/bin/sleep infinity, и попытались запустить их разом через systemctl start test@{1..20000}.


На что упёрлись:

1️⃣PID limits:
Первое, что кончилось — лимит процессов. Даже при ulimit -u unlimited, ядро имеет предельный pid_max. Проверить можно:

cat /proc/sys/kernel/pid_max


2️⃣File descriptors:
Каждый сервис тянет за собой файловые дескрипторы: сокеты, логирование через journald, pipe’ы.
Мониторить:

lsof | wc -l  
cat /proc/sys/fs/file-nr


3️⃣Cgroups:
systemd создаёт по cgroup на каждый юнит. При большом количестве можно уткнуться в лимит вложенности или число control group’ов.
Проверка:

systemctl status test@19999
cat /proc/self/cgroup


4️⃣journal:
Если сервисы пишут в журнал, journald начинает лагать или просто отваливается. Особенно, если RateLimitInterval не сконфигурирован.
Проверить, сколько записей в секунду:

journalctl -o short-precise -f


5️⃣CPU scheduler:
Если юниты зависают или выходят с ошибкой, systemd тратит кучу ресурсов на перезапуск. И даже при Restart=no огромный пул сервисов может повлиять на responsiveness системы.

Как наблюдать:
systemd-analyze dump | grep 'Service State'
systemctl list-units | grep test@ | wc -l
top, iotop, pidstat, journalctl — всё идёт в бой.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3
📡 Kafka-подобный брокер, который умеет больше

Когда команда переходит на событийную архитектуру, приходит и Kafka. Но за ней — своя плата: поддержка transactional outbox, дубли, потеря сообщений, неудобная интеграция с базой. В Яндексе не стали с этим мириться и сделали YDB Topics — брокер, который сам умеет чуть больше.

Он совместим с Kafka-протоколом, но при этом глубоко встроен в YDB. Это значит: ACID-транзакции с одновременным участием топиков и таблиц из коробки и реальная отказоустойчивость без хаков. Плюс корпоративные фичи: квоты и роли.

На вебинаре 23 апреля в 12:00 покажут, как построить надёжную событийную систему на базе YDB Topics и при этом не усложнять жизнь себе и коллегам.
🥴2🔥1
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает Linux Security Module (LSM) и зачем он нужен?

Ответ: LSM — это подсистема ядра Linux, обеспечивающая инфраструктуру для реализации различных политик безопасности. Она предоставляет интерфейсы для внедрения ограничений на уровне ядра, не меняя сам код ядра напрямую.

LSM реализует механизм hook-based security, в котором в ключевые точки ядра встроены хуки. Эти хуки вызываются перед выполнением чувствительных операций (например, доступ к файлу, сетевой сокет или выполнение бинарника), и LSM-расширение решает — разрешить или запретить операцию.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍121🔥1
Как найти самый медленный диск в RAID без iostat: только dd и strace

Когда RAID-массив уходит в degraded, и чтение с него начинает тормозить, первым делом хочется открыть iostat или dstat — но что делать, если этих утилит нет, или нужно быстро сориентироваться на минимальной системе?

RAID5 на mdadm, одно устройство помечено как degraded. Хотим понять, какой из оставшихся дисков тормозит, не прибегая к утилитам верхнего уровня.

1️⃣dd по /dev/mdX с отслеживанием времени

dd if=/dev/md0 of=/dev/null bs=4M status=progress


Смотрим, залипает ли на конкретных участках. Если чтение “пульсирует” — скорее всего, где-то один из дисков тормозит при чтении блоков.

2️⃣ strace на dd — трекинг задержек в syscalls

strace -T -e read dd if=/dev/md0 of=/dev/null bs=4M


Параметр -T покажет время, затраченное на каждый системный вызов read(). Если большинство идут быстро (<0.01s), а иногда появляются задержки в 0.2-0.5 секунды — именно в эти моменты диск фризит.

3️⃣ mdadm + cat /sys/block на live-данных
Можно сверить статистику по mdstat, а потом пойти глубже:

cat /proc/mdstat


Затем для каждого устройства в массиве:

for d in sd{a,b,c}; do echo "$d: $(cat /sys/block/$d/stat)"; done


Здесь можно отследить рост времени обработки I/O по полям в /sys/block/*/stat. Если у одного устройства счётчики существенно выше — это он и есть.

smartctl на подозреваемом диске
После того, как нашли “виновника”, имеет смысл проверить его S.M.A.R.T.:

smartctl -a /dev/sdX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥41
Киберугрозы не ждут. А вы?
Защити себя или свою команду от проверок и взломов — обучись защите КИИ по стандартам ФСТЭК.

 До 31 мая действует спецпредложение🔥 -50% на второй курс!

 Выбирай один, а второй — за полцены:
 1️⃣ Техническая защита информации → 29 950 ₽
 2️⃣ Безопасность персональных данных → 40 000 ₽

 Записал сотрудника на курс по КИИ?
 → Получи -50% на “Защиту объектов КИИ” (всего 32 000 ₽)
👨‍🎓 Выпускникам Softline — скидка 40% на «Безопасность КИИ»
 (149 000 → 89 400 ₽)

Почему выбирают нас:
  Преподаватели из ФинЦЕРТа и Банка России
  Программы одобрены ФСТЭК
  Вебинары в прямом эфире
  Рассрочка 0%
До 31 мая — оставь заявку и зафиксируй скидку

 👉 Оставить заявку 
👍2😁21
😁31🔥3🤣21🥱1
Поддержка ядра Linux 6.13 завершена

Серия 6.13 официально получила статус EOL (End of Life). Последнее обновление — 6.13.12 от 20 апреля 2025.

Дальнейших патчей, включая security-фиксы, больше не будет.


Что делать:
— Переходите на Linux 6.14 (актуальная стабильная версия).
— Или на Linux 6.12 LTS, если нужен долгосрочный цикл поддержки (до декабря 2026).

Оставаться на EOL-ядре — значит работать без критических патчей. Особенно опасно для серверов и продакшн-сред.

LTS-ядра, которые ещё живы:
• 6.12 (до 12.2026) — Ubuntu 24.04, Oracle UEK8
• 6.6 (до 12.2026)
• 6.1 (до 12.2026) — Debian 12, OpenWRT
• 5.15 (до 10.2026) — Ubuntu 22.04, OpenWRT 23.05
• 5.10 (до 12.2026) — Debian 11, Android 12
• 5.4 (до 12.2025) — Ubuntu 20.04

Если вы используете 6.13 — самое время накатить миграционный план.
👍16
Автоматизация процессов в проекте: пополните свою базу знаний и расширьте стек со скидкой до 37%

👍🏻Обучающие материалы, которые помогут вам быстро освоить CI/CD, IAC и ИБ, повысить продуктивность и оптимизировать процессы:

- Gitlab CI/CD
- CI/CD c Jenkins
- Kubernetes: мониторинг и логирование
- Terraform автоматизация
- Продвинутый PostgreSQL
- Keycloak безопасность и аутентификация
- Основы информационной безопасности
и многие другие

Все программы актуальны в 2025 году, курсы ведут практикующие спикеры.

👉Смотрите подборку и выбирайте подходящий курс со скидкой до 15000р 👉 Смотреть подборку
1👍1
OverlayFS в контейнерах: трюки с кэшем, которые экономят до 1 ГБ RAM

Контейнеры на Podman и Docker по умолчанию используют overlayfs (или overlay2), чтобы объединять базовые образы и изменения.

Это удобно, но иногда приводит к неожиданным утечкам памяти — особенно в системах с небольшим объёмом ОЗУ или множеством контейнеров.


Что происходит

При чтении файлов из слоёв overlayfs они кэшируются в page cache как обычно.

Проблема в том, что файлы из нижнего слоя (lowerdir) часто остаются в кеше, даже если контейнер их больше не использует. Так как они общие для всех, ядро не всегда “охотно” от них избавляется.

Особенно это чувствуется, если база содержит много мелких .py или .js, которые загружаются в RAM при запуске.

Как увидеть

Можно посмотреть потребление page cache через free -h или точнее — с smem/pss:

cat /proc/meminfo | grep -i cache


Анализ инод и кэшированных файлов через:

find /proc/*/fd -lname "/overlay/*" | wc -l


Трюк с vfs_cache_pressure

Параметр vm.vfs_cache_pressure регулирует, как активно ядро освобождает inode/dentry кэш. По умолчанию он равен 100.

Если снизить его до 50 или ниже, кэш файловых метаданных будет дольше жить, но для overlayfs иногда, наоборот, помогает поднятие этого значения:

sysctl -w vm.vfs_cache_pressure=200


Это форсирует ядро очищать page cache агрессивнее — и иногда экономит сотни мегабайт на инстанс с десятками контейнеров.

Альтернативы
• В Kubernetes: использовать emptyDir с medium: Memory для временных кэшей, которые не должны попадать в overlay.
• В Docker: периодически вызывать docker system prune или использовать --read-only rootfs, чтобы предотвратить накопление временных данных.
👍8
🔥 ОТ ДЖУНА ДО СЕНЬЁРА ЗА 2 ГОДА — МОЙ ПУТЬ В IT.


Привет! Я сеньёр, который прошёл путь от джуна до эксперта за два года. И я делюсь с вами абсолютно всем, что узнал на этом пути. Всё, что работает, всё, что не сработало — и как я из этого сделал выводы.

💻 IT Sharks — это не просто канал с полезными советами. Это реальный опыт, который я прошёл, работая с крупнейшими проектами, получая оферы с зарплатами до 800.000₽ и сталкиваясь с падениями и взлётами.

На канале я делюсь всем этим опытом:

▪️Советы по карьерному росту — что я делал, чтобы попасть в большие компании, и как получать офферы с высокими зарплатами.

▪️Менторство до оффера — буду помогать вам, делиться инсайтами, чтобы вы могли сделать правильные шаги в своём пути.

▪️Процесс прохождения собеседований — лайфхаки, как пройти собеседование, переговоры, как не упасть в цене, и как не бояться ставить амбициозные цели.

Если я прошёл этот путь, то сможете и вы. Но я не буду обещать, что это будет легко. Это путь, который потребует усилий, но результат того стоит.

Подписывайтесь на канал, и я буду делиться с вами всеми фишками, которые помогли мне стать сеньёром.
🤣14😁1
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работать с Terraform State на практике?

Ответ: Terraform State используется для хранения текущего состояния инфраструктуры и управления изменениями.

Примеры работы:

1️⃣Просмотр состояния:

terraform show  


Выводит текущее состояние инфраструктуры из файла terraform.tfstate.

2️⃣Обновление состояния вручную: Если ресурс изменился вне Terraform, обновите state:

terraform refresh  


3️⃣Удаление ресурса из state: Если нужно удалить ресурс без фактического удаления из инфраструктуры:

terraform state rm <resource_name>
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81😁1
Протестировали для вас 4 инструмента мониторингов сайтов и серверов - и вот что получилось:

1️⃣ Uptime Kuma: OpenSource, полный контроль, уведомлений (Telegram, Discord и много других), нужно разворачивать и обслуживать сервер.

2️⃣ Kuma Cloud: Та же Uptime Kuma, только в облаке, работает из коробки за 30 секунд, ни каких заморочек, поддержка и авто-обновления.

3️⃣ UpTimeRobot: Бесплатный тариф - 50 мониторов, мало гибкости в настройках, ограниченные уведомления, сильно дороже предыдущих.

4️⃣ Overseer - Простота и минимализм, мало функций, нет детальной аналитики, дёшево.

Почему Kuma Cloud - наш выбор?
- Быстрее, чем разворачивать самому
- Мощнее, чем UptimeRobot и Overseer
- Тесная интеграция с Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91🤝1
Профили пользователя Bash: как всё устроено и зачем это знать

Bash — самая распространённая командная оболочка в Linux. 


Она запускается каждый раз, когда вы логинитесь в систему или открываете терминал. Поведение Bash при этом регулируется специальными профилями — системными и пользовательскими.

Разберём, как они работают и что с ними можно делать на практике.

Что происходит при запуске Bash?

Bash может работать в двух режимах: login shell (при входе в систему) и interactive non-login shell (обычное открытие терминала). В зависимости от сценария запуска, загружаются разные файлы:

При входе в систему (login shell):
/etc/profile — глобальный скрипт инициализации;
/etc/profile.d/*.sh — дополнительные скрипты, подключаемые через profile;
один из: ~/.bash_profile, ~/.bash_login, ~/.profile (в Ubuntu чаще всего это ~/.profile, ссылающийся на ~/.bashrc).

При запуске терминала (non-login shell):
• /etc/bash.bashrc или /etc/bashrc;
• ~/.bashrc.

Также есть ~/.bash_logout, который выполняется при выходе из сессии.

Как это использовать на практике?

1. Настройка переменных окружения
В ~/.bashrc или ~/.profile удобно добавлять переменные окружения:

export EDITOR=nano
export PATH="$PATH:$HOME/scripts"


2. Часто используемые команды — в функции
Если вы часто запускаете цепочки команд, создайте функцию:

function logs() {
cd /var/log && ls -lt | head
}


3. Инициализация новых пользователей
Все, что лежит в /etc/skel/, будет копироваться в домашнюю папку новых пользователей:

/etc/skel/.bashrc
/etc/skel/.profile


Хотите, чтобы у каждого нового пользователя были кастомные алиасы, переменные или структура папок — добавьте это сюда.

4. Настройка путей и alias’ов
В ~/.bashrc можно настраивать alias:

alias ll='ls -lah'
alias gs='git status'


Проверка работы профилей

Чтобы отладить поведение при запуске оболочки, можно добавить временные echo:

echo "Loaded ~/.bashrc" >> ~/bash_debug.log
Please open Telegram to view this post
VIEW IN TELEGRAM
👍204
Каждый админ в начале своего пути и спустя годы 😂
Please open Telegram to view this post
VIEW IN TELEGRAM
😁262🔥2🐳2👍1
Почему netstat лжёт: как ss показывает реальную картину с сокетами

В современном Linux часто применяются инструменты для мониторинга сетевых соединений.

Несмотря на свою популярность, утилита netstat уже не всегда предоставляет точную информацию о состоянии сокетов.

Неточное отображение состояний с netstat

Netstat долгое время был основным инструментом для вывода информации о сетевых соединениях, но его алгоритмы и подходы к сбору статистики имеют ограничения:


Netstat опирается на данные из /proc, которые могут не отражать динамическое изменение состояния сокетов. В результате он часто показывает устаревшую информацию, например, “мертвые” или заброшенные сокеты, которые уже не участвуют в активной передаче.

При анализе состояний, таких как FIN_WAIT2, netstat может некорректно интерпретировать “зависшие” соединения. Это может ввести администратора в заблуждение относительно истинной загрузки и стабильности системы.

Преимущества ss: точные и детальные данные

Современный инструмент ss (socket statistics) из пакета iproute2 разработан для замены netstat и предоставляет гораздо более подробную и актуальную информацию о сетевых сокетах.

Он способен отсеивать “мертвые” соединения, корректно отображать переходные состояния и использовать расширенные опции для фильтрации и диагностики.

Например, чтобы увидеть информацию о TCP-сокетах, можно воспользоваться командой:

ss -tan


Здесь ключи означают:
-t – вывести только TCP-соединения,
-a – показать все (слушающие и установленные),
-n – вывод номеров портов в числовом виде.

Если вам нужно проверить, какие сокеты находятся в “FIN_WAIT2” состоянии, команда ss покажет их корректно, благодаря более точной сборке данных из ядра:

ss -tan state fin-wait-2


Особенно полезна опция -K. Этот параметр позволяет отправлять запросы к ядру для получения более глубокого анализа по каждому сокету – например, чтобы определить, какие “зависшие” сокеты реально не используются.

Это даёт возможность отфильтровать ложные сигналы и сконцентрироваться на проблемных соединениях. Пример использования:

ss -K state established


Эта команда попытается “убить” (удалить) неактивные или ошибочные соединения, предоставляя отчёт о том, какие сокеты останутся в системе после вмешательства. Такой уровень контроля невозможен с netstat.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🤔31😱1
Какой механизм позволяет запускать процесс в другом пространстве имён сети (network namespace)?
Anonymous Quiz
45%
chroot
19%
unshare
31%
setcap
4%
auditd
👍7🔥3🤔1😢1
Как узнать причину перезагрузки Linux

Неожиданная перезагрузка Linux-сервера — это всегда тревожный звоночек. Иногда виноват админ, иногда — ядро, а иногда — железо. Разберём, как правильно искать первопричину, чтобы не гадать на кофейной гуще.

1️⃣Кто и когда перезагружал?

Команды:

who -b     # Показывает последнее время загрузки
last reboot # Список всех событий перезагрузки


Это даст базовую точку отсчёта: когда именно сервер перезапустился.

2️⃣ Логи — наше всё

Сравниваем время перезагрузки с системными журналами:
• RHEL/CentOS: /var/log/messages
• Ubuntu/Debian: /var/log/syslog

Ищем фрагменты про shutdown, poweroff, reboot. Можно фильтровать, чтобы убрать шум:

sudo grep -iE 'recover|power|shutdown|rsyslogd|ups' /var/log/{messages,syslog}


В логах может быть явно видно: кто запустил ребут — root, какой сервис, или была ошибка питания.

3️⃣ auditd: ищем системные события

Если стоит auditd, смотрим аккуратные записи про загрузку и остановку:

sudo ausearch -i -m system_boot,system_shutdown | tail -4


Если видим две подряд строки SYSTEM_BOOT — значит, скорее всего, была авария или падение питания.

4️⃣
 
journalctl: работа с историей загрузок


Если настроено сохранение логов в /var/log/journal, можно получить историю перезагрузок:

journalctl --list-boots
journalctl -b -1 # Смотрим предыдущую загрузку


Так можно увидеть, были ли перед перезагрузкой ошибки типа OOM, kernel panic или странные systemd-события.

Если логов мало — проверьте, создан ли каталог для хранения:

sudo mkdir -p /var/log/journal
sudo systemd-tmpfiles --create --prefix /var/log/journal
sudo systemctl kill -s SIGUSR1 systemd-journald
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает механизм KSM (Kernel SamePage Merging) и для чего он используется в Linux?

Ответ: KSM (Kernel SamePage Merging) — это механизм в ядре Linux, который позволяет сливать идентичные страницы памяти, используемые разными процессами, с целью экономии оперативной памяти. Этот процесс особенно полезен в виртуализированных средах, где виртуальные машины могут использовать одинаковые данные.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥3