[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/systemd-journald-config":3,"mdc--crut0q-key":590,"mdc-8i0h2h-key":615,"mdc-jlw5dp-key":632,"mdc-bd7gk3-key":655,"mdc-5d7yzx-key":672,"mdc--suvavf-key":717,"mdc--7p75zo-key":734,"related-/guides/linux/journalctl-commands,/guides/linux/systemd-services-management,/guides/linux/logrotate-config":751},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":531,"code":531,"createdAt":532,"description":533,"difficulty":534,"draft":535,"estimatedTime":536,"extension":537,"faq":538,"howToSteps":548,"howToTotalTime":561,"image":531,"keywords":562,"locale":571,"meta":572,"navigation":193,"path":573,"platform":574,"related":575,"section":579,"seo":580,"severity":531,"stem":581,"summary":582,"tags":583,"twitterCreator":531,"twitterSite":531,"type":588,"updatedAt":532,"__hash__":589},"content_ru/guides/linux/systemd-journald-config.md","Настройка systemd-journald: контроль и сжатие логов Linux",[7,8,9,10],"Ubuntu 20.04 / 22.04 / 24.04","Debian 11 / 12","RHEL / AlmaLinux / Rocky Linux 8+","Fedora 38+","FixPedia Team",{"type":13,"value":14,"toc":522},"minimark",[15,20,29,33,36,61,64,86,93,97,104,134,141,145,148,162,165,292,313,316,320,323,341,344,362,367,371,374,389,396,419,426,442,453,457,474,502,518],[16,17,19],"h2",{"id":18},"зачем-оптимизировать-systemd-journald","Зачем оптимизировать systemd-journald",[21,22,23,24,28],"p",{},"Системный журналист Linux собирает события ядра, сервисов, приложений и аудита в едином формате. Без явных ограничений журнал может разрастись до нескольких гигабайт, особенно на серверах с высокой нагрузкой или на устройствах с небольшим SSD. Правильная конфигурация ",[25,26,27],"code",{},"systemd-journald"," гарантирует стабильную работу системы, экономит дисковое пространство и ускоряет анализ инцидентов за счёт сжатия и чёткой ротации.",[16,30,32],{"id":31},"требования-и-подготовка","Требования и подготовка",[21,34,35],{},"Перед началом убедитесь, что у вас есть:",[37,38,39,51,58],"ul",{},[40,41,42,43,46,47,50],"li",{},"Доступ к учётной записи с привилегиями ",[25,44,45],{},"sudo"," или ",[25,48,49],{},"root",".",[40,52,53,54,57],{},"Дистрибутив, использующий ",[25,55,56],{},"systemd"," (практически все современные Linux).",[40,59,60],{},"Резервная копия важных логов, если вы планируете сократить срок их хранения.",[21,62,63],{},"Проверьте текущее состояние и занимаемое место:",[65,66,71],"pre",{"className":67,"code":68,"language":69,"meta":70,"style":70},"language-bash shiki shiki-themes github-light github-dark","journalctl --disk-usage\n","bash","",[25,72,73],{"__ignoreMap":70},[74,75,78,82],"span",{"class":76,"line":77},"line",1,[74,79,81],{"class":80},"sScJk","journalctl",[74,83,85],{"class":84},"sj4cs"," --disk-usage\n",[21,87,88,89,92],{},"Команда покажет общий объём архивного и активного хранилища. Если папка ",[25,90,91],{},"/var/log/journal/"," существует, служба уже сохраняет данные на диск. Если её нет, логи живут только в оперативной памяти до перезагрузки.",[16,94,96],{"id":95},"шаг-1-создание-безопасного-файла-конфигурации","Шаг 1: Создание безопасного файла конфигурации",[21,98,99,100,103],{},"Не редактируйте ",[25,101,102],{},"/etc/systemd/journald.conf"," напрямую. При обновлении дистрибутива ваши изменения могут быть перезаписаны. Вместо этого используйте механизм drop-in директорий:",[65,105,107],{"className":67,"code":106,"language":69,"meta":70,"style":70},"sudo mkdir -p /etc/systemd/journald.conf.d\nsudo touch /etc/systemd/journald.conf.d/override.conf\n",[25,108,109,123],{"__ignoreMap":70},[74,110,111,113,117,120],{"class":76,"line":77},[74,112,45],{"class":80},[74,114,116],{"class":115},"sZZnC"," mkdir",[74,118,119],{"class":84}," -p",[74,121,122],{"class":115}," /etc/systemd/journald.conf.d\n",[74,124,126,128,131],{"class":76,"line":125},2,[74,127,45],{"class":80},[74,129,130],{"class":115}," touch",[74,132,133],{"class":115}," /etc/systemd/journald.conf.d/override.conf\n",[21,135,136,137,140],{},"Файл ",[25,138,139],{},"override.conf"," будет автоматически подгружаться основным конфигурационным файлом, сохраняя приоритет ваших параметров.",[16,142,144],{"id":143},"шаг-2-настройка-размера-ротации-и-сжатия","Шаг 2: Настройка размера, ротации и сжатия",[21,146,147],{},"Откройте созданный файл в удобном текстовом редакторе:",[65,149,151],{"className":67,"code":150,"language":69,"meta":70,"style":70},"sudo nano /etc/systemd/journald.conf.d/override.conf\n",[25,152,153],{"__ignoreMap":70},[74,154,155,157,160],{"class":76,"line":77},[74,156,45],{"class":80},[74,158,159],{"class":115}," nano",[74,161,133],{"class":115},[21,163,164],{},"Добавьте следующий блок конфигурации. Параметры задокументированы прямо в коде, чтобы вы понимали, за что отвечает каждая строка:",[65,166,170],{"className":167,"code":168,"language":169,"meta":70,"style":70},"language-ini shiki shiki-themes github-light github-dark","[Journal]\n# Режим хранения: persistent (на диск), volatile (только RAM), auto (по умолчанию)\nStorage=persistent\n\n# Максимальный объём всех архивных логов на диске (например, 500M, 2G)\nSystemMaxUse=500M\n\n# Гарантированный минимум свободного места на разделе, где лежат логи\nSystemKeepFree=100M\n\n# Максимальный размер одного файла журнала до ротации\nSystemMaxFileSize=50M\n\n# Срок хранения записей: 1month, 1y, 1year, etc.\nMaxRetentionSec=1month\n\n# Включить сжатие логов (экономит 50-70% места, нагрузка на CPU минимальна)\nCompress=yes\n\n# Отключить дублирование логов в syslog (чтобы не плодить записи в /var/log/syslog)\nForwardToSyslog=no\n","ini",[25,171,172,177,182,188,195,201,207,212,218,224,229,235,241,246,252,258,263,269,275,280,286],{"__ignoreMap":70},[74,173,174],{"class":76,"line":77},[74,175,176],{},"[Journal]\n",[74,178,179],{"class":76,"line":125},[74,180,181],{},"# Режим хранения: persistent (на диск), volatile (только RAM), auto (по умолчанию)\n",[74,183,185],{"class":76,"line":184},3,[74,186,187],{},"Storage=persistent\n",[74,189,191],{"class":76,"line":190},4,[74,192,194],{"emptyLinePlaceholder":193},true,"\n",[74,196,198],{"class":76,"line":197},5,[74,199,200],{},"# Максимальный объём всех архивных логов на диске (например, 500M, 2G)\n",[74,202,204],{"class":76,"line":203},6,[74,205,206],{},"SystemMaxUse=500M\n",[74,208,210],{"class":76,"line":209},7,[74,211,194],{"emptyLinePlaceholder":193},[74,213,215],{"class":76,"line":214},8,[74,216,217],{},"# Гарантированный минимум свободного места на разделе, где лежат логи\n",[74,219,221],{"class":76,"line":220},9,[74,222,223],{},"SystemKeepFree=100M\n",[74,225,227],{"class":76,"line":226},10,[74,228,194],{"emptyLinePlaceholder":193},[74,230,232],{"class":76,"line":231},11,[74,233,234],{},"# Максимальный размер одного файла журнала до ротации\n",[74,236,238],{"class":76,"line":237},12,[74,239,240],{},"SystemMaxFileSize=50M\n",[74,242,244],{"class":76,"line":243},13,[74,245,194],{"emptyLinePlaceholder":193},[74,247,249],{"class":76,"line":248},14,[74,250,251],{},"# Срок хранения записей: 1month, 1y, 1year, etc.\n",[74,253,255],{"class":76,"line":254},15,[74,256,257],{},"MaxRetentionSec=1month\n",[74,259,261],{"class":76,"line":260},16,[74,262,194],{"emptyLinePlaceholder":193},[74,264,266],{"class":76,"line":265},17,[74,267,268],{},"# Включить сжатие логов (экономит 50-70% места, нагрузка на CPU минимальна)\n",[74,270,272],{"class":76,"line":271},18,[74,273,274],{},"Compress=yes\n",[74,276,278],{"class":76,"line":277},19,[74,279,194],{"emptyLinePlaceholder":193},[74,281,283],{"class":76,"line":282},20,[74,284,285],{},"# Отключить дублирование логов в syslog (чтобы не плодить записи в /var/log/syslog)\n",[74,287,289],{"class":76,"line":288},21,[74,290,291],{},"ForwardToSyslog=no\n",[293,294,295],"blockquote",{},[21,296,297,298,301,302,46,305,308,309,312],{},"💡 Совет: Значение ",[25,299,300],{},"SystemMaxUse"," должно быть меньше, чем общий объём раздела ",[25,303,304],{},"/",[25,306,307],{},"/var/log",". Если оставить параметр пустым, ",[25,310,311],{},"journald"," использует 10% раздела или 4 ГБ (что наступит раньше).",[314,315],"in-article-ad",{},[16,317,319],{"id":318},"шаг-3-применение-изменений-и-перезапуск-службы","Шаг 3: Применение изменений и перезапуск службы",[21,321,322],{},"После сохранения файла проверьте синтаксис конфигурации:",[65,324,326],{"className":67,"code":325,"language":69,"meta":70,"style":70},"sudo systemd-analyze verify /etc/systemd/journald.conf\n",[25,327,328],{"__ignoreMap":70},[74,329,330,332,335,338],{"class":76,"line":77},[74,331,45],{"class":80},[74,333,334],{"class":115}," systemd-analyze",[74,336,337],{"class":115}," verify",[74,339,340],{"class":115}," /etc/systemd/journald.conf\n",[21,342,343],{},"Если команда не вывела ошибок, перезапустите службу журналирования:",[65,345,347],{"className":67,"code":346,"language":69,"meta":70,"style":70},"sudo systemctl restart systemd-journald\n",[25,348,349],{"__ignoreMap":70},[74,350,351,353,356,359],{"class":76,"line":77},[74,352,45],{"class":80},[74,354,355],{"class":115}," systemctl",[74,357,358],{"class":115}," restart",[74,360,361],{"class":115}," systemd-journald\n",[293,363,364],{},[21,365,366],{},"⚠️ Важно: В момент перезапуска может произойти кратковременная потеря нескольких строк логов, так как служба пересоздаёт файловые дескрипторы. Для production-нагрузки рекомендуется проводить операцию в часы низкой нагрузки.",[16,368,370],{"id":369},"проверка-результата","Проверка результата",[21,372,373],{},"Убедитесь, что служба работает корректно:",[65,375,377],{"className":67,"code":376,"language":69,"meta":70,"style":70},"systemctl status systemd-journald\n",[25,378,379],{"__ignoreMap":70},[74,380,381,384,387],{"class":76,"line":77},[74,382,383],{"class":80},"systemctl",[74,385,386],{"class":115}," status",[74,388,361],{"class":115},[21,390,391,392,395],{},"В выводе должен отображаться статус ",[25,393,394],{},"active (running)",". Теперь проверьте, применились ли новые лимиты, очистив старые записи:",[65,397,399],{"className":67,"code":398,"language":69,"meta":70,"style":70},"sudo journalctl --vacuum-time=7d\nsudo journalctl --disk-usage\n",[25,400,401,411],{"__ignoreMap":70},[74,402,403,405,408],{"class":76,"line":77},[74,404,45],{"class":80},[74,406,407],{"class":115}," journalctl",[74,409,410],{"class":84}," --vacuum-time=7d\n",[74,412,413,415,417],{"class":76,"line":125},[74,414,45],{"class":80},[74,416,407],{"class":115},[74,418,85],{"class":84},[21,420,421,422,425],{},"Команда ",[25,423,424],{},"--vacuum-time"," удалит все архивы старше указанной даты, мгновенно освободив место. Убедитесь, что файлы физически появились в директории:",[65,427,429],{"className":67,"code":428,"language":69,"meta":70,"style":70},"ls -lh /var/log/journal/\n",[25,430,431],{"__ignoreMap":70},[74,432,433,436,439],{"class":76,"line":77},[74,434,435],{"class":80},"ls",[74,437,438],{"class":84}," -lh",[74,440,441],{"class":115}," /var/log/journal/\n",[21,443,444,445,448,449,452],{},"Здесь должны отображаться сжатые файлы с расширением ",[25,446,447],{},".journal"," (или ",[25,450,451],{},".zst"," в новых версиях systemd).",[16,454,456],{"id":455},"возможные-проблемы","Возможные проблемы",[21,458,459,463,464,466,467,470,471,50],{},[460,461,462],"strong",{},"Служба не запускается после перезагрузки.","\nЧаще всего причина — опечатка в имени параметра или недопустимое значение в ",[25,465,139],{},". Проверьте журнал ошибок: ",[25,468,469],{},"sudo journalctl -xeu systemd-journald",". Исправьте значение и запустите ",[25,472,473],{},"sudo systemctl daemon-reload && sudo systemctl restart systemd-journald",[21,475,476,479,480,483,484,487,488,491,492,494,495,498,499,50],{},[460,477,478],{},"Логи пропали или не пишутся на диск.","\nПроверьте параметр ",[25,481,482],{},"Storage=persistent",". Если вы случайно установили ",[25,485,486],{},"volatile",", данные хранятся в ",[25,489,490],{},"/run/log/journal/"," и исчезают при ребуте. Также убедитесь, что у папки ",[25,493,91],{}," выставлены корректные права: ",[25,496,497],{},"sudo chown root:systemd-journal /var/log/journal/"," и ",[25,500,501],{},"sudo chmod 2755 /var/log/journal/",[21,503,504,509,510,514,515,50],{},[460,505,506,507,50],{},"Диск всё равно заполняется, несмотря на ",[25,508,300],{},"\nПараметр применяется только к ",[511,512,513],"em",{},"новым"," записям. Если старые архивы уже заняли 10 ГБ, лимит в 500 МБ их не удалит автоматически. Выполните принудительную очистку: ",[25,516,517],{},"sudo journalctl --vacuum-size=400M",[519,520,521],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":70,"searchDepth":125,"depth":125,"links":523},[524,525,526,527,528,529,530],{"id":18,"depth":125,"text":19},{"id":31,"depth":125,"text":32},{"id":95,"depth":125,"text":96},{"id":143,"depth":125,"text":144},{"id":318,"depth":125,"text":319},{"id":369,"depth":125,"text":370},{"id":455,"depth":125,"text":456},null,"2026-04-05 22:39:18","Пошаговая инструкция по настройке systemd-journald в Linux. Оптимизируйте хранение журналов, настройте ротацию и очистку за 10 минут. Читайте!","medium",false,"10-15 мин","md",[539,542,545],{"question":540,"answer":541},"Почему логи systemd-journald занимают слишком много места на диске?","По умолчанию в некоторых дистрибутивах используется режим `volatile` (хранение в ОЗУ), но при появлении папки `/var/log/journal/` служба автоматически переключается на постоянное хранение без строгих лимитов, что со временем заполняет раздел.",{"question":543,"answer":544},"Можно ли полностью отключить journald в пользу rsyslog?","Технически да, но это не рекомендуется. systemd глубоко интегрирован с journald для отслеживания зависимостей сервисов, аудита и работы `systemctl status`. Лучше настроить лимиты хранения.",{"question":546,"answer":547},"Удалятся ли старые логи после изменения конфигурации?","Нет. Новые параметры применяются только к будущим записям. Чтобы освободить место сразу, используйте команду `journalctl --vacuum-time=` или `--vacuum-size=`.",[549,552,555,558],{"name":550,"text":551},"Создание директории для переопределений","Выполните `sudo mkdir -p /etc/systemd/journald.conf.d`, чтобы изолировать ваши настройки от системного файла и сохранить их при обновлениях ОС.",{"name":553,"text":554},"Настройка лимитов хранения","Создайте файл `override.conf` с параметрами `Storage`, `SystemMaxUse`, `Compress` и `MaxRetentionSec` для точного контроля размера и срока жизни журналов.",{"name":556,"text":557},"Применение конфигурации","Перезапустите службу командой `sudo systemctl restart systemd-journald` и убедитесь, что синтаксис файлов не содержит ошибок.",{"name":559,"text":560},"Очистка устаревших записей","Запустите `sudo journalctl --vacuum-time=7d` для мгновенной очистки архивов старше недели и проверки освободившегося места.","PT15M",[563,564,565,566,567,568,569,570],"настройка systemd-journald","как ограничить размер журналов systemd","очистка логов journald linux","конфигурация journald.conf","ротация логов systemd persistent","journalctl управление дисковым пространством","systemd-journald占用磁盘空间","оптимизация системных логов ubuntu debian","ru_RU",{},"/guides/linux/systemd-journald-config","linux",[576,577,578],"/guides/linux/journalctl-commands","/guides/linux/systemd-services-management","/guides/linux/logrotate-config","Гайды Linux",{"title":5,"description":533},"guides/linux/systemd-journald-config","Разберёмся, как управлять системным журналированием Linux через systemd-journald. Вы научитесь ограничивать размер логов, настраивать ротацию и ускорять поиск по записям без потери важных данных.",[584,56,311,585,586,587],"Linux","администрирование","оптимизация","logs","guide","3Zbp2UMbPKHhY5yMXev2_1BE9R9EFla9gtHe35HWzSc",{"data":591,"body":592},{},{"type":49,"children":593},[594],{"type":595,"tag":21,"props":596,"children":597},"element",{},[598,601,606,608,613],{"type":599,"value":600},"text","По умолчанию в некоторых дистрибутивах используется режим ",{"type":595,"tag":25,"props":602,"children":604},{"className":603},[],[605],{"type":599,"value":486},{"type":599,"value":607}," (хранение в ОЗУ), но при появлении папки ",{"type":595,"tag":25,"props":609,"children":611},{"className":610},[],[612],{"type":599,"value":91},{"type":599,"value":614}," служба автоматически переключается на постоянное хранение без строгих лимитов, что со временем заполняет раздел.",{"data":616,"body":617},{},{"type":49,"children":618},[619],{"type":595,"tag":21,"props":620,"children":621},{},[622,624,630],{"type":599,"value":623},"Технически да, но это не рекомендуется. systemd глубоко интегрирован с journald для отслеживания зависимостей сервисов, аудита и работы ",{"type":595,"tag":25,"props":625,"children":627},{"className":626},[],[628],{"type":599,"value":629},"systemctl status",{"type":599,"value":631},". Лучше настроить лимиты хранения.",{"data":633,"body":634},{},{"type":49,"children":635},[636],{"type":595,"tag":21,"props":637,"children":638},{},[639,641,647,648,654],{"type":599,"value":640},"Нет. Новые параметры применяются только к будущим записям. Чтобы освободить место сразу, используйте команду ",{"type":595,"tag":25,"props":642,"children":644},{"className":643},[],[645],{"type":599,"value":646},"journalctl --vacuum-time=",{"type":599,"value":46},{"type":595,"tag":25,"props":649,"children":651},{"className":650},[],[652],{"type":599,"value":653},"--vacuum-size=",{"type":599,"value":50},{"data":656,"body":657},{},{"type":49,"children":658},[659],{"type":595,"tag":21,"props":660,"children":661},{},[662,664,670],{"type":599,"value":663},"Выполните ",{"type":595,"tag":25,"props":665,"children":667},{"className":666},[],[668],{"type":599,"value":669},"sudo mkdir -p /etc/systemd/journald.conf.d",{"type":599,"value":671},", чтобы изолировать ваши настройки от системного файла и сохранить их при обновлениях ОС.",{"data":673,"body":674},{},{"type":49,"children":675},[676],{"type":595,"tag":21,"props":677,"children":678},{},[679,681,686,688,694,696,701,702,708,709,715],{"type":599,"value":680},"Создайте файл ",{"type":595,"tag":25,"props":682,"children":684},{"className":683},[],[685],{"type":599,"value":139},{"type":599,"value":687}," с параметрами ",{"type":595,"tag":25,"props":689,"children":691},{"className":690},[],[692],{"type":599,"value":693},"Storage",{"type":599,"value":695},", ",{"type":595,"tag":25,"props":697,"children":699},{"className":698},[],[700],{"type":599,"value":300},{"type":599,"value":695},{"type":595,"tag":25,"props":703,"children":705},{"className":704},[],[706],{"type":599,"value":707},"Compress",{"type":599,"value":498},{"type":595,"tag":25,"props":710,"children":712},{"className":711},[],[713],{"type":599,"value":714},"MaxRetentionSec",{"type":599,"value":716}," для точного контроля размера и срока жизни журналов.",{"data":718,"body":719},{},{"type":49,"children":720},[721],{"type":595,"tag":21,"props":722,"children":723},{},[724,726,732],{"type":599,"value":725},"Перезапустите службу командой ",{"type":595,"tag":25,"props":727,"children":729},{"className":728},[],[730],{"type":599,"value":731},"sudo systemctl restart systemd-journald",{"type":599,"value":733}," и убедитесь, что синтаксис файлов не содержит ошибок.",{"data":735,"body":736},{},{"type":49,"children":737},[738],{"type":595,"tag":21,"props":739,"children":740},{},[741,743,749],{"type":599,"value":742},"Запустите ",{"type":595,"tag":25,"props":744,"children":746},{"className":745},[],[747],{"type":599,"value":748},"sudo journalctl --vacuum-time=7d",{"type":599,"value":750}," для мгновенной очистки архивов старше недели и проверки освободившегося места.",[752],{"id":753,"title":754,"appliesTo":755,"author":11,"body":760,"canonical":531,"code":531,"createdAt":1520,"description":1521,"difficulty":534,"draft":535,"estimatedTime":536,"extension":537,"faq":1522,"howToSteps":1535,"howToTotalTime":561,"image":531,"keywords":1551,"locale":571,"meta":1558,"navigation":193,"path":578,"platform":574,"related":1559,"section":579,"seo":1563,"severity":531,"stem":1564,"summary":1565,"tags":1566,"twitterCreator":531,"twitterSite":531,"type":588,"updatedAt":1520,"__hash__":1572},"content_ru/guides/linux/logrotate-config.md","Настройка logrotate в Linux: полное руководство",[756,757,758,759],"Ubuntu 20.04+","Debian 10+","CentOS 8+","RHEL 8+",{"type":13,"value":761,"toc":1508},[762,766,769,772,776,787,791,794,815,818,823,849,854,870,874,877,891,894,907,910,945,947,951,954,968,971,1041,1046,1140,1144,1147,1186,1189,1226,1230,1236,1239,1256,1259,1262,1278,1281,1296,1300,1303,1324,1334,1337,1352,1355,1386,1388,1391,1417,1420,1433,1435,1440,1451,1456,1463,1468,1482,1487,1505],[16,763,765],{"id":764},"зачем-нужна-ротация-логов","Зачем нужна ротация логов",[21,767,768],{},"На любом Linux-сервере приложения постоянно пишут логи — системные события, ошибки, доступы. Без управления эти файлы растут бесконечно и могут заполнить весь диск. Logrotate решает эту проблему: автоматически сжимает старые логи, переименовывает их по дате и удаляет устаревшие записи. Без ротации вы рискуете получить остановку сервиса из-за переполненного диска.",[21,770,771],{},"В этом гайде вы настроите ротацию логов для любого приложения: от Nginx и Apache до собственных скриптов.",[16,773,775],{"id":774},"требования","Требования",[37,777,778,781,784],{},[40,779,780],{},"Linux-сервер (Ubuntu, Debian, CentOS, RHEL)",[40,782,783],{},"Доступ к терминалу с правами root или sudo",[40,785,786],{},"Базовое понимание работы с конфигурационными файлами",[16,788,790],{"id":789},"шаг-1-проверка-установки-logrotate","Шаг 1: Проверка установки logrotate",[21,792,793],{},"Большинство дистрибутивов поставляют logrotate «из коробки». Проверьте наличие:",[65,795,797],{"className":67,"code":796,"language":69,"meta":70,"style":70},"which logrotate\nlogrotate --version\n",[25,798,799,807],{"__ignoreMap":70},[74,800,801,804],{"class":76,"line":77},[74,802,803],{"class":84},"which",[74,805,806],{"class":115}," logrotate\n",[74,808,809,812],{"class":76,"line":125},[74,810,811],{"class":80},"logrotate",[74,813,814],{"class":84}," --version\n",[21,816,817],{},"Если команда не найдена, установите:",[21,819,820],{},[460,821,822],{},"Ubuntu/Debian:",[65,824,826],{"className":67,"code":825,"language":69,"meta":70,"style":70},"sudo apt update\nsudo apt install logrotate\n",[25,827,828,838],{"__ignoreMap":70},[74,829,830,832,835],{"class":76,"line":77},[74,831,45],{"class":80},[74,833,834],{"class":115}," apt",[74,836,837],{"class":115}," update\n",[74,839,840,842,844,847],{"class":76,"line":125},[74,841,45],{"class":80},[74,843,834],{"class":115},[74,845,846],{"class":115}," install",[74,848,806],{"class":115},[21,850,851],{},[460,852,853],{},"CentOS/RHEL:",[65,855,857],{"className":67,"code":856,"language":69,"meta":70,"style":70},"sudo dnf install logrotate\n",[25,858,859],{"__ignoreMap":70},[74,860,861,863,866,868],{"class":76,"line":77},[74,862,45],{"class":80},[74,864,865],{"class":115}," dnf",[74,867,846],{"class":115},[74,869,806],{"class":115},[16,871,873],{"id":872},"шаг-2-структура-конфигурационных-файлов","Шаг 2: Структура конфигурационных файлов",[21,875,876],{},"Logrotate использует два уровня конфигурации:",[37,878,879,885],{},[40,880,881,884],{},[25,882,883],{},"/etc/logrotate.conf"," — главный файл с глобальными настройками",[40,886,887,890],{},[25,888,889],{},"/etc/logrotate.d/"," — директория с отдельными конфигами для приложений",[21,892,893],{},"Просмотрите главный конфиг:",[65,895,897],{"className":67,"code":896,"language":69,"meta":70,"style":70},"cat /etc/logrotate.conf\n",[25,898,899],{"__ignoreMap":70},[74,900,901,904],{"class":76,"line":77},[74,902,903],{"class":80},"cat",[74,905,906],{"class":115}," /etc/logrotate.conf\n",[21,908,909],{},"Типичное содержимое:",[65,911,913],{"className":167,"code":912,"language":169,"meta":70,"style":70},"# Глобальные настройки\nweekly          # ротация раз в неделю\nrotate 4        # хранить 4 старые копии\ncreate          # создавать новый пустой файл после ротации\ncompress        # сжимать старые логи (обычно через gzip)\ninclude /etc/logrotate.d\n",[25,914,915,920,925,930,935,940],{"__ignoreMap":70},[74,916,917],{"class":76,"line":77},[74,918,919],{},"# Глобальные настройки\n",[74,921,922],{"class":76,"line":125},[74,923,924],{},"weekly          # ротация раз в неделю\n",[74,926,927],{"class":76,"line":184},[74,928,929],{},"rotate 4        # хранить 4 старые копии\n",[74,931,932],{"class":76,"line":190},[74,933,934],{},"create          # создавать новый пустой файл после ротации\n",[74,936,937],{"class":76,"line":197},[74,938,939],{},"compress        # сжимать старые логи (обычно через gzip)\n",[74,941,942],{"class":76,"line":203},[74,943,944],{},"include /etc/logrotate.d\n",[314,946],{},[16,948,950],{"id":949},"шаг-3-создание-конфига-для-приложения","Шаг 3: Создание конфига для приложения",[21,952,953],{},"Допустим, вы хотите ротировать логи веб-сервера Nginx. Создайте файл:",[65,955,957],{"className":67,"code":956,"language":69,"meta":70,"style":70},"sudo nano /etc/logrotate.d/nginx\n",[25,958,959],{"__ignoreMap":70},[74,960,961,963,965],{"class":76,"line":77},[74,962,45],{"class":80},[74,964,159],{"class":115},[74,966,967],{"class":115}," /etc/logrotate.d/nginx\n",[21,969,970],{},"Добавьте настройки:",[65,972,974],{"className":167,"code":973,"language":169,"meta":70,"style":70},"/var/log/nginx/*.log {\n    daily              # ротация каждый день\n    missingok          # не считать ошибкой отсутствие файла\n    rotate 14          # хранить 14 архивных копий\n    compress           # сжимать архивы (gzip)\n    delaycompress      # сжимать не сразу, а на следующий день\n    notifempty         # не ротировать пустые файлы\n    create 0640 www-data adm  # права на новый файл\n    sharedscripts      # скрипты выполняются один раз для всех файлов\n    postrotate\n        [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`\n    endscript\n}\n",[25,975,976,981,986,991,996,1001,1006,1011,1016,1021,1026,1031,1036],{"__ignoreMap":70},[74,977,978],{"class":76,"line":77},[74,979,980],{},"/var/log/nginx/*.log {\n",[74,982,983],{"class":76,"line":125},[74,984,985],{},"    daily              # ротация каждый день\n",[74,987,988],{"class":76,"line":184},[74,989,990],{},"    missingok          # не считать ошибкой отсутствие файла\n",[74,992,993],{"class":76,"line":190},[74,994,995],{},"    rotate 14          # хранить 14 архивных копий\n",[74,997,998],{"class":76,"line":197},[74,999,1000],{},"    compress           # сжимать архивы (gzip)\n",[74,1002,1003],{"class":76,"line":203},[74,1004,1005],{},"    delaycompress      # сжимать не сразу, а на следующий день\n",[74,1007,1008],{"class":76,"line":209},[74,1009,1010],{},"    notifempty         # не ротировать пустые файлы\n",[74,1012,1013],{"class":76,"line":214},[74,1014,1015],{},"    create 0640 www-data adm  # права на новый файл\n",[74,1017,1018],{"class":76,"line":220},[74,1019,1020],{},"    sharedscripts      # скрипты выполняются один раз для всех файлов\n",[74,1022,1023],{"class":76,"line":226},[74,1024,1025],{},"    postrotate\n",[74,1027,1028],{"class":76,"line":231},[74,1029,1030],{},"        [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`\n",[74,1032,1033],{"class":76,"line":237},[74,1034,1035],{},"    endscript\n",[74,1037,1038],{"class":76,"line":243},[74,1039,1040],{},"}\n",[21,1042,1043],{},[460,1044,1045],{},"Разбор ключевых параметров:",[1047,1048,1049,1062],"table",{},[1050,1051,1052],"thead",{},[1053,1054,1055,1059],"tr",{},[1056,1057,1058],"th",{},"Параметр",[1056,1060,1061],{},"Назначение",[1063,1064,1065,1076,1086,1100,1110,1120,1130],"tbody",{},[1053,1066,1067,1073],{},[1068,1069,1070],"td",{},[25,1071,1072],{},"daily/weekly/monthly",[1068,1074,1075],{},"Как часто делать ротацию",[1053,1077,1078,1083],{},[1068,1079,1080],{},[25,1081,1082],{},"rotate N",[1068,1084,1085],{},"Сколько старых копий хранить",[1053,1087,1088,1093],{},[1068,1089,1090],{},[25,1091,1092],{},"compress",[1068,1094,1095,1096,1099],{},"Сжимать архивы (добавляет ",[25,1097,1098],{},".gz",")",[1053,1101,1102,1107],{},[1068,1103,1104],{},[25,1105,1106],{},"delaycompress",[1068,1108,1109],{},"Сжать на следующий цикл",[1053,1111,1112,1117],{},[1068,1113,1114],{},[25,1115,1116],{},"missingok",[1068,1118,1119],{},"Не报错 если файл отсутствует",[1053,1121,1122,1127],{},[1068,1123,1124],{},[25,1125,1126],{},"notifempty",[1068,1128,1129],{},"Пропустить пустые файлы",[1053,1131,1132,1137],{},[1068,1133,1134],{},[25,1135,1136],{},"size 100M",[1068,1138,1139],{},"Ротировать при достижении размера",[16,1141,1143],{"id":1142},"шаг-4-пример-для-нескольких-приложений","Шаг 4: Пример для нескольких приложений",[21,1145,1146],{},"Конфиг для MySQL/MariaDB:",[65,1148,1150],{"className":167,"code":1149,"language":169,"meta":70,"style":70},"/var/log/mysql/*.log {\n    daily\n    rotate 7\n    compress\n    missingok\n    create 0600 mysql mysql\n}\n",[25,1151,1152,1157,1162,1167,1172,1177,1182],{"__ignoreMap":70},[74,1153,1154],{"class":76,"line":77},[74,1155,1156],{},"/var/log/mysql/*.log {\n",[74,1158,1159],{"class":76,"line":125},[74,1160,1161],{},"    daily\n",[74,1163,1164],{"class":76,"line":184},[74,1165,1166],{},"    rotate 7\n",[74,1168,1169],{"class":76,"line":190},[74,1170,1171],{},"    compress\n",[74,1173,1174],{"class":76,"line":197},[74,1175,1176],{},"    missingok\n",[74,1178,1179],{"class":76,"line":203},[74,1180,1181],{},"    create 0600 mysql mysql\n",[74,1183,1184],{"class":76,"line":209},[74,1185,1040],{},[21,1187,1188],{},"Конфиг для Python-приложения с ротацией по размеру:",[65,1190,1192],{"className":167,"code":1191,"language":169,"meta":70,"style":70},"/var/log/myapp/*.log {\n    size 50M\n    rotate 5\n    compress\n    missingok\n    notifempty\n}\n",[25,1193,1194,1199,1204,1209,1213,1217,1222],{"__ignoreMap":70},[74,1195,1196],{"class":76,"line":77},[74,1197,1198],{},"/var/log/myapp/*.log {\n",[74,1200,1201],{"class":76,"line":125},[74,1202,1203],{},"    size 50M\n",[74,1205,1206],{"class":76,"line":184},[74,1207,1208],{},"    rotate 5\n",[74,1210,1211],{"class":76,"line":190},[74,1212,1171],{},[74,1214,1215],{"class":76,"line":197},[74,1216,1176],{},[74,1218,1219],{"class":76,"line":203},[74,1220,1221],{},"    notifempty\n",[74,1223,1224],{"class":76,"line":209},[74,1225,1040],{},[16,1227,1229],{"id":1228},"шаг-5-тестирование-конфигурации","Шаг 5: Тестирование конфигурации",[21,1231,1232,1235],{},[460,1233,1234],{},"Важно:"," всегда тестируйте новые настройки перед применением.",[21,1237,1238],{},"Режим отладки (без реальных изменений):",[65,1240,1242],{"className":67,"code":1241,"language":69,"meta":70,"style":70},"sudo logrotate -d /etc/logrotate.conf\n",[25,1243,1244],{"__ignoreMap":70},[74,1245,1246,1248,1251,1254],{"class":76,"line":77},[74,1247,45],{"class":80},[74,1249,1250],{"class":115}," logrotate",[74,1252,1253],{"class":84}," -d",[74,1255,906],{"class":115},[21,1257,1258],{},"Вы увидите, какие действия выполнит logrotate, но файлы останутся нетронутыми.",[21,1260,1261],{},"Принудительный запуск (для проверки прямо сейчас):",[65,1263,1265],{"className":67,"code":1264,"language":69,"meta":70,"style":70},"sudo logrotate -f /etc/logrotate.conf\n",[25,1266,1267],{"__ignoreMap":70},[74,1268,1269,1271,1273,1276],{"class":76,"line":77},[74,1270,45],{"class":80},[74,1272,1250],{"class":115},[74,1274,1275],{"class":84}," -f",[74,1277,906],{"class":115},[21,1279,1280],{},"После этого проверьте, появились ли архивные файлы:",[65,1282,1284],{"className":67,"code":1283,"language":69,"meta":70,"style":70},"ls -la /var/log/nginx/\n",[25,1285,1286],{"__ignoreMap":70},[74,1287,1288,1290,1293],{"class":76,"line":77},[74,1289,435],{"class":80},[74,1291,1292],{"class":84}," -la",[74,1294,1295],{"class":115}," /var/log/nginx/\n",[16,1297,1299],{"id":1298},"шаг-6-настройка-автоматического-запуска","Шаг 6: Настройка автоматического запуска",[21,1301,1302],{},"Logrotate обычно вызывается через cron. Проверьте:",[65,1304,1306],{"className":67,"code":1305,"language":69,"meta":70,"style":70},"ls -la /etc/cron.daily/logrotate\ncat /etc/cron.d/logrotate\n",[25,1307,1308,1317],{"__ignoreMap":70},[74,1309,1310,1312,1314],{"class":76,"line":77},[74,1311,435],{"class":80},[74,1313,1292],{"class":84},[74,1315,1316],{"class":115}," /etc/cron.daily/logrotate\n",[74,1318,1319,1321],{"class":76,"line":125},[74,1320,903],{"class":80},[74,1322,1323],{"class":115}," /etc/cron.d/logrotate\n",[21,1325,1326,1327,1330,1331,50],{},"В Ubuntu/Debian это скрипт в ",[25,1328,1329],{},"/etc/cron.daily/",", который запускается раз в сутки. В CentOS/RHEL может использоваться ",[25,1332,1333],{},"/etc/cron.daily/logrotate",[21,1335,1336],{},"Если нужно изменить время запуска, отредактируйте cron:",[65,1338,1340],{"className":67,"code":1339,"language":69,"meta":70,"style":70},"sudo crontab -e\n",[25,1341,1342],{"__ignoreMap":70},[74,1343,1344,1346,1349],{"class":76,"line":77},[74,1345,45],{"class":80},[74,1347,1348],{"class":115}," crontab",[74,1350,1351],{"class":84}," -e\n",[21,1353,1354],{},"Добавьте строку (например, запуск в 3 часа ночи):",[65,1356,1358],{"className":67,"code":1357,"language":69,"meta":70,"style":70},"0 3 * * * /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf\n",[25,1359,1360],{"__ignoreMap":70},[74,1361,1362,1365,1368,1371,1373,1375,1378,1381,1384],{"class":76,"line":77},[74,1363,1364],{"class":80},"0",[74,1366,1367],{"class":84}," 3",[74,1369,1370],{"class":84}," *",[74,1372,1370],{"class":84},[74,1374,1370],{"class":84},[74,1376,1377],{"class":115}," /usr/sbin/logrotate",[74,1379,1380],{"class":84}," -s",[74,1382,1383],{"class":115}," /var/lib/logrotate/logrotate.status",[74,1385,906],{"class":115},[16,1387,370],{"id":369},[21,1389,1390],{},"После настройки убедитесь, что:",[1392,1393,1394,1403,1408,1414],"ol",{},[40,1395,1396,1397,695,1400],{},"Архивные файлы появляются с датой или номером: ",[25,1398,1399],{},"access.log.1",[25,1401,1402],{},"access.log.2.gz",[40,1404,1405,1406],{},"Старые файлы сжимаются в ",[25,1407,1098],{},[40,1409,1410,1411],{},"Количество файлов не превышает значение ",[25,1412,1413],{},"rotate",[40,1415,1416],{},"Логи старше срока хранения удаляются автоматически",[21,1418,1419],{},"Проверьте через неделю:",[65,1421,1423],{"className":67,"code":1422,"language":69,"meta":70,"style":70},"ls -lh /var/log/nginx/\n",[25,1424,1425],{"__ignoreMap":70},[74,1426,1427,1429,1431],{"class":76,"line":77},[74,1428,435],{"class":80},[74,1430,438],{"class":84},[74,1432,1295],{"class":115},[16,1434,456],{"id":455},[21,1436,1437],{},[460,1438,1439],{},"Логи не ротируются",[37,1441,1442,1448],{},[40,1443,1444,1445],{},"Проверьте права доступа: ",[25,1446,1447],{},"ls -la /var/log/приложение/",[40,1449,1450],{},"Убедитесь, что путь в конфиге совпадает с реальным расположением логов",[21,1452,1453],{},[460,1454,1455],{},"Ошибка «error: destination /var/log/... already exists»",[37,1457,1458],{},[40,1459,1460,1461],{},"Удалите старые архивы вручную или увеличьте значение ",[25,1462,1413],{},[21,1464,1465],{},[460,1466,1467],{},"Postrotate-скрипт не выполняется",[37,1469,1470,1479],{},[40,1471,1472,1473,498,1476],{},"Проверьте синтаксис: команда между ",[25,1474,1475],{},"postrotate",[25,1477,1478],{},"endscript",[40,1480,1481],{},"Убедитесь, что процесс (nginx, apache) запущен",[21,1483,1484],{},[460,1485,1486],{},"Диск всё равно заполняется",[37,1488,1489,1495],{},[40,1490,1491,1492,1494],{},"Проверьте, что ",[25,1493,1092],{}," включён",[40,1496,1497,1498,1500,1501,1504],{},"Уменьшите значение ",[25,1499,1413],{}," или добавьте ",[25,1502,1503],{},"size"," для более частой ротации",[519,1506,1507],{},"html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":70,"searchDepth":125,"depth":125,"links":1509},[1510,1511,1512,1513,1514,1515,1516,1517,1518,1519],{"id":764,"depth":125,"text":765},{"id":774,"depth":125,"text":775},{"id":789,"depth":125,"text":790},{"id":872,"depth":125,"text":873},{"id":949,"depth":125,"text":950},{"id":1142,"depth":125,"text":1143},{"id":1228,"depth":125,"text":1229},{"id":1298,"depth":125,"text":1299},{"id":369,"depth":125,"text":370},{"id":455,"depth":125,"text":456},"2026-04-09 11:47:22","Пошаговая инструкция по настройке ротации логов в Linux за 10 минут. Автоматическое сжатие, удаление старых файлов, настройка расписания.",[1523,1526,1529,1532],{"question":1524,"answer":1525},"Как проверить, работает ли logrotate?","Запустите `logrotate -d /etc/logrotate.conf` для тестового режима или `logrotate -f /etc/logrotate.conf` для принудительного запуска.",{"question":1527,"answer":1528},"Почему логи не ротируются?","Проверьте права доступа к файлам, настройку `missingok` (игнорирует отсутствующие файлы) и убедитесь, что cron запускает logrotate.",{"question":1530,"answer":1531},"Как изменить частоту ротации?","В конфиге укажите `daily`, `weekly` или `monthly`. По умолчанию в Ubuntu/Debian — ежедневно, в CentOS — еженедельно.",{"question":1533,"answer":1534},"Нужно ли устанавливать logrotate отдельно?","В большинстве дистрибутивов он предустановлен. Проверьте: `which logrotate` или `rpm -q logrotate`.",[1536,1539,1542,1545,1548],{"name":1537,"text":1538},"Проверьте наличие logrotate","Убедитесь, что утилита установлена в системе: `which logrotate` или `logrotate --version`.",{"name":1540,"text":1541},"Изучите структуру конфигов","Основной файл — `/etc/logrotate.conf`, дополнительные правила — в `/etc/logrotate.d/`.",{"name":1543,"text":1544},"Создайте конфигурацию","Создайте или отредактируйте конфиг в `/etc/logrotate.d/` для вашего приложения с нужными параметрами.",{"name":1546,"text":1547},"Протестируйте конфигурацию","Запустите `logrotate -d` для проверки без применения изменений.",{"name":1549,"text":1550},"Настройте автоматический запуск","Убедитесь, что logrotate вызывается через cron (обычно в `/etc/cron.daily/logrotate`).",[1552,1553,1554,1555,1556,1557],"настройка logrotate","ротация логов linux","logrotate.conf","автоматическое удаление логов","сжатие логов logrotate","logrotate размер файла",{},[1560,1561,1562],"/guides/linux/monitoring-disk-space","/guides/linux/nginx-logs-setup","/guides/linux/systemd-timer-guide",{"title":754,"description":1521},"guides/linux/logrotate-config","Узнайте, как настроить автоматическую ротацию логов с помощью logrotate, чтобы освободить дисковое пространство и упростить администрирование Linux-сервера.",[811,574,585,1567,1568,1569,1570,1571],"логи","ротация","debian","ubuntu","centos","HXMbr76fOPRKn3kFG6MSKPb-mq_jPnyL_nMM0QTrx30"]