[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/linux-logrotate-alternatives":3,"mdc-vv4zoi-key":658,"mdc--n26hx6-key":668,"mdc-xs96by-key":691,"mdc-au384s-key":714,"mdc--q2v97v-key":730,"mdc--1q2806-key":752,"mdc--wiimiq-key":760,"related-/guides/linux/monitoring-journalctl-systemd,/guides/linux/nastroyka-logwatch-linux,/guides/linux/optimizaciya-diskovogo-prostranstva":768},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":598,"code":598,"createdAt":599,"description":600,"difficulty":601,"draft":602,"estimatedTime":603,"extension":604,"faq":605,"howToSteps":615,"howToTotalTime":628,"image":598,"keywords":629,"locale":638,"meta":639,"navigation":271,"path":640,"platform":641,"related":642,"section":646,"seo":647,"severity":598,"stem":648,"summary":649,"tags":650,"twitterCreator":598,"twitterSite":598,"type":656,"updatedAt":599,"__hash__":657},"content_ru/guides/linux/linux-logrotate-alternatives.md","Заменяем logrotate: лучшие альтернативы ротации логов в Linux",[7,8,9,10],"Ubuntu 20.04+","Debian 11+","RHEL/CentOS 9","AlmaLinux/Rocky 9","FixPedia Team",{"type":13,"value":14,"toc":588},"minimark",[15,20,29,33,52,58,62,65,106,126,130,133,183,186,216,223,226,230,237,355,370,374,389,418,429,446,450,453,508,519,523,584],[16,17,19],"h2",{"id":18},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,22,23,24,28],"p",{},"Стандартный ",[25,26,27],"code",{},"logrotate"," десятилетиями справлялся с базовыми задачами администрирования, но современные приложения генерируют гигабайты структурированных данных ежедневно. Ручные конфигурации через cron, отсутствие встроенной валидации и проблемы с блокировкой файлов при высокой нагрузке заставляют специалистов искать более надёжные решения. Переход на современные альтернативы даёт автоматическую проверку конфигов перед применением, сжатие на лету без потери производительности и возможность мгновенной отправки архивов в облачные хранилища или системы мониторинга. Вы получите стабильный процесс очистки дискового пространства и защиту от переполнения разделов.",[16,30,32],{"id":31},"требования-подготовка","Требования / Подготовка",[21,34,35,36,39,40,43,44,47,48,51],{},"Перед началом работы убедитесь, что у вас есть права ",[25,37,38],{},"root"," или доступ через ",[25,41,42],{},"sudo",". На сервере должен быть настроен ",[25,45,46],{},"systemd",", так как большинство современных инструментов используют его для управления жизненным циклом. Заранее подготовьте резервную копию директории ",[25,49,50],{},"/var/log"," и текущих конфигов ротации.",[53,54,55],"blockquote",{},[21,56,57],{},"⚠️ Важно: Тестируйте миграцию на staging-окружении или в ночные часы низкой нагрузки, чтобы избежать случайной потери критичных журналов или блокировки записи приложениями.",[16,59,61],{"id":60},"шаг-1-аудит-текущей-ротации","Шаг 1: Аудит текущей ротации",[21,63,64],{},"Оцените текущую нагрузку на подсистему ввода-вывода и объёмы генерируемых данных. Введите команды:",[66,67,72],"pre",{"className":68,"code":69,"language":70,"meta":71,"style":71},"language-bash shiki shiki-themes github-light github-dark","du -sh /var/log/*\nls -la /etc/logrotate.d/\n","bash","",[25,73,74,94],{"__ignoreMap":71},[75,76,79,83,87,91],"span",{"class":77,"line":78},"line",1,[75,80,82],{"class":81},"sScJk","du",[75,84,86],{"class":85},"sj4cs"," -sh",[75,88,90],{"class":89},"sZZnC"," /var/log/",[75,92,93],{"class":85},"*\n",[75,95,97,100,103],{"class":77,"line":96},2,[75,98,99],{"class":81},"ls",[75,101,102],{"class":85}," -la",[75,104,105],{"class":89}," /etc/logrotate.d/\n",[21,107,108,109,113,114,117,118,121,122,125],{},"Если объём логов превышает 5 ГБ в день или требуется отправка данных в Grafana/Loki/ELK, выбирайте ",[110,111,112],"strong",{},"Vector"," (написан на Rust, высокая производительность). Для простой локальной ротации с минимальными затратами памяти подойдёт ",[110,115,116],{},"logrotate-ng"," или ",[110,119,120],{},"swatch",". В этом руководстве мы настроим ",[25,123,124],{},"vector"," как наиболее универсальное и производительное решение.",[16,127,129],{"id":128},"шаг-2-установка-и-базовая-настройка","Шаг 2: Установка и базовая настройка",[21,131,132],{},"Добавьте официальный репозиторий и установите пакет. Пример для Debian/Ubuntu:",[66,134,136],{"className":68,"code":135,"language":70,"meta":71,"style":71},"curl -1sLf 'https://repositories.timber.io/public/vector/install.bash' | sudo bash\nsudo apt update && sudo apt install vector\n",[25,137,138,159],{"__ignoreMap":71},[75,139,140,143,146,149,153,156],{"class":77,"line":78},[75,141,142],{"class":81},"curl",[75,144,145],{"class":85}," -1sLf",[75,147,148],{"class":89}," 'https://repositories.timber.io/public/vector/install.bash'",[75,150,152],{"class":151},"szBVR"," |",[75,154,155],{"class":81}," sudo",[75,157,158],{"class":89}," bash\n",[75,160,161,163,166,169,173,175,177,180],{"class":77,"line":96},[75,162,42],{"class":81},[75,164,165],{"class":89}," apt",[75,167,168],{"class":89}," update",[75,170,172],{"class":171},"sVt8B"," && ",[75,174,42],{"class":81},[75,176,165],{"class":89},[75,178,179],{"class":89}," install",[75,181,182],{"class":89}," vector\n",[21,184,185],{},"Для RHEL/CentOS 9 / AlmaLinux:",[66,187,189],{"className":68,"code":188,"language":70,"meta":71,"style":71},"curl -1sLf 'https://repositories.timber.io/public/vector/install.bash' | sudo bash\nsudo dnf install vector\n",[25,190,191,205],{"__ignoreMap":71},[75,192,193,195,197,199,201,203],{"class":77,"line":78},[75,194,142],{"class":81},[75,196,145],{"class":85},[75,198,148],{"class":89},[75,200,152],{"class":151},[75,202,155],{"class":81},[75,204,158],{"class":89},[75,206,207,209,212,214],{"class":77,"line":96},[75,208,42],{"class":81},[75,210,211],{"class":89}," dnf",[75,213,179],{"class":89},[75,215,182],{"class":89},[21,217,218,219,222],{},"После установки включите сервис, но не запускайте его сразу: ",[25,220,221],{},"sudo systemctl enable vector",". Это гарантирует автоматический старт после перезагрузки, но не перехватит логи до завершения конфигурации.",[224,225],"in-article-ad",{},[16,227,229],{"id":228},"шаг-3-конфигурация-правил-ротации","Шаг 3: Конфигурация правил ротации",[21,231,232,233,236],{},"Создайте или отредактируйте конфигурационный файл ",[25,234,235],{},"/etc/vector/vector.toml",". Мы настроим сбор логов, их сжатие и сохранение в архивную папку с политикой удаления файлов старше 30 дней.",[66,238,242],{"className":239,"code":240,"language":241,"meta":71,"style":71},"language-toml shiki shiki-themes github-light github-dark","[sources.syslog_reader]\ntype = \"file\"\ninclude = [\"/var/log/syslog\", \"/var/log/*.log\"]\nread_from = \"beginning\"\n\n[transforms.log_parser]\ntype = \"remap\"\ninputs = [\"syslog_reader\"]\nsource = \"\"\"\n. = parse_syslog!(.message)\n\"\"\"\n\n[sinks.local_archive]\ntype = \"file\"\ninputs = [\"log_parser\"]\nencoding.codec = \"json\"\npath = \"/var/log/archived/%Y-%m-%d-%H.log.gz\"\ncompression = \"gzip\"\nrotation = { max_bytes = 1000000000 }  # Ротация при достижении 1 ГБ\n","toml",[25,243,244,249,254,260,266,273,279,285,291,297,303,309,314,320,325,331,337,343,349],{"__ignoreMap":71},[75,245,246],{"class":77,"line":78},[75,247,248],{},"[sources.syslog_reader]\n",[75,250,251],{"class":77,"line":96},[75,252,253],{},"type = \"file\"\n",[75,255,257],{"class":77,"line":256},3,[75,258,259],{},"include = [\"/var/log/syslog\", \"/var/log/*.log\"]\n",[75,261,263],{"class":77,"line":262},4,[75,264,265],{},"read_from = \"beginning\"\n",[75,267,269],{"class":77,"line":268},5,[75,270,272],{"emptyLinePlaceholder":271},true,"\n",[75,274,276],{"class":77,"line":275},6,[75,277,278],{},"[transforms.log_parser]\n",[75,280,282],{"class":77,"line":281},7,[75,283,284],{},"type = \"remap\"\n",[75,286,288],{"class":77,"line":287},8,[75,289,290],{},"inputs = [\"syslog_reader\"]\n",[75,292,294],{"class":77,"line":293},9,[75,295,296],{},"source = \"\"\"\n",[75,298,300],{"class":77,"line":299},10,[75,301,302],{},". = parse_syslog!(.message)\n",[75,304,306],{"class":77,"line":305},11,[75,307,308],{},"\"\"\"\n",[75,310,312],{"class":77,"line":311},12,[75,313,272],{"emptyLinePlaceholder":271},[75,315,317],{"class":77,"line":316},13,[75,318,319],{},"[sinks.local_archive]\n",[75,321,323],{"class":77,"line":322},14,[75,324,253],{},[75,326,328],{"class":77,"line":327},15,[75,329,330],{},"inputs = [\"log_parser\"]\n",[75,332,334],{"class":77,"line":333},16,[75,335,336],{},"encoding.codec = \"json\"\n",[75,338,340],{"class":77,"line":339},17,[75,341,342],{},"path = \"/var/log/archived/%Y-%m-%d-%H.log.gz\"\n",[75,344,346],{"class":77,"line":345},18,[75,347,348],{},"compression = \"gzip\"\n",[75,350,352],{"class":77,"line":351},19,[75,353,354],{},"rotation = { max_bytes = 1000000000 }  # Ротация при достижении 1 ГБ\n",[21,356,357,358,361,362,365,366,369],{},"Конфигурация использует встроенный механизм ротации ",[25,359,360],{},"rotation.max_bytes"," и автоматически архивирует файлы по расписанию. Для проверки синтаксиса выполните ",[25,363,364],{},"vector validate /etc/vector/vector.toml",". Если вывод содержит ",[25,367,368],{},"[OK]",", переходите к следующему шагу.",[16,371,373],{"id":372},"шаг-4-миграция-и-отключение-logrotate","Шаг 4: Миграция и отключение logrotate",[21,375,376,377,380,381,384,385,388],{},"После успешной валидации запустите сервис: ",[25,378,379],{},"sudo systemctl start vector",". Проверьте статус через ",[25,382,383],{},"journalctl -u vector -f",". Если в логах нет ошибок и файлы появляются в ",[25,386,387],{},"/var/log/archived/",", можно безопасно отключить стандартный инструмент:",[66,390,392],{"className":68,"code":391,"language":70,"meta":71,"style":71},"sudo systemctl stop logrotate.timer\nsudo systemctl mask logrotate.timer\n",[25,393,394,407],{"__ignoreMap":71},[75,395,396,398,401,404],{"class":77,"line":78},[75,397,42],{"class":81},[75,399,400],{"class":89}," systemctl",[75,402,403],{"class":89}," stop",[75,405,406],{"class":89}," logrotate.timer\n",[75,408,409,411,413,416],{"class":77,"line":96},[75,410,42],{"class":81},[75,412,400],{"class":89},[75,414,415],{"class":89}," mask",[75,417,406],{"class":89},[21,419,420,421,424,425,428],{},"Удалите старые файлы конфигурации из ",[25,422,423],{},"/etc/logrotate.d/"," и ",[25,426,427],{},"/etc/logrotate.conf",", предварительно убедившись, что все сервисы переключились на новый обработчик.",[53,430,431],{},[21,432,433,434,437,438,441,442,445],{},"💡 Совет: Вместо полного удаления конфигов logrotate временно переименуйте директорию ",[25,435,436],{},"/etc/logrotate.d"," в ",[25,439,440],{},"/etc/logrotate.d.bak",". Если потребуется быстрый откат, команды ",[25,443,444],{},"mv"," восстановят работу за секунды.",[16,447,449],{"id":448},"проверка-результата","Проверка результата",[21,451,452],{},"Сгенерируйте тестовую нагрузку и убедитесь, что ротация срабатывает автоматически. Запустите цикл:",[66,454,456],{"className":68,"code":455,"language":70,"meta":71,"style":71},"for i in {1..5000}; do logger \"Тестовая запись ротации $i\"; done\nls -lh /var/log/archived/\n",[25,457,458,498],{"__ignoreMap":71},[75,459,460,463,466,469,472,475,478,481,484,487,490,493,495],{"class":77,"line":78},[75,461,462],{"class":151},"for",[75,464,465],{"class":171}," i ",[75,467,468],{"class":151},"in",[75,470,471],{"class":171}," {",[75,473,474],{"class":81},"1..5000}",[75,476,477],{"class":171},"; ",[75,479,480],{"class":151},"do",[75,482,483],{"class":81}," logger",[75,485,486],{"class":89}," \"Тестовая запись ротации ",[75,488,489],{"class":171},"$i",[75,491,492],{"class":89},"\"",[75,494,477],{"class":171},[75,496,497],{"class":151},"done\n",[75,499,500,502,505],{"class":77,"line":96},[75,501,99],{"class":81},[75,503,504],{"class":85}," -lh",[75,506,507],{"class":89}," /var/log/archived/\n",[21,509,510,511,514,515,518],{},"Вы должны увидеть сжатые файлы с корректным размером и меткой времени. Проверьте использование диска: ",[25,512,513],{},"df -h /var/log",". Объём должен оставаться стабильным, а старые архивы удаляться согласно настройке политики хранения. Убедитесь, что приложения продолжают записывать события без ошибок ",[25,516,517],{},"No space left on device",".",[16,520,522],{"id":521},"возможные-проблемы","Возможные проблемы",[524,525,526,550,567],"ul",{},[527,528,529,532,533,535,536,117,539,542,543,546,547,518],"li",{},[110,530,531],{},"Ошибка прав доступа (Permission denied):"," Новый сервис запускается под системным пользователем ",[25,534,124],{},", у которого иногда нет доступа к закрытым системным журналам. Добавьте пользователя в группу ",[25,537,538],{},"adm",[25,540,541],{},"systemd-journal",": ",[25,544,545],{},"sudo usermod -aG adm vector"," и перезапустите сервис через ",[25,548,549],{},"sudo systemctl restart vector",[527,551,552,555,556,558,559,562,563,566],{},[110,553,554],{},"Дублирование записей:"," Если ",[25,557,27],{}," и новый инструмент работают одновременно, логи могут дублироваться и занимать двойной объём. Убедитесь, что ",[25,560,561],{},"logrotate.timer"," полностью остановлен и замаскирован, а приложения пишут в ",[25,564,565],{},"journald"," или напрямую в обработчик нового сервиса.",[527,568,569,572,573,576,577,117,580,583],{},[110,570,571],{},"Высокое потребление CPU при сжатии:"," Если сервер испытывает нагрузку, измените алгоритм компрессии на ",[25,574,575],{},"zstd"," в конфигурации ",[25,578,579],{},"vector.toml",[25,581,582],{},"fluent-bit.conf",". Он обеспечивает лучшее соотношение скорости и степени сжатия, снижая I/O wait и освобождая процессорное время для рабочих процессов.",[585,586,587],"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 pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":71,"searchDepth":96,"depth":96,"links":589},[590,591,592,593,594,595,596,597],{"id":18,"depth":96,"text":19},{"id":31,"depth":96,"text":32},{"id":60,"depth":96,"text":61},{"id":128,"depth":96,"text":129},{"id":228,"depth":96,"text":229},{"id":372,"depth":96,"text":373},{"id":448,"depth":96,"text":449},{"id":521,"depth":96,"text":522},null,"2026-04-04 23:58:54","Узнайте, чем заменить устаревший logrotate. Пошаговая настройка современных инструментов ротации логов. Экономьте место на диске уже сегодня!","medium",false,"20-30 мин","md",[606,609,612],{"question":607,"answer":608},"Почему стоит уйти от стандартного logrotate?","logrotate работает через cron, требует ручного редактирования конфигов для каждого сервиса и плохо масштабируется. Современные инструменты обрабатывают логи в реальном времени, поддерживают сжатие на лету и интеграцию с мониторингом.",{"question":610,"answer":611},"Безопасно ли удалять logrotate после установки альтернативы?","Да, но только после полной остановки и отключения сервиса `logrotate.timer` или `cron`-задачи. Убедитесь, что новый инструмент успешно обработал текущие файлы журналов.",{"question":613,"answer":614},"Какой инструмент выбрать для высоконагруженных серверов?","Для нагрузок от тысяч логов в секунду рекомендуется `Vector` или `Fluent Bit`. Они написаны на Rust/C, потребляют минимум памяти и гарантируют доставку данных без потери записей.",[616,619,622,625],{"name":617,"text":618},"Аудит текущей ротации","Проверьте активные конфигурации в `/etc/logrotate.d/` и оцените объём занимаемого места, чтобы понять требуемую производительность нового сервиса.",{"name":620,"text":621},"Установка современного инструмента","Добавьте официальный репозиторий и установите пакет, например `vector` или `fluent-bit`, используя стандартный менеджер пакетов вашего дистрибутива.",{"name":623,"text":624},"Создание конфигурации ротации","Настройте правила сжатия, хранения и архивации логов в YAML/TOML формате, указав целевые директории и политику удаления старых файлов.",{"name":626,"text":627},"Запуск и тестирование","Активируйте systemd-юнит нового сервиса, сгенерируйте тестовые записи в лог и проверьте создание архивов и очистку исходных файлов.","PT30M",[630,631,632,633,634,635,636,637],"альтернативы logrotate linux","чем заменить logrotate","ротация логов ubuntu debian","настройка vector logging","fluent bit log rotation","logrotate аналог","автоматическая очистка логов","управление журнальными файлами","ru_RU",{},"/guides/linux/linux-logrotate-alternatives","linux",[643,644,645],"/guides/linux/monitoring-journalctl-systemd","/guides/linux/nastroyka-logwatch-linux","/guides/linux/optimizaciya-diskovogo-prostranstva","Администрирование Linux",{"title":5,"description":600},"guides/linux/linux-logrotate-alternatives","Узнайте, почему стандартный logrotate уступает современным аналогам, и настройте ротацию логов с помощью Vector, Fluent Bit или logrotate-ng. Вы получите готовые конфигурации и безопасный план миграции.",[641,651,652,653,124,654,655],"log-rotation","sysadmin","fluent-bit","logmanagement","администрирование","guide","n-bJgSHqEJ6oiDq52o4ohveCYpH2ZoQfEzNDp2jOhp4",{"data":659,"body":660},{},{"type":38,"children":661},[662],{"type":663,"tag":21,"props":664,"children":665},"element",{},[666],{"type":667,"value":608},"text",{"data":669,"body":670},{},{"type":38,"children":671},[672],{"type":663,"tag":21,"props":673,"children":674},{},[675,677,682,683,689],{"type":667,"value":676},"Да, но только после полной остановки и отключения сервиса ",{"type":663,"tag":25,"props":678,"children":680},{"className":679},[],[681],{"type":667,"value":561},{"type":667,"value":117},{"type":663,"tag":25,"props":684,"children":686},{"className":685},[],[687],{"type":667,"value":688},"cron",{"type":667,"value":690},"-задачи. Убедитесь, что новый инструмент успешно обработал текущие файлы журналов.",{"data":692,"body":693},{},{"type":38,"children":694},[695],{"type":663,"tag":21,"props":696,"children":697},{},[698,700,705,706,712],{"type":667,"value":699},"Для нагрузок от тысяч логов в секунду рекомендуется ",{"type":663,"tag":25,"props":701,"children":703},{"className":702},[],[704],{"type":667,"value":112},{"type":667,"value":117},{"type":663,"tag":25,"props":707,"children":709},{"className":708},[],[710],{"type":667,"value":711},"Fluent Bit",{"type":667,"value":713},". Они написаны на Rust/C, потребляют минимум памяти и гарантируют доставку данных без потери записей.",{"data":715,"body":716},{},{"type":38,"children":717},[718],{"type":663,"tag":21,"props":719,"children":720},{},[721,723,728],{"type":667,"value":722},"Проверьте активные конфигурации в ",{"type":663,"tag":25,"props":724,"children":726},{"className":725},[],[727],{"type":667,"value":423},{"type":667,"value":729}," и оцените объём занимаемого места, чтобы понять требуемую производительность нового сервиса.",{"data":731,"body":732},{},{"type":38,"children":733},[734],{"type":663,"tag":21,"props":735,"children":736},{},[737,739,744,745,750],{"type":667,"value":738},"Добавьте официальный репозиторий и установите пакет, например ",{"type":663,"tag":25,"props":740,"children":742},{"className":741},[],[743],{"type":667,"value":124},{"type":667,"value":117},{"type":663,"tag":25,"props":746,"children":748},{"className":747},[],[749],{"type":667,"value":653},{"type":667,"value":751},", используя стандартный менеджер пакетов вашего дистрибутива.",{"data":753,"body":754},{},{"type":38,"children":755},[756],{"type":663,"tag":21,"props":757,"children":758},{},[759],{"type":667,"value":624},{"data":761,"body":762},{},{"type":38,"children":763},[764],{"type":663,"tag":21,"props":765,"children":766},{},[767],{"type":667,"value":627},[]]