[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/rsyslog-setup":3,"mdc-ncxcn9-key":829,"mdc--f0duhw-key":839,"mdc--ay4m8g-key":878,"mdc--r55res-key":886,"mdc-v0egvc-key":894,"mdc--fn2kbc-key":902,"mdc-puy0y5-key":918,"mdc--3h71bn-key":926,"related-/guides/linux/logrotate-setup,/guides/linux/journalctl-guide":942},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":768,"code":768,"createdAt":769,"description":770,"difficulty":771,"draft":772,"estimatedTime":773,"extension":774,"faq":775,"howToSteps":785,"howToTotalTime":801,"image":768,"keywords":802,"locale":811,"meta":812,"navigation":126,"path":813,"platform":814,"related":815,"section":818,"seo":819,"severity":768,"stem":820,"summary":821,"tags":822,"twitterCreator":768,"twitterSite":768,"type":827,"updatedAt":769,"__hash__":828},"content_ru/guides/linux/rsyslog-setup.md","Настройка rsyslog в Linux: пошаговая конфигурация и сбор логов",[7,8,9,10],"Ubuntu 22.04/24.04","Debian 11/12","RHEL 8/9","CentOS Stream 8/9","FixPedia Team",{"type":13,"value":14,"toc":758},"minimark",[15,20,24,28,65,69,72,148,151,182,185,188,192,195,210,213,244,247,261,264,279,282,324,327,343,346,386,390,393,407,414,423,430,439,442,451,454,468,472,479,493,496,574,577,607,611,614,645,648,679,682,704,708,754],[16,17,19],"h2",{"id":18},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,22,23],"p",{},"Rsyslog — это широко распространённый системный журнал, который позволяет собирать, фильтровать и хранить логи с локальной машины или сети. Настройка rsyslog помогает централизовать мониторинг, упростить поиск инцидентов и защитить важные журналы ротацией и правильными правами. После этой инструкции у вас будет работающий сервер логов и, при необходимости, клиенты, отправляющие на него события.",[16,25,27],{"id":26},"требования-подготовка","Требования / Подготовка",[29,30,31,35,47,58],"ul",{},[32,33,34],"li",{},"Сервер и клиент на базе поддерживаемых дистрибутивов (Ubuntu 22.04/24.04, Debian 11/12, RHEL 8/9).",[32,36,37,38,42,43,46],{},"Права ",[39,40,41],"code",{},"root"," или пользователь с ",[39,44,45],{},"sudo",".",[32,48,49,50,53,54,57],{},"Открытый порт ",[39,51,52],{},"514/udp"," (и/или ",[39,55,56],{},"514/tcp",") на сервере в файрволле, если планируется приём по сети.",[32,59,60,61,64],{},"Установленный пакет ",[39,62,63],{},"rsyslog"," (в большинстве систем он предустановлен).",[16,66,68],{"id":67},"шаг-1-установка-и-запуск-rsyslog","Шаг 1: Установка и запуск rsyslog",[21,70,71],{},"Убедитесь, что rsyslog установлен, и включите его автозапуск:",[73,74,79],"pre",{"className":75,"code":76,"language":77,"meta":78,"style":78},"language-bash shiki shiki-themes github-light github-dark","# Ubuntu/Debian\nsudo apt update && sudo apt install -y rsyslog\n\n# RHEL/CentOS\nsudo dnf install -y rsyslog\n","bash","",[39,80,81,90,121,128,134],{"__ignoreMap":78},[82,83,86],"span",{"class":84,"line":85},"line",1,[82,87,89],{"class":88},"sJ8bj","# Ubuntu/Debian\n",[82,91,93,96,100,103,107,109,111,114,118],{"class":84,"line":92},2,[82,94,45],{"class":95},"sScJk",[82,97,99],{"class":98},"sZZnC"," apt",[82,101,102],{"class":98}," update",[82,104,106],{"class":105},"sVt8B"," && ",[82,108,45],{"class":95},[82,110,99],{"class":98},[82,112,113],{"class":98}," install",[82,115,117],{"class":116},"sj4cs"," -y",[82,119,120],{"class":98}," rsyslog\n",[82,122,124],{"class":84,"line":123},3,[82,125,127],{"emptyLinePlaceholder":126},true,"\n",[82,129,131],{"class":84,"line":130},4,[82,132,133],{"class":88},"# RHEL/CentOS\n",[82,135,137,139,142,144,146],{"class":84,"line":136},5,[82,138,45],{"class":95},[82,140,141],{"class":98}," dnf",[82,143,113],{"class":98},[82,145,117],{"class":116},[82,147,120],{"class":98},[21,149,150],{},"Запустите службу и проверьте статус:",[73,152,154],{"className":75,"code":153,"language":77,"meta":78,"style":78},"sudo systemctl enable --now rsyslog\nsudo systemctl status rsyslog\n",[39,155,156,171],{"__ignoreMap":78},[82,157,158,160,163,166,169],{"class":84,"line":85},[82,159,45],{"class":95},[82,161,162],{"class":98}," systemctl",[82,164,165],{"class":98}," enable",[82,167,168],{"class":116}," --now",[82,170,120],{"class":98},[82,172,173,175,177,180],{"class":84,"line":92},[82,174,45],{"class":95},[82,176,162],{"class":98},[82,178,179],{"class":98}," status",[82,181,120],{"class":98},[21,183,184],{},"Если служба активна, базовая конфигурация готова к редактированию.",[186,187],"in-article-ad",{},[16,189,191],{"id":190},"шаг-2-настройка-сервера-приёма-логов","Шаг 2: Настройка сервера приёма логов",[21,193,194],{},"Откройте главный конфигурационный файл:",[73,196,198],{"className":75,"code":197,"language":77,"meta":78,"style":78},"sudo nano /etc/rsyslog.conf\n",[39,199,200],{"__ignoreMap":78},[82,201,202,204,207],{"class":84,"line":85},[82,203,45],{"class":95},[82,205,206],{"class":98}," nano",[82,208,209],{"class":98}," /etc/rsyslog.conf\n",[21,211,212],{},"Включите модули для UDP и TCP (раскомментируйте или добавьте):",[73,214,218],{"className":215,"code":216,"language":217,"meta":78,"style":78},"language-ini shiki shiki-themes github-light github-dark","module(load=\"imudp\")\ninput(type=\"imudp\" port=\"514\")\n\nmodule(load=\"imtcp\")\ninput(type=\"imtcp\" port=\"514\")\n","ini",[39,219,220,225,230,234,239],{"__ignoreMap":78},[82,221,222],{"class":84,"line":85},[82,223,224],{},"module(load=\"imudp\")\n",[82,226,227],{"class":84,"line":92},[82,228,229],{},"input(type=\"imudp\" port=\"514\")\n",[82,231,232],{"class":84,"line":123},[82,233,127],{"emptyLinePlaceholder":126},[82,235,236],{"class":84,"line":130},[82,237,238],{},"module(load=\"imtcp\")\n",[82,240,241],{"class":84,"line":136},[82,242,243],{},"input(type=\"imtcp\" port=\"514\")\n",[21,245,246],{},"Создайте файл с правилами для клиентов:",[73,248,250],{"className":75,"code":249,"language":77,"meta":78,"style":78},"sudo nano /etc/rsyslog.d/10-remote.conf\n",[39,251,252],{"__ignoreMap":78},[82,253,254,256,258],{"class":84,"line":85},[82,255,45],{"class":95},[82,257,206],{"class":98},[82,259,260],{"class":98}," /etc/rsyslog.d/10-remote.conf\n",[21,262,263],{},"Пример правила: сохранять логи от клиентов в отдельные файлы по IP-адресу:",[73,265,267],{"className":215,"code":266,"language":217,"meta":78,"style":78},"if $fromhost-ip != '127.0.0.1' then /var/log/remote/%HOSTNAME%.log\n& stop\n",[39,268,269,274],{"__ignoreMap":78},[82,270,271],{"class":84,"line":85},[82,272,273],{},"if $fromhost-ip != '127.0.0.1' then /var/log/remote/%HOSTNAME%.log\n",[82,275,276],{"class":84,"line":92},[82,277,278],{},"& stop\n",[21,280,281],{},"Создайте каталог и задайте права:",[73,283,285],{"className":75,"code":284,"language":77,"meta":78,"style":78},"sudo mkdir -p /var/log/remote\nsudo chown syslog:adm /var/log/remote\nsudo chmod 750 /var/log/remote\n",[39,286,287,300,312],{"__ignoreMap":78},[82,288,289,291,294,297],{"class":84,"line":85},[82,290,45],{"class":95},[82,292,293],{"class":98}," mkdir",[82,295,296],{"class":116}," -p",[82,298,299],{"class":98}," /var/log/remote\n",[82,301,302,304,307,310],{"class":84,"line":92},[82,303,45],{"class":95},[82,305,306],{"class":98}," chown",[82,308,309],{"class":98}," syslog:adm",[82,311,299],{"class":98},[82,313,314,316,319,322],{"class":84,"line":123},[82,315,45],{"class":95},[82,317,318],{"class":98}," chmod",[82,320,321],{"class":116}," 750",[82,323,299],{"class":98},[21,325,326],{},"Перезапустите rsyslog:",[73,328,330],{"className":75,"code":329,"language":77,"meta":78,"style":78},"sudo systemctl restart rsyslog\n",[39,331,332],{"__ignoreMap":78},[82,333,334,336,338,341],{"class":84,"line":85},[82,335,45],{"class":95},[82,337,162],{"class":98},[82,339,340],{"class":98}," restart",[82,342,120],{"class":98},[21,344,345],{},"Проверьте, что порт слушается:",[73,347,349],{"className":75,"code":348,"language":77,"meta":78,"style":78},"sudo ss -ulnp | grep 514\nsudo ss -tlnp | grep 514\n",[39,350,351,371],{"__ignoreMap":78},[82,352,353,355,358,361,365,368],{"class":84,"line":85},[82,354,45],{"class":95},[82,356,357],{"class":98}," ss",[82,359,360],{"class":116}," -ulnp",[82,362,364],{"class":363},"szBVR"," |",[82,366,367],{"class":95}," grep",[82,369,370],{"class":116}," 514\n",[82,372,373,375,377,380,382,384],{"class":84,"line":92},[82,374,45],{"class":95},[82,376,357],{"class":98},[82,378,379],{"class":116}," -tlnp",[82,381,364],{"class":363},[82,383,367],{"class":95},[82,385,370],{"class":116},[16,387,389],{"id":388},"шаг-3-настройка-клиента-пересылка-логов","Шаг 3: Настройка клиента (пересылка логов)",[21,391,392],{},"На клиенте создайте файл конфигурации для пересылки. Для отправки всех локальных журналов используйте:",[73,394,396],{"className":75,"code":395,"language":77,"meta":78,"style":78},"sudo nano /etc/rsyslog.d/20-forward.conf\n",[39,397,398],{"__ignoreMap":78},[82,399,400,402,404],{"class":84,"line":85},[82,401,45],{"class":95},[82,403,206],{"class":98},[82,405,406],{"class":98}," /etc/rsyslog.d/20-forward.conf\n",[21,408,409,410,413],{},"Пример пересылки по UDP (замените ",[39,411,412],{},"10.0.0.1"," на IP сервера):",[73,415,417],{"className":215,"code":416,"language":217,"meta":78,"style":78},"*.* @10.0.0.1:514\n",[39,418,419],{"__ignoreMap":78},[82,420,421],{"class":84,"line":85},[82,422,416],{},[21,424,425,426,429],{},"Для TCP используйте двойное ",[39,427,428],{},"@@",":",[73,431,433],{"className":215,"code":432,"language":217,"meta":78,"style":78},"*.* @@10.0.0.1:514\n",[39,434,435],{"__ignoreMap":78},[82,436,437],{"class":84,"line":85},[82,438,432],{},[21,440,441],{},"Если нужно отправлять только ошибки и критические события, укажите уровень:",[73,443,445],{"className":215,"code":444,"language":217,"meta":78,"style":78},"*.err;kern.warning;auth.notice @10.0.0.1:514\n",[39,446,447],{"__ignoreMap":78},[82,448,449],{"class":84,"line":85},[82,450,444],{},[21,452,453],{},"Сохраните файл и перезапустите клиента:",[73,455,456],{"className":75,"code":329,"language":77,"meta":78,"style":78},[39,457,458],{"__ignoreMap":78},[82,459,460,462,464,466],{"class":84,"line":85},[82,461,45],{"class":95},[82,463,162],{"class":98},[82,465,340],{"class":98},[82,467,120],{"class":98},[16,469,471],{"id":470},"шаг-4-ротация-и-права-для-логов","Шаг 4: Ротация и права для логов",[21,473,474,475,478],{},"Настройте ротацию для файлов в ",[39,476,477],{},"/var/log/remote/",". Создайте конфиг logrotate:",[73,480,482],{"className":75,"code":481,"language":77,"meta":78,"style":78},"sudo nano /etc/logrotate.d/rsyslog-remote\n",[39,483,484],{"__ignoreMap":78},[82,485,486,488,490],{"class":84,"line":85},[82,487,45],{"class":95},[82,489,206],{"class":98},[82,491,492],{"class":98}," /etc/logrotate.d/rsyslog-remote\n",[21,494,495],{},"Пример конфигурации:",[73,497,499],{"className":215,"code":498,"language":217,"meta":78,"style":78},"/var/log/remote/*.log {\n    daily\n    missingok\n    rotate 30\n    compress\n    delaycompress\n    notifempty\n    create 0640 syslog adm\n    sharedscripts\n    postrotate\n        /usr/lib/rsyslog/rsyslog-rotate\n    endscript\n}\n",[39,500,501,506,511,516,521,526,532,538,544,550,556,562,568],{"__ignoreMap":78},[82,502,503],{"class":84,"line":85},[82,504,505],{},"/var/log/remote/*.log {\n",[82,507,508],{"class":84,"line":92},[82,509,510],{},"    daily\n",[82,512,513],{"class":84,"line":123},[82,514,515],{},"    missingok\n",[82,517,518],{"class":84,"line":130},[82,519,520],{},"    rotate 30\n",[82,522,523],{"class":84,"line":136},[82,524,525],{},"    compress\n",[82,527,529],{"class":84,"line":528},6,[82,530,531],{},"    delaycompress\n",[82,533,535],{"class":84,"line":534},7,[82,536,537],{},"    notifempty\n",[82,539,541],{"class":84,"line":540},8,[82,542,543],{},"    create 0640 syslog adm\n",[82,545,547],{"class":84,"line":546},9,[82,548,549],{},"    sharedscripts\n",[82,551,553],{"class":84,"line":552},10,[82,554,555],{},"    postrotate\n",[82,557,559],{"class":84,"line":558},11,[82,560,561],{},"        /usr/lib/rsyslog/rsyslog-rotate\n",[82,563,565],{"class":84,"line":564},12,[82,566,567],{},"    endscript\n",[82,569,571],{"class":84,"line":570},13,[82,572,573],{},"}\n",[21,575,576],{},"Примените права к существующим файлам:",[73,578,580],{"className":75,"code":579,"language":77,"meta":78,"style":78},"sudo chown -R syslog:adm /var/log/remote\nsudo chmod -R 750 /var/log/remote\n",[39,581,582,595],{"__ignoreMap":78},[82,583,584,586,588,591,593],{"class":84,"line":85},[82,585,45],{"class":95},[82,587,306],{"class":98},[82,589,590],{"class":116}," -R",[82,592,309],{"class":98},[82,594,299],{"class":98},[82,596,597,599,601,603,605],{"class":84,"line":92},[82,598,45],{"class":95},[82,600,318],{"class":98},[82,602,590],{"class":116},[82,604,321],{"class":116},[82,606,299],{"class":98},[16,608,610],{"id":609},"проверка-результата","Проверка результата",[21,612,613],{},"С клиента отправьте тестовое сообщение:",[73,615,617],{"className":75,"code":616,"language":77,"meta":78,"style":78},"logger -n 10.0.0.1 -P 514 \"Test message from $(hostname)\"\n",[39,618,619],{"__ignoreMap":78},[82,620,621,624,627,630,633,636,639,642],{"class":84,"line":85},[82,622,623],{"class":95},"logger",[82,625,626],{"class":116}," -n",[82,628,629],{"class":116}," 10.0.0.1",[82,631,632],{"class":116}," -P",[82,634,635],{"class":116}," 514",[82,637,638],{"class":98}," \"Test message from $(",[82,640,641],{"class":95},"hostname",[82,643,644],{"class":98},")\"\n",[21,646,647],{},"На сервере проверьте, появился ли файл клиента и содержит ли он сообщение:",[73,649,651],{"className":75,"code":650,"language":77,"meta":78,"style":78},"tail -f /var/log/remote/\u003Cимя_клиента>.log\n",[39,652,653],{"__ignoreMap":78},[82,654,655,658,661,664,667,670,673,676],{"class":84,"line":85},[82,656,657],{"class":95},"tail",[82,659,660],{"class":116}," -f",[82,662,663],{"class":98}," /var/log/remote/",[82,665,666],{"class":363},"\u003C",[82,668,669],{"class":98},"имя_клиент",[82,671,672],{"class":105},"а",[82,674,675],{"class":363},">",[82,677,678],{"class":98},".log\n",[21,680,681],{},"Убедитесь, что ошибок нет в журнале службы:",[73,683,685],{"className":75,"code":684,"language":77,"meta":78,"style":78},"journalctl -u rsyslog --since \"1 minute ago\"\n",[39,686,687],{"__ignoreMap":78},[82,688,689,692,695,698,701],{"class":84,"line":85},[82,690,691],{"class":95},"journalctl",[82,693,694],{"class":116}," -u",[82,696,697],{"class":98}," rsyslog",[82,699,700],{"class":116}," --since",[82,702,703],{"class":98}," \"1 minute ago\"\n",[16,705,707],{"id":706},"возможные-проблемы","Возможные проблемы",[29,709,710,726,737,744],{},[32,711,712,713,715,716,718,719,722,723,725],{},"Логи не доходят — проверьте, открыт ли порт ",[39,714,52],{}," (или ",[39,717,56],{},") на сервере и не блокирует ли его файрволл. Убедитесь, что клиент использует правильный IP и синтаксис (",[39,720,721],{},"@"," для UDP, ",[39,724,428],{}," для TCP).",[32,727,728,729,732,733,736],{},"Права на файлы — если логи не пишутся, проверьте владельца каталога ",[39,730,731],{},"/var/log/remote"," и правило ",[39,734,735],{},"create"," в logrotate.",[32,738,739,740,743],{},"Дублирование сообщений — используйте ",[39,741,742],{},"& stop"," в правилах сервера, чтобы предотвратить дальнейшую обработку одного и того же события.",[32,745,746,747,750,751,46],{},"Проблемы с именами хостов — при использовании динамических имён убедитесь, что клиент корректно передаёт ",[39,748,749],{},"HOSTNAME",", либо фильтруйте по ",[39,752,753],{},"$fromhost-ip",[755,756,757],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":78,"searchDepth":92,"depth":92,"links":759},[760,761,762,763,764,765,766,767],{"id":18,"depth":92,"text":19},{"id":26,"depth":92,"text":27},{"id":67,"depth":92,"text":68},{"id":190,"depth":92,"text":191},{"id":388,"depth":92,"text":389},{"id":470,"depth":92,"text":471},{"id":609,"depth":92,"text":610},{"id":706,"depth":92,"text":707},null,"2026-04-28 19:07:00","Пошаговая инструкция по настройке rsyslog в Linux: установка, конфигурация сервера и клиента, фильтры и ротация. Настройте сбор логов за 15 минут.","medium",false,"15-30 мин","md",[776,779,782],{"question":777,"answer":778},"Зачем использовать rsyslog, если есть journald?","Rsyslog лучше подходит для централизованного сбора логов с множества серверов, гибкой маршрутизации в файлы и отправки по сети, тогда как journald ориентирован на локальный просмотр через systemd.",{"question":780,"answer":781},"Как проверить, что rsyslog работает и принимает логи?","Запустите `systemctl status rsyslog`, проверьте порт `514/udp` через `ss -ulnp`, а затем отправьте тестовое сообщение с клиента командой `logger -n \u003Cip> -P 514 test`.",{"question":783,"answer":784},"Безопасно ли открывать UDP 514 для rsyslog?","В локальной сети — обычно безопасно. Из интернета или недоверенных сегментов лучше использовать TLS (модуль omfwd с потоками) или VPN, либо ограничить доступ через файрволл.",[786,789,792,795,798],{"name":787,"text":788},"Установить rsyslog","Установите пакет rsyslog и включите автозапуск, чтобы служба стартовала при загрузке сервера.",{"name":790,"text":791},"Настроить сервер (приём логов)","Включите сетевой ввод (модули imudp/imtcp) и создайте правила для приёма логов от клиентов по UDP/TCP.",{"name":793,"text":794},"Настроить клиент (отправка логов)","Задайте пересылку выбранных или всех локальных журналов на сервер rsyslog с помощью правил *.* или фильтров по facility/severity.",{"name":796,"text":797},"Применить ротацию и права","Настройте logrotate для новых файлов логов и укажите владельца/группу, чтобы приложения могли писать в журналы.",{"name":799,"text":800},"Проверить работу","Убедитесь, что логи с клиента появляются на сервере в заданных файлах, а ошибки отсутствуют в `journalctl -u rsyslog`.","PT30M",[803,804,805,806,807,808,809,810],"настройка rsyslog","настроить rsyslog Linux","конфигурация rsyslog","сервер логов rsyslog","клиент rsyslog","сбор логов Linux","rsyslog конфиг","журналы Linux","ru_RU",{},"/guides/linux/rsyslog-setup","linux",[816,817],"/guides/linux/logrotate-setup","/guides/linux/journalctl-guide","Гайды Linux",{"title":5,"description":770},"guides/linux/rsyslog-setup","Гайд по быстрой и надёжной настройке rsyslog на Linux: вы научитесь собирать, фильтровать и хранить системные журналы локально или с удалённых узлов.",[814,63,823,824,825,826],"syslog","logs","monitoring","systemd","guide","O5Tx_penfNnHXKNmXWXTblaI_uUx8Mjy2nrwRtK1wAw",{"data":830,"body":831},{},{"type":41,"children":832},[833],{"type":834,"tag":21,"props":835,"children":836},"element",{},[837],{"type":838,"value":778},"text",{"data":840,"body":841},{},{"type":41,"children":842},[843],{"type":834,"tag":21,"props":844,"children":845},{},[846,848,854,856,861,863,869,871,877],{"type":838,"value":847},"Запустите ",{"type":834,"tag":39,"props":849,"children":851},{"className":850},[],[852],{"type":838,"value":853},"systemctl status rsyslog",{"type":838,"value":855},", проверьте порт ",{"type":834,"tag":39,"props":857,"children":859},{"className":858},[],[860],{"type":838,"value":52},{"type":838,"value":862}," через ",{"type":834,"tag":39,"props":864,"children":866},{"className":865},[],[867],{"type":838,"value":868},"ss -ulnp",{"type":838,"value":870},", а затем отправьте тестовое сообщение с клиента командой ",{"type":834,"tag":39,"props":872,"children":874},{"className":873},[],[875],{"type":838,"value":876},"logger -n \u003Cip> -P 514 test",{"type":838,"value":46},{"data":879,"body":880},{},{"type":41,"children":881},[882],{"type":834,"tag":21,"props":883,"children":884},{},[885],{"type":838,"value":784},{"data":887,"body":888},{},{"type":41,"children":889},[890],{"type":834,"tag":21,"props":891,"children":892},{},[893],{"type":838,"value":788},{"data":895,"body":896},{},{"type":41,"children":897},[898],{"type":834,"tag":21,"props":899,"children":900},{},[901],{"type":838,"value":791},{"data":903,"body":904},{},{"type":41,"children":905},[906],{"type":834,"tag":21,"props":907,"children":908},{},[909,911,916],{"type":838,"value":910},"Задайте пересылку выбранных или всех локальных журналов на сервер rsyslog с помощью правил ",{"type":834,"tag":912,"props":913,"children":914},"em",{},[915],{"type":838,"value":46},{"type":838,"value":917}," или фильтров по facility/severity.",{"data":919,"body":920},{},{"type":41,"children":921},[922],{"type":834,"tag":21,"props":923,"children":924},{},[925],{"type":838,"value":797},{"data":927,"body":928},{},{"type":41,"children":929},[930],{"type":834,"tag":21,"props":931,"children":932},{},[933,935,941],{"type":838,"value":934},"Убедитесь, что логи с клиента появляются на сервере в заданных файлах, а ошибки отсутствуют в ",{"type":834,"tag":39,"props":936,"children":938},{"className":937},[],[939],{"type":838,"value":940},"journalctl -u rsyslog",{"type":838,"value":46},[943],{"id":944,"title":945,"appliesTo":946,"author":11,"body":951,"canonical":768,"code":768,"createdAt":1886,"description":1887,"difficulty":1888,"draft":772,"estimatedTime":1889,"extension":774,"faq":1890,"howToSteps":1903,"howToTotalTime":1916,"image":768,"keywords":1917,"locale":811,"meta":1928,"navigation":126,"path":816,"platform":814,"related":1929,"section":818,"seo":1932,"severity":768,"stem":1933,"summary":1934,"tags":1935,"twitterCreator":768,"twitterSite":768,"type":827,"updatedAt":1886,"__hash__":1941},"content_ru/guides/linux/logrotate-setup.md","Настройка logrotate в Linux: полное руководство по ротации логов",[947,8,948,949,950],"Ubuntu 20.04/22.04","CentOS 7/8","RHEL 7/8","Linux ядро 4.x+",{"type":13,"value":952,"toc":1869},[953,955,962,976,979,981,984,1042,1046,1049,1064,1067,1081,1084,1145,1150,1219,1225,1229,1232,1320,1327,1389,1393,1396,1512,1514,1518,1521,1537,1544,1559,1562,1569,1572,1578,1580,1583,1667,1669,1674,1683,1701,1705,1709,1729,1733,1759,1763,1777,1794,1798,1805,1830,1837,1866],[16,954,19],{"id":18},[21,956,957,961],{},[958,959,960],"strong",{},"Logrotate"," — это стандартный утилита в Linux для автоматической ротации, сжатия и удаления старых лог-файлов. Без настройки логи могут бесконечно расти, заполняя весь диск и вызывая сбои в работе системы. Настроив logrotate, вы:",[29,963,964,967,970,973],{},[32,965,966],{},"Автоматически управляете размером логов.",[32,968,969],{},"Сохраняете историю за заданный период (например, 7 дней).",[32,971,972],{},"Сжимаете архивы, экономя место.",[32,974,975],{},"Обеспечивайте бесперебойную работу сервисов, которые пишут логи.",[21,977,978],{},"Этот гайд подойдет для администраторов Linux и разработчиков, которые работают с серверами (веб-серверы, базы данных, кастомные приложения).",[16,980,27],{"id":26},[21,982,983],{},"Перед началом убедитесь, что:",[985,986,987,999,1033],"ol",{},[32,988,989,992,993,995,996,46],{},[958,990,991],{},"У вас есть root-доступ"," или права ",[39,994,45],{}," для редактирования файлов в ",[39,997,998],{},"/etc/",[32,1000,1001,1004,1005,1018,1019],{},[958,1002,1003],{},"Logrotate установлен"," (обычно есть по умолчанию в большинстве дистрибутивов). Проверьте командой:\n",[73,1006,1008],{"className":75,"code":1007,"language":77,"meta":78,"style":78},"which logrotate\n",[39,1009,1010],{"__ignoreMap":78},[82,1011,1012,1015],{"class":84,"line":85},[82,1013,1014],{"class":116},"which",[82,1016,1017],{"class":98}," logrotate\n","\nЕсли нет, установите:\n",[29,1020,1021,1027],{},[32,1022,1023,1024],{},"Ubuntu/Debian: ",[39,1025,1026],{},"sudo apt update && sudo apt install logrotate",[32,1028,1029,1030],{},"CentOS/RHEL: ",[39,1031,1032],{},"sudo yum install logrotate",[32,1034,1035,1038,1039,46],{},[958,1036,1037],{},"Логи пишутся в файлы",", а не только в stdout/stderr. Если приложение пишет в stdout (например, Docker без драйвера json-file), настройте перенаправление в файл или используйте ",[39,1040,1041],{},"systemd-journald",[16,1043,1045],{"id":1044},"шаг-1-создание-конфигурационного-файла","Шаг 1: Создание конфигурационного файла",[21,1047,1048],{},"Logrotate читает конфигурации из двух мест:",[29,1050,1051,1057],{},[32,1052,1053,1054],{},"Основной файл: ",[39,1055,1056],{},"/etc/logrotate.conf",[32,1058,1059,1060,1063],{},"Дополнительные файлы в ",[39,1061,1062],{},"/etc/logrotate.d/"," (рекомендуется для каждого сервиса отдельно).",[21,1065,1066],{},"Создайте конфиг для вашего приложения. Например, для веб-сервера Nginx:",[73,1068,1070],{"className":75,"code":1069,"language":77,"meta":78,"style":78},"sudo nano /etc/logrotate.d/nginx\n",[39,1071,1072],{"__ignoreMap":78},[82,1073,1074,1076,1078],{"class":84,"line":85},[82,1075,45],{"class":95},[82,1077,206],{"class":98},[82,1079,1080],{"class":98}," /etc/logrotate.d/nginx\n",[21,1082,1083],{},"Добавьте базовый шаблон:",[73,1085,1087],{"className":215,"code":1086,"language":217,"meta":78,"style":78},"/var/log/nginx/*.log {\n    daily\n    missingok\n    rotate 14\n    compress\n    delaycompress\n    notifempty\n    create 644 www-data www-data\n    sharedscripts\n    postrotate\n        [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`\n    endscript\n}\n",[39,1088,1089,1094,1098,1102,1107,1111,1115,1119,1124,1128,1132,1137,1141],{"__ignoreMap":78},[82,1090,1091],{"class":84,"line":85},[82,1092,1093],{},"/var/log/nginx/*.log {\n",[82,1095,1096],{"class":84,"line":92},[82,1097,510],{},[82,1099,1100],{"class":84,"line":123},[82,1101,515],{},[82,1103,1104],{"class":84,"line":130},[82,1105,1106],{},"    rotate 14\n",[82,1108,1109],{"class":84,"line":136},[82,1110,525],{},[82,1112,1113],{"class":84,"line":528},[82,1114,531],{},[82,1116,1117],{"class":84,"line":534},[82,1118,537],{},[82,1120,1121],{"class":84,"line":540},[82,1122,1123],{},"    create 644 www-data www-data\n",[82,1125,1126],{"class":84,"line":546},[82,1127,549],{},[82,1129,1130],{"class":84,"line":552},[82,1131,555],{},[82,1133,1134],{"class":84,"line":558},[82,1135,1136],{},"        [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`\n",[82,1138,1139],{"class":84,"line":564},[82,1140,567],{},[82,1142,1143],{"class":84,"line":570},[82,1144,573],{},[21,1146,1147],{},[958,1148,1149],{},"Пояснение параметров:",[29,1151,1152,1158,1164,1170,1176,1186,1192,1198,1204,1214],{},[32,1153,1154,1157],{},[39,1155,1156],{},"/var/log/nginx/*.log"," — путь к логам (поддерживаются wildcards).",[32,1159,1160,1163],{},[39,1161,1162],{},"daily"," — ротация каждый день.",[32,1165,1166,1169],{},[39,1167,1168],{},"missingok"," — игнорировать, если файл лога отсутствует.",[32,1171,1172,1175],{},[39,1173,1174],{},"rotate 14"," — хранить 14 архивов.",[32,1177,1178,1181,1182,1185],{},[39,1179,1180],{},"compress"," — сжимать ротированные логи gzip (файлы ",[39,1183,1184],{},".gz",").",[32,1187,1188,1191],{},[39,1189,1190],{},"delaycompress"," — сжимать не сразу, а на следующий день (чтобы можно было читать свежий лог).",[32,1193,1194,1197],{},[39,1195,1196],{},"notifempty"," — не ротировать пустые файлы.",[32,1199,1200,1203],{},[39,1201,1202],{},"create 644 www-data www-data"," — создавать новый пустой лог-файл с указанными правами и владельцем после ротации.",[32,1205,1206,1209,1210,1213],{},[39,1207,1208],{},"sharedscripts"," — выполнять скрипты (",[39,1211,1212],{},"postrotate",") один раз для всех файлов в блоке.",[32,1215,1216,1218],{},[39,1217,1212],{}," — после ротации отправить сигнал Nginx, чтобы он переоткрыл файлы логов.",[21,1220,1221,1222,1185],{},"Для других приложений укажите свои пути и команды переоткрытия логов (например, для Apache: ",[39,1223,1224],{},"invoke-rc.d apache2 reload",[16,1226,1228],{"id":1227},"шаг-2-настройка-параметров-ротации","Шаг 2: Настройка параметров ротации",[21,1230,1231],{},"Вы можете настроить частоту и другие опции под свои нужды:",[29,1233,1234,1255,1268,1281,1297,1311],{},[32,1235,1236,1239,1240,1242,1243,1246,1247,1250,1251,1254],{},[958,1237,1238],{},"Частота:"," ",[39,1241,1162],{}," (ежедневно), ",[39,1244,1245],{},"weekly"," (еженедельно), ",[39,1248,1249],{},"monthly"," (ежемесячно). Можно также использовать ",[39,1252,1253],{},"hourly"," (ежечасно), если logrotate запускается из cron hourly (обычно нет).",[32,1256,1257,1239,1260,1263,1264,1267],{},[958,1258,1259],{},"Количество архивов:",[39,1261,1262],{},"rotate N"," — сколько последних архивов хранить. Например, ",[39,1265,1266],{},"rotate 30"," — хранить 30 дней.",[32,1269,1270,1239,1273,1276,1277,1280],{},[958,1271,1272],{},"Удаление по возрасту:",[39,1274,1275],{},"maxage N"," — удалять архивы старше N дней (даже если ",[39,1278,1279],{},"rotate"," не достигнуто).",[32,1282,1283,1239,1286,1289,1290,1292,1293,1296],{},[958,1284,1285],{},"Размер вместо времени:",[39,1287,1288],{},"size 100M"," — ротировать, когда лог достигает 100 МБ (можно комбинировать с частотой: ",[39,1291,1162],{}," и ",[39,1294,1295],{},"size"," работают вместе).",[32,1298,1299,1239,1302,1304,1305,1308,1309,46],{},[958,1300,1301],{},"Сжатие:",[39,1303,1180],{}," (gzip) или ",[39,1306,1307],{},"nocompress",". Для более быстрого сжатия можно использовать ",[39,1310,1190],{},[32,1312,1313,1239,1316,1319],{},[958,1314,1315],{},"Права на новые файлы:",[39,1317,1318],{},"create mode owner group"," (как в примере выше).",[21,1321,1322,1323,1326],{},"Пример для логов приложения, которое пишет в ",[39,1324,1325],{},"/opt/myapp/logs/app.log"," и требует перезапуска службы:",[73,1328,1330],{"className":215,"code":1329,"language":217,"meta":78,"style":78},"/opt/myapp/logs/app.log {\n    weekly\n    rotate 8\n    compress\n    delaycompress\n    missingok\n    notifempty\n    create 640 myuser mygroup\n    sharedscripts\n    postrotate\n        systemctl restart myapp.service > /dev/null 2>&1 || true\n    endscript\n}\n",[39,1331,1332,1337,1342,1347,1351,1355,1359,1363,1368,1372,1376,1381,1385],{"__ignoreMap":78},[82,1333,1334],{"class":84,"line":85},[82,1335,1336],{},"/opt/myapp/logs/app.log {\n",[82,1338,1339],{"class":84,"line":92},[82,1340,1341],{},"    weekly\n",[82,1343,1344],{"class":84,"line":123},[82,1345,1346],{},"    rotate 8\n",[82,1348,1349],{"class":84,"line":130},[82,1350,525],{},[82,1352,1353],{"class":84,"line":136},[82,1354,531],{},[82,1356,1357],{"class":84,"line":528},[82,1358,515],{},[82,1360,1361],{"class":84,"line":534},[82,1362,537],{},[82,1364,1365],{"class":84,"line":540},[82,1366,1367],{},"    create 640 myuser mygroup\n",[82,1369,1370],{"class":84,"line":546},[82,1371,549],{},[82,1373,1374],{"class":84,"line":552},[82,1375,555],{},[82,1377,1378],{"class":84,"line":558},[82,1379,1380],{},"        systemctl restart myapp.service > /dev/null 2>&1 || true\n",[82,1382,1383],{"class":84,"line":564},[82,1384,567],{},[82,1386,1387],{"class":84,"line":570},[82,1388,573],{},[16,1390,1392],{"id":1391},"шаг-3-тестирование-конфигурации","Шаг 3: Тестирование конфигурации",[21,1394,1395],{},"После создания конфига обязательно протестируйте его:",[985,1397,1398,1429,1477],{},[32,1399,1400,1403,1421,1424,1425,1428],{},[958,1401,1402],{},"Сухой прогон (dry-run):",[73,1404,1406],{"className":75,"code":1405,"language":77,"meta":78,"style":78},"sudo logrotate -d /etc/logrotate.conf\n",[39,1407,1408],{"__ignoreMap":78},[82,1409,1410,1412,1415,1418],{"class":84,"line":85},[82,1411,45],{"class":95},[82,1413,1414],{"class":98}," logrotate",[82,1416,1417],{"class":116}," -d",[82,1419,1420],{"class":98}," /etc/logrotate.conf\n",[1422,1423],"br",{},"Флаг ",[39,1426,1427],{},"-d"," показывает, какие действия будут выполнены, но не применяет их. Ищите в выводе ошибки (например, \"error: bad option\" или \"cannot open\").",[32,1430,1431,1434,1449,1424,1451,1454,1455],{},[958,1432,1433],{},"Принудительный запуск:",[73,1435,1437],{"className":75,"code":1436,"language":77,"meta":78,"style":78},"sudo logrotate -f /etc/logrotate.conf\n",[39,1438,1439],{"__ignoreMap":78},[82,1440,1441,1443,1445,1447],{"class":84,"line":85},[82,1442,45],{"class":95},[82,1444,1414],{"class":98},[82,1446,660],{"class":116},[82,1448,1420],{"class":98},[1422,1450],{},[39,1452,1453],{},"-f"," (force) запускает ротацию независимо от времени. После этого проверьте, что:",[29,1456,1457,1467,1472],{},[32,1458,1459,1460,1463,1464,1185],{},"Старые логи переименованы (например, ",[39,1461,1462],{},"access.log.1",", ",[39,1465,1466],{},"access.log.2.gz",[32,1468,1469,1470,1185],{},"Создан новый пустой лог-файл (если указан ",[39,1471,735],{},[32,1473,1474,1475,46],{},"Сжатые файлы имеют расширение ",[39,1476,1184],{},[32,1478,1479,1482,1483],{},[958,1480,1481],{},"Проверка логов самого logrotate:","\nОбычно logrotate пишет свои ошибки в syslog. Проверьте:",[73,1484,1486],{"className":75,"code":1485,"language":77,"meta":78,"style":78},"grep logrotate /var/log/syslog\n# или для RHEL/CentOS:\ngrep logrotate /var/log/messages\n",[39,1487,1488,1498,1503],{"__ignoreMap":78},[82,1489,1490,1493,1495],{"class":84,"line":85},[82,1491,1492],{"class":95},"grep",[82,1494,1414],{"class":98},[82,1496,1497],{"class":98}," /var/log/syslog\n",[82,1499,1500],{"class":84,"line":92},[82,1501,1502],{"class":88},"# или для RHEL/CentOS:\n",[82,1504,1505,1507,1509],{"class":84,"line":123},[82,1506,1492],{"class":95},[82,1508,1414],{"class":98},[82,1510,1511],{"class":98}," /var/log/messages\n",[186,1513],{},[16,1515,1517],{"id":1516},"шаг-4-автоматизация-через-cron","Шаг 4: Автоматизация через cron",[21,1519,1520],{},"Logrotate по умолчанию запускается из cron ежедневно. Проверьте наличие скрипта:",[73,1522,1524],{"className":75,"code":1523,"language":77,"meta":78,"style":78},"ls -l /etc/cron.daily/logrotate\n",[39,1525,1526],{"__ignoreMap":78},[82,1527,1528,1531,1534],{"class":84,"line":85},[82,1529,1530],{"class":95},"ls",[82,1532,1533],{"class":116}," -l",[82,1535,1536],{"class":98}," /etc/cron.daily/logrotate\n",[21,1538,1539,1540,1543],{},"Обычно это символическая ссылка на ",[39,1541,1542],{},"/usr/sbin/logrotate",". Если нужно изменить расписание (например, на еженедельное), отредактируйте crontab root:",[73,1545,1547],{"className":75,"code":1546,"language":77,"meta":78,"style":78},"sudo crontab -e\n",[39,1548,1549],{"__ignoreMap":78},[82,1550,1551,1553,1556],{"class":84,"line":85},[82,1552,45],{"class":95},[82,1554,1555],{"class":98}," crontab",[82,1557,1558],{"class":116}," -e\n",[21,1560,1561],{},"И замените строку (если есть) на:",[73,1563,1567],{"className":1564,"code":1566,"language":838},[1565],"language-text","0 3 * * 0 /usr/sbin/logrotate /etc/logrotate.conf\n",[39,1568,1566],{"__ignoreMap":78},[21,1570,1571],{},"Это запустит logrotate в 3:00 утра каждое воскресенье.",[21,1573,1574,1577],{},[958,1575,1576],{},"Важно:"," Не запускайте logrotate слишком часто (например, каждые 5 минут) для больших логов — это может нагрузить систему.",[16,1579,610],{"id":609},[21,1581,1582],{},"После принудительного запуска (или по истечении периода) убедитесь, что:",[985,1584,1585,1615,1623,1633,1655],{},[32,1586,1587,1590,1591,1606,1608,1609,1611,1612,1614],{},[958,1588,1589],{},"Ротированные файлы появились"," в папке с логами:",[73,1592,1594],{"className":75,"code":1593,"language":77,"meta":78,"style":78},"ls -lh /var/log/nginx/\n",[39,1595,1596],{"__ignoreMap":78},[82,1597,1598,1600,1603],{"class":84,"line":85},[82,1599,1530],{"class":95},[82,1601,1602],{"class":116}," -lh",[82,1604,1605],{"class":98}," /var/log/nginx/\n",[1422,1607],{},"Вы должны увидеть ",[39,1610,1462],{}," (прошлый день) и, возможно, ",[39,1613,1466],{}," (архив).",[32,1616,1617,1620,1621,1185],{},[958,1618,1619],{},"Новый лог-файл создан"," и имеет правильные права (если использовали ",[39,1622,735],{},[32,1624,1625,1628,1629,1632],{},[958,1626,1627],{},"Приложение продолжает писать логи"," в новый файл. Проверьте, что в ",[39,1630,1631],{},"access.log"," (новом) появляются записи.",[32,1634,1635,429,1638],{},[958,1636,1637],{},"Размер диска не растет бесконтрольно",[73,1639,1641],{"className":75,"code":1640,"language":77,"meta":78,"style":78},"sudo du -sh /var/log/nginx/\n",[39,1642,1643],{"__ignoreMap":78},[82,1644,1645,1647,1650,1653],{"class":84,"line":85},[82,1646,45],{"class":95},[82,1648,1649],{"class":98}," du",[82,1651,1652],{"class":116}," -sh",[82,1654,1605],{"class":98},[32,1656,1657,1662,1663,1666],{},[958,1658,1659,1660],{},"Количество архивов не превышает ",[39,1661,1279],{},". Если хранится больше, возможно, ",[39,1664,1665],{},"maxage"," конфликтует или старые файлы не удаляются из-за прав.",[16,1668,707],{"id":706},[1670,1671,1673],"h3",{"id":1672},"_1-ошибка-permission-denied-при-ротации-или-создании-файлов","1. Ошибка \"Permission denied\" при ротации или создании файлов",[21,1675,1676,1679,1680],{},[958,1677,1678],{},"Причина:"," Пользователь, от которого запущен logrotate (обычно root), не имеет прав на запись в директорию с логами или на создание файлов с указанными владельцем/группой.\n",[958,1681,1682],{},"Решение:",[29,1684,1685,1690],{},[32,1686,1687,1688,1185],{},"Убедитесь, что директория с логами доступна для записи root (или укажите правильного владельца в ",[39,1689,735],{},[32,1691,1692,1693,1696,1697,1700],{},"Если логи пишет непривилегированный пользователь (например, ",[39,1694,1695],{},"www-data","), используйте ",[39,1698,1699],{},"su www-data"," в блоке конфига (если logrotate поддерживает) или настройте права так, чтобы root мог менять файлы.",[1670,1702,1704],{"id":1703},"_2-logrotate-не-ротирует-логи-хотя-прошло-время","2. Logrotate не ротирует логи, хотя прошло время",[21,1706,1707],{},[958,1708,1678],{},[29,1710,1711,1717,1723],{},[32,1712,1713,1714,1716],{},"Неправильная настройка частоты (например, ",[39,1715,1162],{},", но вы тестируете в тот же день).",[32,1718,1719,1720,1722],{},"Файл лога не изменился с последней ротации (если есть ",[39,1721,1196],{}," и файл пустой).",[32,1724,1725,1726,1185],{},"Logrotate не запускается из cron (проверьте ",[39,1727,1728],{},"/etc/cron.daily/",[21,1730,1731],{},[958,1732,1682],{},[29,1734,1735,1742,1748],{},[32,1736,1737,1738,1741],{},"Используйте ",[39,1739,1740],{},"logrotate -f"," для принудительной ротации.",[32,1743,1744,1745,1747],{},"Уберите ",[39,1746,1196],{},", если хотите ротировать пустые файлы.",[32,1749,1750,1751,1754,1755,1758],{},"Проверьте, что cron работает: ",[39,1752,1753],{},"systemctl status cron"," (Debian/Ubuntu) или ",[39,1756,1757],{},"crond"," (RHEL/CentOS).",[1670,1760,1762],{"id":1761},"_3-приложение-перестает-писать-логи-после-ротации","3. Приложение перестает писать логи после ротации",[21,1764,1765,1767,1768,1770,1771,1774,1775],{},[958,1766,1678],{}," Приложение не переоткрывает файл лога после его переименования. Обычно это решается сигналом в ",[39,1769,1212],{}," (например, ",[39,1772,1773],{},"kill -USR1"," для Nginx) или перезапуском службы.\n",[958,1776,1682],{},[29,1778,1779,1785,1791],{},[32,1780,1781,1782,1784],{},"Убедитесь, что команда в ",[39,1783,1212],{}," корректна и не вызывает ошибок. Протестируйте ее вручную.",[32,1786,1787,1788,46],{},"Для systemd-сервисов можно использовать ",[39,1789,1790],{},"systemctl reload \u003Cservice>",[32,1792,1793],{},"Если приложение пишет в файл напрямую без буферизации, оно может продолжить писать в старый файл (который переименован). В этом случае перезапуск службы необходим.",[1670,1795,1797],{"id":1796},"_4-сжатие-занимает-много-времени-или-ресурсов","4. Сжатие занимает много времени или ресурсов",[21,1799,1800,1802,1803],{},[958,1801,1678],{}," Большие логи сжимаются в момент пиковой нагрузки.\n",[958,1804,1682],{},[29,1806,1807,1812,1819],{},[32,1808,1737,1809,1811],{},[39,1810,1190],{}," — сжатие откладывается до следующего запуска logrotate.",[32,1813,1814,1815,1818],{},"Настройте ротацию по размеру (",[39,1816,1817],{},"size 500M",") в менее загруженное время.",[32,1820,1821,1822,1825,1826,1829],{},"Рассмотрите использование ",[39,1823,1824],{},"compresscmd"," с более быстрым алгоритмом (например, ",[39,1827,1828],{},"pigz"," для параллельного сжатия), если установлен.",[1670,1831,1833,1834,1836],{"id":1832},"_5-ротируются-не-те-файлы-например-ротируются-архивы-gz","5. Ротируются не те файлы (например, ротируются архивы ",[39,1835,1184],{},")",[21,1838,1839,1841,1842,1845,1846,1848,1849,1851,1852,1855,1856,1858,1859,1862,1863,1865],{},[958,1840,1678],{}," Шаблон пути слишком общий (например, ",[39,1843,1844],{},"/var/log/app/*"," захватывает и ",[39,1847,1184],{}," файлы).\n",[958,1850,1682],{}," Уточните шаблон: ",[39,1853,1854],{},"/var/log/app/*.log"," вместо ",[39,1857,1844],{},". Или добавьте ",[39,1860,1861],{},"prerotate","/",[39,1864,1212],{}," для исключения, но лучше уточнить шаблон.",[755,1867,1868],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":78,"searchDepth":92,"depth":92,"links":1870},[1871,1872,1873,1874,1875,1876,1877,1878],{"id":18,"depth":92,"text":19},{"id":26,"depth":92,"text":27},{"id":1044,"depth":92,"text":1045},{"id":1227,"depth":92,"text":1228},{"id":1391,"depth":92,"text":1392},{"id":1516,"depth":92,"text":1517},{"id":609,"depth":92,"text":610},{"id":706,"depth":92,"text":707,"children":1879},[1880,1881,1882,1883,1884],{"id":1672,"depth":123,"text":1673},{"id":1703,"depth":123,"text":1704},{"id":1761,"depth":123,"text":1762},{"id":1796,"depth":123,"text":1797},{"id":1832,"depth":123,"text":1885},"5. Ротируются не те файлы (например, ротируются архивы .gz)","2026-04-08 08:52:46","Узнайте, как правильно настроить logrotate для автоматической ротации логов в Linux. Пошаговая инструкция с примерами конфигурации, тестированием и решением частых проблем. Начните настройку за 15 минут!","easy","15-20 мин",[1891,1894,1897,1900],{"question":1892,"answer":1893},"Как проверить, что logrotate работает корректно?","Выполните `logrotate -d /etc/logrotate.conf` для тестового прогона без изменений или `logrotate -f /etc/logrotate.conf` для принудительного запуска. Также проверьте наличие ротированных файлов в целевых директориях.",{"question":1895,"answer":1896},"Какой интервал ротации выбрать: daily, weekly или monthly?","Выбирайте daily для высоконагруженных сервисов (веб-серверы, приложения), weekly для умеренной нагрузки и monthly для архивных или редко используемых логов. Учитывайте объем логов и политику хранения.",{"question":1898,"answer":1899},"Logrotate не удаляет старые логи, хотя указано rotate 7. Почему?","Чаще всего причина в отсутствии права на удаление у пользователя, от которого работает logrotate (обычно root). Проверьте права на директорию с логами и настройки `create`/`sharedscripts`. Также убедитесь, что `maxage` не конфликтует с `rotate`.",{"question":1901,"answer":1902},"Можно ли настроить logrotate для конкретного приложения, например, Docker?","Да. Создайте отдельный конфиг-файл в `/etc/logrotate.d/` (например, `docker`) и укажите пути к логам контейнеров. Убедитесь, что приложение пишет логи в файлы, а не в stdout/stderr, или настройте перехват логов через драйвер json-file.",[1904,1907,1910,1913],{"name":1905,"text":1906},"Создание конфигурационного файла","Создайте файл в `/etc/logrotate.d/` (например, `myapp`) или отредактируйте основной `/etc/logrotate.conf`. Настройте блок для вашего приложения, указав путь к логам и параметры ротации.",{"name":1908,"text":1909},"Настройка параметров ротации","Определите частоту (`daily`, `weekly`, `monthly`), количество хранимых архивов (`rotate 7`), сжатие (`compress`), создание новых файлов после ротации (`create 644 root root`) и другие опции.",{"name":1911,"text":1912},"Тестирование конфигурации","Запустите `logrotate -d /etc/logrotate.conf` для сухого прогона. Проверьте вывод на ошибки. Затем выполните `logrotate -f /etc/logrotate.conf` для принудительной ротации и убедитесь, что старые логи архивируются.",{"name":1914,"text":1915},"Добавление в cron","Logrotate обычно уже добавлен в cron (ежедневно в `/etc/cron.daily/logrotate`). Если нужно изменить расписание, отредактируйте crontab или настройте анимацию через `anacron`.","PT20M",[1918,1919,1920,1921,1922,1923,1924,1925,1926,1927],"настройка logrotate","ротация логов linux","logrotate конфигурация пример","как настроить logrotate","logrotate daily weekly monthly","autoremove logrotate","compress logrotate","logrotate ошибка permission denied","проверить logrotate","logrotate для nginx",{},[1930,813,1931],"/guides/linux/nginx-log-rotation","/errors/linux/logrotate-error",{"title":945,"description":1887},"guides/linux/logrotate-setup","Это руководство помогает системным администраторам и разработчикам настроить logrotate — стандартный инструмент Linux для управления логами. Вы научитесь создавать конфигурации, тестировать их и решать типичные проблемы, чтобы предотвратить переполнение диска логами.",[814,1936,1937,1938,1939,77,1940],"logrotate","логи","администрирование","sysadmin","конфигурация","ahkt3VWTea9ZIHrflAUkxxH13RPEEgbnXsNMkyXHXpw"]