FUSE #9: unionfs-fuse — накладываем директории друг на друга

mergerfs из восьмого выпуска складывает несколько дисков в один пул по свободному месту — а unionfs-fuse решает другую задачу: накладывает каталоги друг на друга по приоритету, как слои. Файл ищется сначала в верхней ветке, и только если его там нет — в следующей, и так вниз по списку. ...

October 23, 2026 · llexa

osquery: система как SQL-база

auditd из выпуска о syscall-логах пишет непрерывный поток событий ядра — кто, когда и что вызвал. osquery устроен принципиально иначе: это не лог, а движок, который превращает текущее состояние системы в набор SQL-таблиц. Вместо ps, netstat, lsof и dpkg -l по отдельности — один SELECT с JOIN между ними. ...

October 23, 2026 · llexa

Обзор новинок #15: релизы середины октября

Снова про обновления, которые стоит накатить, а не просто отметить в changelog. rclone — консольный клиент для синхронизации с почти любым облачным хранилищем (S3, WebDAV, Google Drive и ещё под полсотни бэкендов) теми же командами, что rsync для локальных файлов. В v1.75.1 закрыт целый пучок дыр из v1.75.0 сразу: command injection через FTP/SFTP, утечка credentials при редиректах в S3/WebDAV, path traversal в serve restic и неавторизованный доступ к pprof в remote-control API — если где-то торчит rclone rcd наружу, обновление не опциональное. Заодно добавили два новых S3-совместимых провайдера и команду config unset https://github.com/rclone/rclone/releases ...

October 23, 2026 · llexa

blackbox_exporter: проверяем сервис снаружи, а не изнутри

Обычные Prometheus-экспортеры (node_exporter, postgres_exporter) отдают метрики изнутри процесса или хоста — то, что видно самому сервису о себе. blackbox_exporter смотрит снаружи: стучится в эндпоинт по HTTP/TCP/ICMP/DNS/gRPC и фиксирует, ответил ли он вообще и за сколько. ...

October 22, 2026 · llexa

Fluent Bit: ещё легче, чем Vector

Vector уже закрывал тут задачу “собрать логи без JVM Logstash” — бинарник на Rust без прогрева и без гигабайта памяти на старте. Fluent Bit решает ту же задачу с другим допущением: он написан на C и исходно проектировался под embedded- и sidecar-сценарии, где процесс крутится не на отдельной VM с запасом ресурсов, а третьим-четвёртым соседом в поде или на роутере. ...

October 22, 2026 · llexa

nftables с нуля #3: limit rate и sets вместо портянки правил

Прошлый выпуск закрыл NAT — masquerade и port forwarding. Сегодня — два механизма nftables, которые обычно всплывают, когда базовый набор правил начинает разрастаться: limit rate для троттлинга и sets для проверки сразу против списка адресов. ...

October 22, 2026 · llexa

DBA на минималках #14: checkpoint-тюнинг

По умолчанию checkpoint_timeout — 5 минут, а max_wal_size — 1 GB: PostgreSQL запускает checkpoint каждые 5 минут или раньше, если накопилось больше гигабайта WAL. На нагруженной базе второе условие срабатывает первым, и checkpoint случается заметно чаще, чем каждые 5 минут — сервер постоянно сбрасывает грязные буферы на диск, и это видно по скачкам latency в самые непредсказуемые моменты. Проверить, насколько часто это происходит, можно по логу: если включить checkpoint_warning (по умолчанию 30 секунд) и checkpoint’ы начинают случаться чаще этого порога, PostgreSQL сам пишет в лог предупреждение, что max_wal_size стоит увеличить. Частое появление такого сообщения — не повод для паники с первого раза, но если оно встречается регулярно, значит параметры checkpoint пора пересматривать. ...

October 21, 2026 · llexa

lnav: логи как база данных

Обычный разбор инцидента — это tail -f в одном терминале, grep в другом и попытка держать в голове, какая строка из syslog произошла раньше строки из лога nginx. lnav решает это иначе: скармливаешь ему сразу несколько файлов, а он сам определяет формат каждого (syslog, access-логи Apache/nginx, strace, просто “timestamp + сообщение”) и склеивает всё в единую ленту, отсортированную по времени, вне зависимости от того, из какого файла строка пришла. Запускается без параметров поиска формата — просто: ...

October 21, 2026 · llexa

sd: sed без escape-ада

Классика боли с sed — экранировать скобки, слеши и спецсимволы так, чтобы шелл их не съел раньше, чем сам sed их увидит: sed 's/\(foo\)\/\(bar\)/\2\/\1/' читается с третьего раза, а на реальном пути с точками и квадратными скобками превращается в ребус. sd написан на Rust и решает именно эту проблему — синтаксис замены простой и привычный, без тройного экранирования одного и того же символа. Базовая замена — без слешей и без g в конце, подстановка глобальная по умолчанию: ...

October 21, 2026 · llexa

seccomp: белый список системных вызовов для процесса

seccomp (secure computing mode) — механизм ядра Linux, который ограничивает процесс конкретным набором системных вызовов: всё, чего нет в профиле, ядро обрывает ещё до выполнения, обычно возвращая EPERM вместо реального эффекта вызова. В отличие от прав доступа к файлам или capabilities, это фильтр на уровне самого интерфейса ядро-процесс — даже если процесс получил root внутри контейнера, вызов, которого нет в whitelist (например, ptrace или mount), просто не сработает. Docker вешает дефолтный seccomp-профиль на каждый контейнер автоматически, если не указано иное — из ~300+ syscall’ов он блокирует около 44, в основном связанных с управлением ядром и отладкой (ptrace, add_key, request_key, большая часть mount). Podman и другие рантаймы на базе crun/runc используют концептуально тот же подход с собственным JSON-профилем. Отключить фильтрацию или подставить свой профиль — один флаг: ...

October 20, 2026 · llexa