[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/linux-manage-logs":3,"mdc-hiznm6-key":1377,"mdc--24d1th-key":1404,"mdc-8a1seu-key":1421,"mdc--1tzec1-key":1438,"mdc-6hk28v-key":1460,"mdc-osff9u-key":1476,"mdc--dvq2u3-key":1499,"mdc--4v678c-key":1523,"mdc--l3jyw2-key":1531,"related-/guides/linux/linux-manage-journald-logs,/guides/linux/linux-logrotate-config,/errors/linux/disk-full-error":1539},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":1310,"code":1310,"createdAt":1311,"description":1312,"difficulty":1313,"draft":1314,"estimatedTime":1315,"extension":1316,"faq":1317,"howToSteps":1330,"howToTotalTime":1346,"image":1310,"keywords":1347,"locale":1358,"meta":1359,"navigation":312,"path":1360,"platform":1361,"related":1362,"section":1366,"seo":1367,"severity":1310,"stem":1368,"summary":1369,"tags":1370,"twitterCreator":1310,"twitterSite":1310,"type":1375,"updatedAt":1311,"__hash__":1376},"content_ru/guides/linux/linux-manage-logs.md","Управление логами в Linux: полное руководство по просмотру и настройке",[7,8,9,10],"Ubuntu 20.04+","CentOS 8+","Debian 11+","Linux с systemd","FixPedia Team",{"type":13,"value":14,"toc":1297},"minimark",[15,20,24,28,31,121,125,130,133,268,272,275,536,539,543,546,688,692,698,894,898,903,1047,1051,1153,1157,1293],[16,17,19],"h2",{"id":18},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,22,23],"p",{},"Логи в Linux — это детальный журнал событий системы и приложений. Они незаменимы для диагностики проблем, аудита безопасности и мониторинга. Без должного управления логи могут неконтролируемо расти, заполняя весь доступный диск и приводя к сбоям. Этот гайд поможет вам освоить полный цикл работы с логами: от их просмотра и мониторинга до настройки автоматической ротации, что гарантирует стабильность системы и сохранность важных записей.",[16,25,27],{"id":26},"требования-подготовка","Требования / Подготовка",[21,29,30],{},"Перед началом убедитесь, что у вас есть:",[32,33,34,42,48,82],"ol",{},[35,36,37,41],"li",{},[38,39,40],"strong",{},"Доступ к терминалу"," Linux (Ubuntu, CentOS, Debian или другой дистрибутив).",[35,43,44,47],{},[38,45,46],{},"Права суперпользователя (sudo)"," для некоторых операций (просмотр системных логов, очистка, настройка logrotate).",[35,49,50,53,54,58,59,62,63,62,66,69,70,73,74,77,78,81],{},[38,51,52],{},"Установленные базовые утилиты",": ",[55,56,57],"code",{},"coreutils"," (содержит ",[55,60,61],{},"tail",", ",[55,64,65],{},"less",[55,67,68],{},"truncate","), ",[55,71,72],{},"logrotate"," (обычно предустановлен). Для систем на базе ",[55,75,76],{},"systemd"," доступен ",[55,79,80],{},"journalctl",".",[35,83,84,87,88],{},[38,85,86],{},"Понимание, какая система логирования используется",":\n",[89,90,91,108],"ul",{},[35,92,93,96,97,100,101,62,104,107],{},[38,94,95],{},"Традиционный syslog",": логи в текстовых файлах в ",[55,98,99],{},"/var/log/"," (например, ",[55,102,103],{},"/var/log/syslog",[55,105,106],{},"/var/log/auth.log",").",[35,109,110,113,114,116,117,120],{},[38,111,112],{},"systemd-journald",": бинарный журнал, управляемый через ",[55,115,80],{},". Может храниться в ",[55,118,119],{},"/var/log/journal/"," или в памяти.",[16,122,124],{"id":123},"пошаговая-инструкция","Пошаговая инструкция",[126,127,129],"h3",{"id":128},"шаг-1-изучение-структуры-и-расположения-логов","Шаг 1: Изучение структуры и расположения логов",[21,131,132],{},"Сначала нужно понять, где в вашей системе находятся логи и как они организованы.",[32,134,135,198,232],{},[35,136,137,142,143,169,172,173,62,176,62,179,62,182,185,186,189,190,193,194,197],{},[38,138,139,140],{},"Посмотрите содержимое каталога ",[55,141,99],{},":",[144,145,150],"pre",{"className":146,"code":147,"language":148,"meta":149,"style":149},"language-bash shiki shiki-themes github-light github-dark","ls -lh /var/log/\n","bash","",[55,151,152],{"__ignoreMap":149},[153,154,157,161,165],"span",{"class":155,"line":156},"line",1,[153,158,160],{"class":159},"sScJk","ls",[153,162,164],{"class":163},"sj4cs"," -lh",[153,166,168],{"class":167},"sZZnC"," /var/log/\n",[170,171],"br",{},"Вы увидите множество файлов и каталогов: ",[55,174,175],{},"syslog",[55,177,178],{},"auth.log",[55,180,181],{},"kern.log",[55,183,184],{},"apache2/"," (логи веб-сервера), ",[55,187,188],{},"nginx/",", а также каталоги ",[55,191,192],{},"journal/"," (если используется journald) и архивы ",[55,195,196],{},".gz"," (сжатые старые логи).",[35,199,200,142,203,219,221,222,225,226,228,229,231],{},[38,201,202],{},"Определите, используется ли journald",[144,204,206],{"className":146,"code":205,"language":148,"meta":149,"style":149},"systemctl status systemd-journald\n",[55,207,208],{"__ignoreMap":149},[153,209,210,213,216],{"class":155,"line":156},[153,211,212],{"class":159},"systemctl",[153,214,215],{"class":167}," status",[153,217,218],{"class":167}," systemd-journald\n",[170,220],{},"Если служба активна (",[55,223,224],{},"active (running)","), то основные логи можно читать через ",[55,227,80],{},", а текстовые файлы в ",[55,230,99],{}," могут быть вторичными или содержать только критичные сообщения.",[35,233,234,237,238,261,263,264,267],{},[38,235,236],{},"Проверьте, какие процессы пишут в логи",". Например, для nginx:",[144,239,241],{"className":146,"code":240,"language":148,"meta":149,"style":149},"ps aux | grep nginx\n",[55,242,243],{"__ignoreMap":149},[153,244,245,248,251,255,258],{"class":155,"line":156},[153,246,247],{"class":159},"ps",[153,249,250],{"class":167}," aux",[153,252,254],{"class":253},"szBVR"," |",[153,256,257],{"class":159}," grep",[153,259,260],{"class":167}," nginx\n",[170,262],{},"В выводе ищите параметр ",[55,265,266],{},"error_log",", который укажет путь к его логам.",[126,269,271],{"id":270},"шаг-2-просмотр-логов-с-помощью-tail-и-less","Шаг 2: Просмотр логов с помощью tail и less",[21,273,274],{},"Эти две команды — основа для работы с текстовыми логами (syslog).",[89,276,277,359,428],{},[35,278,279,283,284],{},[38,280,281],{},[55,282,61],{}," — показывает конец файла. Идеально для просмотра последних событий.",[144,285,287],{"className":146,"code":286,"language":148,"meta":149,"style":149},"# Последние 10 строк системного лога\nsudo tail /var/log/syslog\n\n# Последние 50 строк лога аутентификации\nsudo tail -n 50 /var/log/auth.log\n\n# Следить за новыми записями в реальном времени (Ctrl+C для выхода)\nsudo tail -f /var/log/syslog\n",[55,288,289,295,307,314,320,336,341,347],{"__ignoreMap":149},[153,290,291],{"class":155,"line":156},[153,292,294],{"class":293},"sJ8bj","# Последние 10 строк системного лога\n",[153,296,298,301,304],{"class":155,"line":297},2,[153,299,300],{"class":159},"sudo",[153,302,303],{"class":167}," tail",[153,305,306],{"class":167}," /var/log/syslog\n",[153,308,310],{"class":155,"line":309},3,[153,311,313],{"emptyLinePlaceholder":312},true,"\n",[153,315,317],{"class":155,"line":316},4,[153,318,319],{"class":293},"# Последние 50 строк лога аутентификации\n",[153,321,323,325,327,330,333],{"class":155,"line":322},5,[153,324,300],{"class":159},[153,326,303],{"class":167},[153,328,329],{"class":163}," -n",[153,331,332],{"class":163}," 50",[153,334,335],{"class":167}," /var/log/auth.log\n",[153,337,339],{"class":155,"line":338},6,[153,340,313],{"emptyLinePlaceholder":312},[153,342,344],{"class":155,"line":343},7,[153,345,346],{"class":293},"# Следить за новыми записями в реальном времени (Ctrl+C для выхода)\n",[153,348,350,352,354,357],{"class":155,"line":349},8,[153,351,300],{"class":159},[153,353,303],{"class":167},[153,355,356],{"class":163}," -f",[153,358,306],{"class":167},[35,360,361,365,366,380,382,142,385],{},[38,362,363],{},[55,364,65],{}," — интерактивный просмотрщик для больших файлов. Позволяет прокручивать, искать и переключаться между файлами.",[144,367,369],{"className":146,"code":368,"language":148,"meta":149,"style":149},"sudo less /var/log/syslog\n",[55,370,371],{"__ignoreMap":149},[153,372,373,375,378],{"class":155,"line":156},[153,374,300],{"class":159},[153,376,377],{"class":167}," less",[153,379,306],{"class":167},[170,381],{},[38,383,384],{},"Управление в less",[89,386,387,397,406,416,422],{},[35,388,389,392,393,396],{},[55,390,391],{},"Пробел"," / ",[55,394,395],{},"PgDown"," — следующая страница.",[35,398,399,392,402,405],{},[55,400,401],{},"b",[55,403,404],{},"PgUp"," — предыдущая страница.",[35,407,408,411,412,415],{},[55,409,410],{},"/текст"," — поиск вперед. ",[55,413,414],{},"n"," — следующее совпадение.",[35,417,418,421],{},[55,419,420],{},"?текст"," — поиск назад.",[35,423,424,427],{},[55,425,426],{},"q"," — выход.",[35,429,430,142,435],{},[38,431,432,433],{},"Для journald используйте ",[55,434,80],{},[144,436,438],{"className":146,"code":437,"language":148,"meta":149,"style":149},"# Показать все записи journal (аналог less)\nsudo journalctl\n\n# Последние 50 записей\nsudo journalctl -n 50\n\n# Фильтрация по службе (например, nginx)\nsudo journalctl -u nginx.service\n\n# Просмотр с момента загрузки\nsudo journalctl -b\n\n# Реальный мониторинг (аналог tail -f)\nsudo journalctl -f\n",[55,439,440,445,452,456,461,473,477,482,494,499,505,515,520,526],{"__ignoreMap":149},[153,441,442],{"class":155,"line":156},[153,443,444],{"class":293},"# Показать все записи journal (аналог less)\n",[153,446,447,449],{"class":155,"line":297},[153,448,300],{"class":159},[153,450,451],{"class":167}," journalctl\n",[153,453,454],{"class":155,"line":309},[153,455,313],{"emptyLinePlaceholder":312},[153,457,458],{"class":155,"line":316},[153,459,460],{"class":293},"# Последние 50 записей\n",[153,462,463,465,468,470],{"class":155,"line":322},[153,464,300],{"class":159},[153,466,467],{"class":167}," journalctl",[153,469,329],{"class":163},[153,471,472],{"class":163}," 50\n",[153,474,475],{"class":155,"line":338},[153,476,313],{"emptyLinePlaceholder":312},[153,478,479],{"class":155,"line":343},[153,480,481],{"class":293},"# Фильтрация по службе (например, nginx)\n",[153,483,484,486,488,491],{"class":155,"line":349},[153,485,300],{"class":159},[153,487,467],{"class":167},[153,489,490],{"class":163}," -u",[153,492,493],{"class":167}," nginx.service\n",[153,495,497],{"class":155,"line":496},9,[153,498,313],{"emptyLinePlaceholder":312},[153,500,502],{"class":155,"line":501},10,[153,503,504],{"class":293},"# Просмотр с момента загрузки\n",[153,506,508,510,512],{"class":155,"line":507},11,[153,509,300],{"class":159},[153,511,467],{"class":167},[153,513,514],{"class":163}," -b\n",[153,516,518],{"class":155,"line":517},12,[153,519,313],{"emptyLinePlaceholder":312},[153,521,523],{"class":155,"line":522},13,[153,524,525],{"class":293},"# Реальный мониторинг (аналог tail -f)\n",[153,527,529,531,533],{"class":155,"line":528},14,[153,530,300],{"class":159},[153,532,467],{"class":167},[153,534,535],{"class":163}," -f\n",[537,538],"in-article-ad",{},[126,540,542],{"id":541},"шаг-3-мониторинг-логов-в-реальном-времени","Шаг 3: Мониторинг логов в реальном времени",[21,544,545],{},"Для оперативного отслеживания событий (например, при отладке) используйте режим слежения.",[32,547,548,586,654],{},[35,549,550,142,553,579,581,582,585],{},[38,551,552],{},"Для текстовых логов (syslog)",[144,554,556],{"className":146,"code":555,"language":148,"meta":149,"style":149},"sudo tail -f /var/log/syslog | grep --line-buffered \"ERROR\"\n",[55,557,558],{"__ignoreMap":149},[153,559,560,562,564,566,569,571,573,576],{"class":155,"line":156},[153,561,300],{"class":159},[153,563,303],{"class":167},[153,565,356],{"class":163},[153,567,568],{"class":167}," /var/log/syslog",[153,570,254],{"class":253},[153,572,257],{"class":159},[153,574,575],{"class":163}," --line-buffered",[153,577,578],{"class":167}," \"ERROR\"\n",[170,580],{},"Конструкция ",[55,583,584],{},"| grep --line-buffered"," фильтрует только строки с \"ERROR\" в реальном времени.",[35,587,588,142,591],{},[38,589,590],{},"Для journald",[144,592,594],{"className":146,"code":593,"language":148,"meta":149,"style":149},"# Отслеживать все новые записи\nsudo journalctl -f\n\n# Отслеживать записи конкретной службы\nsudo journalctl -u ssh.service -f\n\n# Отслеживать записи с определенным приоритетом (например, err)\nsudo journalctl -p err -f\n",[55,595,596,601,609,613,618,631,635,640],{"__ignoreMap":149},[153,597,598],{"class":155,"line":156},[153,599,600],{"class":293},"# Отслеживать все новые записи\n",[153,602,603,605,607],{"class":155,"line":297},[153,604,300],{"class":159},[153,606,467],{"class":167},[153,608,535],{"class":163},[153,610,611],{"class":155,"line":309},[153,612,313],{"emptyLinePlaceholder":312},[153,614,615],{"class":155,"line":316},[153,616,617],{"class":293},"# Отслеживать записи конкретной службы\n",[153,619,620,622,624,626,629],{"class":155,"line":322},[153,621,300],{"class":159},[153,623,467],{"class":167},[153,625,490],{"class":163},[153,627,628],{"class":167}," ssh.service",[153,630,535],{"class":163},[153,632,633],{"class":155,"line":338},[153,634,313],{"emptyLinePlaceholder":312},[153,636,637],{"class":155,"line":343},[153,638,639],{"class":293},"# Отслеживать записи с определенным приоритетом (например, err)\n",[153,641,642,644,646,649,652],{"class":155,"line":349},[153,643,300],{"class":159},[153,645,467],{"class":167},[153,647,648],{"class":163}," -p",[153,650,651],{"class":167}," err",[153,653,535],{"class":163},[35,655,656,659,660],{},[38,657,658],{},"Комбинированный мониторинг"," (если нужно смотреть оба источника):",[144,661,663],{"className":146,"code":662,"language":148,"meta":149,"style":149},"# В двух отдельных окнах терминала запустите:\nsudo tail -f /var/log/syslog\nsudo journalctl -f\n",[55,664,665,670,680],{"__ignoreMap":149},[153,666,667],{"class":155,"line":156},[153,668,669],{"class":293},"# В двух отдельных окнах терминала запустите:\n",[153,671,672,674,676,678],{"class":155,"line":297},[153,673,300],{"class":159},[153,675,303],{"class":167},[153,677,356],{"class":163},[153,679,306],{"class":167},[153,681,682,684,686],{"class":155,"line":309},[153,683,300],{"class":159},[153,685,467],{"class":167},[153,687,535],{"class":163},[126,689,691],{"id":690},"шаг-4-очистка-старых-и-ненужных-логов","Шаг 4: Очистка старых и ненужных логов",[21,693,694,697],{},[38,695,696],{},"Внимание:"," Очистка системных логов может удалить информацию, необходимую для расследования инцидентов. Удаляйте только уверенные в их ненужности.",[32,699,700,752,839],{},[35,701,702,705,706],{},[38,703,704],{},"Безопасное усечение (очистка) конкретного файла"," (файл остается, но его содержимое обнуляется). Это самый быстрый способ освободить место.",[144,707,709],{"className":146,"code":708,"language":148,"meta":149,"style":149},"# Усечь файл до нулевого размера\nsudo truncate -s 0 /var/log/syslog\n\n# Альтернативный способ (тоже обнулит файл)\nsudo echo > /var/log/syslog\n",[55,710,711,716,731,735,740],{"__ignoreMap":149},[153,712,713],{"class":155,"line":156},[153,714,715],{"class":293},"# Усечь файл до нулевого размера\n",[153,717,718,720,723,726,729],{"class":155,"line":297},[153,719,300],{"class":159},[153,721,722],{"class":167}," truncate",[153,724,725],{"class":163}," -s",[153,727,728],{"class":163}," 0",[153,730,306],{"class":167},[153,732,733],{"class":155,"line":309},[153,734,313],{"emptyLinePlaceholder":312},[153,736,737],{"class":155,"line":316},[153,738,739],{"class":293},"# Альтернативный способ (тоже обнулит файл)\n",[153,741,742,744,747,750],{"class":155,"line":322},[153,743,300],{"class":159},[153,745,746],{"class":167}," echo",[153,748,749],{"class":253}," >",[153,751,306],{"class":167},[35,753,754,142,760],{},[38,755,756,757,759],{},"Удаление старых архивных логов (",[55,758,196],{},")",[144,761,763],{"className":146,"code":762,"language":148,"meta":149,"style":149},"# Удалить все сжатые логи старше 30 дней в /var/log/\nsudo find /var/log/ -name \"*.gz\" -type f -mtime +30 -delete\n\n# Удалить все файлы логов, кроме основных (осторожно!)\nsudo find /var/log/ -type f ! -name 'syslog' ! -name 'auth.log' -delete\n",[55,764,765,770,801,805,810],{"__ignoreMap":149},[153,766,767],{"class":155,"line":156},[153,768,769],{"class":293},"# Удалить все сжатые логи старше 30 дней в /var/log/\n",[153,771,772,774,777,780,783,786,789,792,795,798],{"class":155,"line":297},[153,773,300],{"class":159},[153,775,776],{"class":167}," find",[153,778,779],{"class":167}," /var/log/",[153,781,782],{"class":163}," -name",[153,784,785],{"class":167}," \"*.gz\"",[153,787,788],{"class":163}," -type",[153,790,791],{"class":167}," f",[153,793,794],{"class":163}," -mtime",[153,796,797],{"class":167}," +30",[153,799,800],{"class":163}," -delete\n",[153,802,803],{"class":155,"line":309},[153,804,313],{"emptyLinePlaceholder":312},[153,806,807],{"class":155,"line":316},[153,808,809],{"class":293},"# Удалить все файлы логов, кроме основных (осторожно!)\n",[153,811,812,814,816,818,820,822,825,827,830,832,834,837],{"class":155,"line":322},[153,813,300],{"class":159},[153,815,776],{"class":167},[153,817,779],{"class":167},[153,819,788],{"class":163},[153,821,791],{"class":167},[153,823,824],{"class":167}," !",[153,826,782],{"class":163},[153,828,829],{"class":167}," 'syslog'",[153,831,824],{"class":167},[153,833,782],{"class":163},[153,835,836],{"class":167}," 'auth.log'",[153,838,800],{"class":163},[35,840,841,844,845],{},[38,842,843],{},"Очистка журнала journald"," (если он используется и занимает много места):",[144,846,848],{"className":146,"code":847,"language":148,"meta":149,"style":149},"# Очистить журнал до текущей сессии (аналог rotation)\nsudo journalctl --rotate\nsudo journalctl --vacuum-time=1d  # Оставить только записи за последний день\n\n# Очистить журнал, освободив определенный объем (например, 100M)\nsudo journalctl --vacuum-size=100M\n",[55,849,850,855,864,876,880,885],{"__ignoreMap":149},[153,851,852],{"class":155,"line":156},[153,853,854],{"class":293},"# Очистить журнал до текущей сессии (аналог rotation)\n",[153,856,857,859,861],{"class":155,"line":297},[153,858,300],{"class":159},[153,860,467],{"class":167},[153,862,863],{"class":163}," --rotate\n",[153,865,866,868,870,873],{"class":155,"line":309},[153,867,300],{"class":159},[153,869,467],{"class":167},[153,871,872],{"class":163}," --vacuum-time=1d",[153,874,875],{"class":293},"  # Оставить только записи за последний день\n",[153,877,878],{"class":155,"line":316},[153,879,313],{"emptyLinePlaceholder":312},[153,881,882],{"class":155,"line":322},[153,883,884],{"class":293},"# Очистить журнал, освободив определенный объем (например, 100M)\n",[153,886,887,889,891],{"class":155,"line":338},[153,888,300],{"class":159},[153,890,467],{"class":167},[153,892,893],{"class":163}," --vacuum-size=100M\n",[126,895,897],{"id":896},"шаг-5-настройка-автоматической-ротации-через-logrotate","Шаг 5: Настройка автоматической ротации через logrotate",[21,899,900,902],{},[55,901,72],{}," — стандартный инструмент для автоматического ротации, сжатия и удаления логов. Обычно он настроен по умолчанию, но для приложений может потребоваться дополнительная конфигурация.",[32,904,905,917,930,970,1006,1027],{},[35,906,907,53,910,913,914,107],{},[38,908,909],{},"Основной конфигурационный файл",[55,911,912],{},"/etc/logrotate.conf",". Он содержит глобальные настройки (часто ",[55,915,916],{},"include /etc/logrotate.d;",[35,918,919,922,923,926,927,81],{},[38,920,921],{},"Конфигурации для конкретных логов"," размещаются в ",[55,924,925],{},"/etc/logrotate.d/",". Например, для nginx там может быть файл ",[55,928,929],{},"nginx",[35,931,932,935,936,939,940,955,957,958,961,962],{},[38,933,934],{},"Пример конфигурации для вашего приложения"," (создайте файл ",[55,937,938],{},"/etc/logrotate.d/myapp","):",[144,941,943],{"className":146,"code":942,"language":148,"meta":149,"style":149},"sudo nano /etc/logrotate.d/myapp\n",[55,944,945],{"__ignoreMap":149},[153,946,947,949,952],{"class":155,"line":156},[153,948,300],{"class":159},[153,950,951],{"class":167}," nano",[153,953,954],{"class":167}," /etc/logrotate.d/myapp\n",[170,956],{},"Вставьте конфигурацию (замените ",[55,959,960],{},"/var/log/myapp/app.log"," на путь к вашему логу):",[144,963,968],{"className":964,"code":966,"language":967},[965],"language-text","/var/log/myapp/*.log {\n    daily              # Ротировать ежедневно\n    rotate 7           # Хранить 7 архивов (7 дней)\n    compress           # Сжимать ротированные логи (gzip)\n    delaycompress      # Сжимать не сразу, а при следующей ротации (чтобы можно было читать текущий)\n    missingok          # Не выдавать ошибку, если лог-файл отсутствует\n    notifempty         # Не ротировать пустые файлы\n    create 644 root root # Создавать новый лог-файл с этими правами после ротации\n    sharedscripts      # Запускать скрипты (postrotate) один раз на все файлы в блоке\n    postrotate\n        # Команда для уведомления приложения о ротации (например, переоткрыть файл)\n        # systemctl reload myapp.service > /dev/null 2>&1 || true\n    endscript\n}\n","text",[55,969,966],{"__ignoreMap":149},[35,971,972,975,976,994,996,997,1000,1001,1005],{},[38,973,974],{},"Тестирование конфигурации"," (без реального выполнения):",[144,977,979],{"className":146,"code":978,"language":148,"meta":149,"style":149},"sudo logrotate -d /etc/logrotate.conf\n",[55,980,981],{"__ignoreMap":149},[153,982,983,985,988,991],{"class":155,"line":156},[153,984,300],{"class":159},[153,986,987],{"class":167}," logrotate",[153,989,990],{"class":163}," -d",[153,992,993],{"class":167}," /etc/logrotate.conf\n",[170,995],{},"Флаг ",[55,998,999],{},"-d"," (debug) покажет, какие действия logrotate ",[1002,1003,1004],"em",{},"собирается"," предпринять.",[35,1007,1008,1011,1012],{},[38,1009,1010],{},"Принудительный запуск logrotate"," (для теста или ручного сценария):",[144,1013,1015],{"className":146,"code":1014,"language":148,"meta":149,"style":149},"sudo logrotate -f /etc/logrotate.conf\n",[55,1016,1017],{"__ignoreMap":149},[153,1018,1019,1021,1023,1025],{"class":155,"line":156},[153,1020,300],{"class":159},[153,1022,987],{"class":167},[153,1024,356],{"class":163},[153,1026,993],{"class":167},[35,1028,1029,1031,1032,142,1035,1041,1043,1044,81],{},[38,1030,590],{}," настройка ротации происходит в ",[55,1033,1034],{},"/etc/systemd/journald.conf",[144,1036,1039],{"className":1037,"code":1038,"language":967},[965],"[Journal]\nSystemMaxUse=100M   # Максимальный размер журнала на диске\nSystemMaxFileSize=50M # Максимальный размер одного файла журнала\nMaxRetentionSec=1month # Хранить не дольше месяца\n",[55,1040,1038],{"__ignoreMap":149},[170,1042],{},"После изменений перезапустите службу: ",[55,1045,1046],{},"sudo systemctl restart systemd-journald",[16,1048,1050],{"id":1049},"проверка-результата","Проверка результата",[32,1052,1053,1078,1111],{},[35,1054,1055,142,1058],{},[38,1056,1057],{},"После настройки logrotate",[89,1059,1060,1069,1072],{},[35,1061,1062,1063,1065,1066,1068],{},"Убедитесь, что в ",[55,1064,99],{}," появились сжатые архивы (",[55,1067,196],{},") вашего приложения.",[35,1070,1071],{},"Проверьте, что приложение продолжает писать в новый (неархивированный) лог-файл.",[35,1073,1074,1075,81],{},"Посмотрите даты файлов: ",[55,1076,1077],{},"ls -lh /var/log/myapp/",[35,1079,1080,142,1082],{},[38,1081,590],{},[144,1083,1085],{"className":146,"code":1084,"language":148,"meta":149,"style":149},"sudo journalctl --disk-usage  # Покажет текущий размер журнала\nsudo journalctl --list-boots  # Покажет доступные загрузки (ротации)\n",[55,1086,1087,1099],{"__ignoreMap":149},[153,1088,1089,1091,1093,1096],{"class":155,"line":156},[153,1090,300],{"class":159},[153,1092,467],{"class":167},[153,1094,1095],{"class":163}," --disk-usage",[153,1097,1098],{"class":293},"  # Покажет текущий размер журнала\n",[153,1100,1101,1103,1105,1108],{"class":155,"line":297},[153,1102,300],{"class":159},[153,1104,467],{"class":167},[153,1106,1107],{"class":163}," --list-boots",[153,1109,1110],{"class":293},"  # Покажет доступные загрузки (ротации)\n",[35,1112,1113,142,1116],{},[38,1114,1115],{},"Общий мониторинг",[144,1117,1119],{"className":146,"code":1118,"language":148,"meta":149,"style":149},"df -h /var/log  # Убедитесь, что место на разделе не заполнено\nsudo du -sh /var/log/*  # Посмотрите, какие логи самые большие\n",[55,1120,1121,1135],{"__ignoreMap":149},[153,1122,1123,1126,1129,1132],{"class":155,"line":156},[153,1124,1125],{"class":159},"df",[153,1127,1128],{"class":163}," -h",[153,1130,1131],{"class":167}," /var/log",[153,1133,1134],{"class":293},"  # Убедитесь, что место на разделе не заполнено\n",[153,1136,1137,1139,1142,1145,1147,1150],{"class":155,"line":297},[153,1138,300],{"class":159},[153,1140,1141],{"class":167}," du",[153,1143,1144],{"class":163}," -sh",[153,1146,779],{"class":167},[153,1148,1149],{"class":163},"*",[153,1151,1152],{"class":293},"  # Посмотрите, какие логи самые большие\n",[16,1154,1156],{"id":1155},"возможные-проблемы","Возможные проблемы",[89,1158,1159,1179,1207,1244,1268],{},[35,1160,1161,142,1164],{},[38,1162,1163],{},"\"Permission denied\" при просмотре/очистке логов",[89,1165,1166],{},[35,1167,1168,1171,1172,1174,1175,1178],{},[38,1169,1170],{},"Решение",": Всегда используйте ",[55,1173,300],{}," для системных логов. Проверьте права на файл (",[55,1176,1177],{},"ls -l /var/log/syslog","). Если приложение пишет в лог от своего пользователя, убедитесь, что у этого пользователя есть права на запись.",[35,1180,1181,142,1188],{},[38,1182,1183,1184,1187],{},"Диск ",[55,1185,1186],{},"/var/"," заполнен, система нестабильна",[89,1189,1190],{},[35,1191,1192,1194,1195,1198,1199,1202,1203,1206],{},[38,1193,1170],{},": Срочно очистите самые большие логи (шаг 4). Затем настройте агрессивную ротацию через logrotate или journald (уменьшите ",[55,1196,1197],{},"rotate"," и ",[55,1200,1201],{},"SystemMaxUse","). Рассмотрите возможность переноса ",[55,1204,1205],{},"/var/log"," на отдельный раздел.",[35,1208,1209,142,1212],{},[38,1210,1211],{},"Логи приложения не ротируются через logrotate",[89,1213,1214],{},[35,1215,1216,87,1219],{},[38,1217,1218],{},"Проверьте",[32,1220,1221,1226,1232,1238],{},[35,1222,1223,1224,81],{},"Правильность пути к лог-файлу в конфиге ",[55,1225,925],{},[35,1227,1228,1229,107],{},"Запускается ли logrotate (обычно через cron: ",[55,1230,1231],{},"grep logrotate /etc/crontab /etc/cron.*/*",[35,1233,1234,1235,107],{},"Нет ли опечаток в конфиге (проверьте через ",[55,1236,1237],{},"logrotate -d",[35,1239,1240,1241,81],{},"Не перекрывает ли ваша конфигурация настройки из основного ",[55,1242,1243],{},"logrotate.conf",[35,1245,1246,142,1249],{},[38,1247,1248],{},"После ротации приложение перестало писать в лог",[89,1250,1251],{},[35,1252,1253,1255,1256,1259,1260,1263,1264,1267],{},[38,1254,1170],{},": Чаще всего приложение нужно уведомить о смене файла. В блоке ",[55,1257,1258],{},"postrotate"," скрипта добавьте команду переоткрытия лога (например, ",[55,1261,1262],{},"kill -USR1 \u003Cpid>"," или ",[55,1265,1266],{},"systemctl reload service","). Для многих демонов (nginx, apache) это стандартная практика.",[35,1269,1270,142,1276],{},[38,1271,1272,1273],{},"Journald не освобождает место после ",[55,1274,1275],{},"vacuum",[89,1277,1278],{},[35,1279,1280,1282,1283,1286,1287,1289,1290,107],{},[38,1281,1218],{},", не смонтирован ли журнал в tmpfs (",[55,1284,1285],{},"/run/log/journal","). В этом случае он хранится в памяти и очищается при перезагрузке. Для постоянного хранения на диске убедитесь, что каталог ",[55,1288,119],{}," существует (",[55,1291,1292],{},"sudo mkdir -p /var/log/journal && sudo systemctl restart systemd-journald",[1294,1295,1296],"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":149,"searchDepth":297,"depth":297,"links":1298},[1299,1300,1301,1308,1309],{"id":18,"depth":297,"text":19},{"id":26,"depth":297,"text":27},{"id":123,"depth":297,"text":124,"children":1302},[1303,1304,1305,1306,1307],{"id":128,"depth":309,"text":129},{"id":270,"depth":309,"text":271},{"id":541,"depth":309,"text":542},{"id":690,"depth":309,"text":691},{"id":896,"depth":309,"text":897},{"id":1049,"depth":297,"text":1050},{"id":1155,"depth":297,"text":1156},null,"2026-02-16 20:04:43","Научитесь эффективно управлять системными логами в Linux: от базового просмотра до настройки автоматической ротации. Пошаговая инструкция для администраторов и разработчиков.","medium",false,"10-15 мин","md",[1318,1321,1324,1327],{"question":1319,"answer":1320},"Как посмотреть последние 100 строк системного лога?","Используйте `sudo tail -n 100 /var/log/syslog` для syslog или `journalctl -n 100` для journald.",{"question":1322,"answer":1323},"Как безопасно очистить старые логи без удаления файлов?","Усеките файл командой `sudo truncate -s 0 /var/log/имя_файла` — это освободит место, сохранив файл.",{"question":1325,"answer":1326},"Почему логи продолжают расти несмотря на logrotate?","Проверьте конфигурацию logrotate: возможно, не хватает параметра `compress` или приложение пишет в лог без rotates.",{"question":1328,"answer":1329},"Как настроить ротацию для логов своего приложения?","Создайте файл в `/etc/logrotate.d/` с правилами для вашего лога, как в примере шага 4, и протестируйте через `logrotate -d`.",[1331,1334,1337,1340,1343],{"name":1332,"text":1333},"Изучение структуры и расположения логов","Ознакомьтесь с основными каталогами логов (`/var/log/`) и определите, какая система логирования используется (syslog или journald).",{"name":1335,"text":1336},"Просмотр логов с помощью tail и less","Освойте базовые команды для чтения логов: `tail` для конца файла и `less` для навигации по всему содержимому.",{"name":1338,"text":1339},"Мониторинг логов в реальном времени","Научитесь отслеживать новые записи с помощью `tail -f` или `journalctl -f` для оперативного реагирования на события.",{"name":1341,"text":1342},"Очистка старых и ненужных логов","Безопасно удалите или усеките устаревшие логи, чтобы освободить место на диске, с учетом прав доступа.",{"name":1344,"text":1345},"Настройка автоматической ротации через logrotate","Создайте или измените конфигурацию logrotate для автоматического архивирования и удаления старых логов.","PT15M",[1348,1349,1350,1351,1352,1353,1354,1355,1356,1357],"управление логами linux","просмотр логов linux команды","logrotate конфигурация","journalctl использование","системные логи ubuntu","очистка логов linux","мониторинг логов в реальном времени","ротация логов systemd","где хранятся логи в linux","логи nginx apache linux","ru_RU",{},"/guides/linux/linux-manage-logs","linux",[1363,1364,1365],"/guides/linux/linux-manage-journald-logs","/guides/linux/linux-logrotate-config","/errors/linux/disk-full-error","Гайды по Linux",{"title":5,"description":1312},"guides/linux/linux-manage-logs","Этот гайд объясняет, как работать с логами в Linux: где они хранятся, как их просматривать, мониторить в реальном времени и настраивать автоматическую ротацию через logrotate для предотвращения заполнения диска.",[1361,1371,175,1372,72,1373,1374],"logs","journald","администрирование","monitoring","guide","7D5oK6IXZpLSBnphHS7kfapbjJ_h8QU79IVLv_mmy7M",{"data":1378,"body":1379},{},{"type":1380,"children":1381},"root",[1382],{"type":1383,"tag":21,"props":1384,"children":1385},"element",{},[1386,1388,1394,1396,1402],{"type":967,"value":1387},"Используйте ",{"type":1383,"tag":55,"props":1389,"children":1391},{"className":1390},[],[1392],{"type":967,"value":1393},"sudo tail -n 100 /var/log/syslog",{"type":967,"value":1395}," для syslog или ",{"type":1383,"tag":55,"props":1397,"children":1399},{"className":1398},[],[1400],{"type":967,"value":1401},"journalctl -n 100",{"type":967,"value":1403}," для journald.",{"data":1405,"body":1406},{},{"type":1380,"children":1407},[1408],{"type":1383,"tag":21,"props":1409,"children":1410},{},[1411,1413,1419],{"type":967,"value":1412},"Усеките файл командой ",{"type":1383,"tag":55,"props":1414,"children":1416},{"className":1415},[],[1417],{"type":967,"value":1418},"sudo truncate -s 0 /var/log/имя_файла",{"type":967,"value":1420}," — это освободит место, сохранив файл.",{"data":1422,"body":1423},{},{"type":1380,"children":1424},[1425],{"type":1383,"tag":21,"props":1426,"children":1427},{},[1428,1430,1436],{"type":967,"value":1429},"Проверьте конфигурацию logrotate: возможно, не хватает параметра ",{"type":1383,"tag":55,"props":1431,"children":1433},{"className":1432},[],[1434],{"type":967,"value":1435},"compress",{"type":967,"value":1437}," или приложение пишет в лог без rotates.",{"data":1439,"body":1440},{},{"type":1380,"children":1441},[1442],{"type":1383,"tag":21,"props":1443,"children":1444},{},[1445,1447,1452,1454,1459],{"type":967,"value":1446},"Создайте файл в ",{"type":1383,"tag":55,"props":1448,"children":1450},{"className":1449},[],[1451],{"type":967,"value":925},{"type":967,"value":1453}," с правилами для вашего лога, как в примере шага 4, и протестируйте через ",{"type":1383,"tag":55,"props":1455,"children":1457},{"className":1456},[],[1458],{"type":967,"value":1237},{"type":967,"value":81},{"data":1461,"body":1462},{},{"type":1380,"children":1463},[1464],{"type":1383,"tag":21,"props":1465,"children":1466},{},[1467,1469,1474],{"type":967,"value":1468},"Ознакомьтесь с основными каталогами логов (",{"type":1383,"tag":55,"props":1470,"children":1472},{"className":1471},[],[1473],{"type":967,"value":99},{"type":967,"value":1475},") и определите, какая система логирования используется (syslog или journald).",{"data":1477,"body":1478},{},{"type":1380,"children":1479},[1480],{"type":1383,"tag":21,"props":1481,"children":1482},{},[1483,1485,1490,1492,1497],{"type":967,"value":1484},"Освойте базовые команды для чтения логов: ",{"type":1383,"tag":55,"props":1486,"children":1488},{"className":1487},[],[1489],{"type":967,"value":61},{"type":967,"value":1491}," для конца файла и ",{"type":1383,"tag":55,"props":1493,"children":1495},{"className":1494},[],[1496],{"type":967,"value":65},{"type":967,"value":1498}," для навигации по всему содержимому.",{"data":1500,"body":1501},{},{"type":1380,"children":1502},[1503],{"type":1383,"tag":21,"props":1504,"children":1505},{},[1506,1508,1514,1515,1521],{"type":967,"value":1507},"Научитесь отслеживать новые записи с помощью ",{"type":1383,"tag":55,"props":1509,"children":1511},{"className":1510},[],[1512],{"type":967,"value":1513},"tail -f",{"type":967,"value":1263},{"type":1383,"tag":55,"props":1516,"children":1518},{"className":1517},[],[1519],{"type":967,"value":1520},"journalctl -f",{"type":967,"value":1522}," для оперативного реагирования на события.",{"data":1524,"body":1525},{},{"type":1380,"children":1526},[1527],{"type":1383,"tag":21,"props":1528,"children":1529},{},[1530],{"type":967,"value":1342},{"data":1532,"body":1533},{},{"type":1380,"children":1534},[1535],{"type":1383,"tag":21,"props":1536,"children":1537},{},[1538],{"type":967,"value":1345},[1540],{"id":1541,"title":1542,"appliesTo":1543,"author":11,"body":1545,"canonical":1310,"code":1310,"createdAt":2527,"description":2528,"difficulty":1313,"draft":1314,"estimatedTime":1315,"extension":1316,"faq":2529,"howToSteps":2542,"howToTotalTime":1346,"image":1310,"keywords":2558,"locale":1358,"meta":2567,"navigation":312,"path":1363,"platform":1361,"related":2568,"section":2572,"seo":2573,"severity":1310,"stem":2574,"summary":2575,"tags":2576,"twitterCreator":1310,"twitterSite":1310,"type":1375,"updatedAt":2527,"__hash__":2580},"content_ru/guides/linux/linux-manage-journald-logs.md","Полное руководство по управлению логами systemd-journald",[1544,7,8,9],"systemd 245+",{"type":13,"value":1546,"toc":2516},[1547,1549,1552,1554,1557,1591,1594,1598,1601,1665,1684,1686,1690,1693,1799,1802,1825,1827,1831,1840,1895,1917,1920,1966,1968,1970,1972,1976,1981,2071,2076,2106,2111,2134,2136,2140,2146,2270,2284,2315,2317,2319,2365,2367,2369,2477,2479,2484,2513],[16,1548,19],{"id":18},[21,1550,1551],{},"Systemd-journald — централизованная система сбора логов в современных дистрибутивах Linux. Она заменяет классический syslog и хранит записи в бинарном формате, что обеспечивает структурированный поиск и индексирование. Однако без управления журналы могут занимать гигабайты дискового пространства, замедлять систему и затруднять анализ. Этот гайд покажет, как контролировать рост логов, быстро находить нужные события и настроить автоматическую ротацию.",[16,1553,27],{"id":26},[21,1555,1556],{},"Перед началом убедитесь, что:",[89,1558,1559,1565,1571,1583],{},[35,1560,1561,1562,1564],{},"У вас есть права ",[38,1563,300],{}," или доступ к root-пользователю.",[35,1566,1567,1568,107],{},"На системе используется systemd (проверьте: ",[55,1569,1570],{},"systemctl --version",[35,1572,1573,1574,1577,1578,1580,1581,81],{},"Журнал хранится в ",[38,1575,1576],{},"постоянном"," режиме (файлы в ",[55,1579,119],{},"). Если папки нет, создайте: ",[55,1582,1292],{},[35,1584,1585,1586,1588,1589,107],{},"Установлена утилита ",[55,1587,80],{}," (обычно входит в пакет ",[55,1590,76],{},[1592,1593],"hr",{},[16,1595,1597],{"id":1596},"шаг-1-просмотр-логов-и-базовый-поиск","Шаг 1: Просмотр логов и базовый поиск",[21,1599,1600],{},"Журнал systemd-journald хранит все системные события, включая вывод сервисов, ядра и init-системы. Для просмотра используйте:",[144,1602,1604],{"className":146,"code":1603,"language":148,"meta":149,"style":149},"# Вывод всех записей с последними в конце (по умолчанию)\njournalctl\n\n# Просмотр с пагинацией (клавиши ↑/↓, q для выхода)\njournalctl | less\n\n# Отображение в реальном времени (аналог tail -f)\njournalctl -f\n\n# Показать только сообщения ядра\njournalctl -k\n",[55,1605,1606,1611,1616,1620,1625,1634,1638,1643,1649,1653,1658],{"__ignoreMap":149},[153,1607,1608],{"class":155,"line":156},[153,1609,1610],{"class":293},"# Вывод всех записей с последними в конце (по умолчанию)\n",[153,1612,1613],{"class":155,"line":297},[153,1614,1615],{"class":159},"journalctl\n",[153,1617,1618],{"class":155,"line":309},[153,1619,313],{"emptyLinePlaceholder":312},[153,1621,1622],{"class":155,"line":316},[153,1623,1624],{"class":293},"# Просмотр с пагинацией (клавиши ↑/↓, q для выхода)\n",[153,1626,1627,1629,1631],{"class":155,"line":322},[153,1628,80],{"class":159},[153,1630,254],{"class":253},[153,1632,1633],{"class":159}," less\n",[153,1635,1636],{"class":155,"line":338},[153,1637,313],{"emptyLinePlaceholder":312},[153,1639,1640],{"class":155,"line":343},[153,1641,1642],{"class":293},"# Отображение в реальном времени (аналог tail -f)\n",[153,1644,1645,1647],{"class":155,"line":349},[153,1646,80],{"class":159},[153,1648,535],{"class":163},[153,1650,1651],{"class":155,"line":496},[153,1652,313],{"emptyLinePlaceholder":312},[153,1654,1655],{"class":155,"line":501},[153,1656,1657],{"class":293},"# Показать только сообщения ядра\n",[153,1659,1660,1662],{"class":155,"line":507},[153,1661,80],{"class":159},[153,1663,1664],{"class":163}," -k\n",[21,1666,1667,1670,1671,1673,1674,1676,1677,1680,1681,81],{},[38,1668,1669],{},"Примечание:"," Для выхода из ",[55,1672,65],{}," нажмите ",[55,1675,426],{},". Чтобы прервать ",[55,1678,1679],{},"-f"," — ",[55,1682,1683],{},"Ctrl+C",[1592,1685],{},[16,1687,1689],{"id":1688},"шаг-2-фильтрация-по-времени-сервису-и-приоритету","Шаг 2: Фильтрация по времени, сервису и приоритету",[21,1691,1692],{},"Самые полезные фильтры:",[144,1694,1696],{"className":146,"code":1695,"language":148,"meta":149,"style":149},"# Логи за сегодня\njournalctl --since today\n\n# За определённый период (формат: \"YYYY-MM-DD HH:MM:SS\")\njournalctl --since \"2024-02-15 09:00:00\" --until \"2024-02-15 18:00:00\"\n\n# Только ошибки (приоритет err, crit, alert, emerg)\njournalctl -p err\n\n# Логи конкретного сервиса (например, nginx)\njournalctl -u nginx.service\n\n# Комбинированный фильтр: ошибки nginx за последние 2 часа\njournalctl -u nginx.service -p err --since \"2 hours ago\"\n",[55,1697,1698,1703,1713,1717,1722,1737,1741,1746,1755,1759,1764,1772,1776,1781],{"__ignoreMap":149},[153,1699,1700],{"class":155,"line":156},[153,1701,1702],{"class":293},"# Логи за сегодня\n",[153,1704,1705,1707,1710],{"class":155,"line":297},[153,1706,80],{"class":159},[153,1708,1709],{"class":163}," --since",[153,1711,1712],{"class":167}," today\n",[153,1714,1715],{"class":155,"line":309},[153,1716,313],{"emptyLinePlaceholder":312},[153,1718,1719],{"class":155,"line":316},[153,1720,1721],{"class":293},"# За определённый период (формат: \"YYYY-MM-DD HH:MM:SS\")\n",[153,1723,1724,1726,1728,1731,1734],{"class":155,"line":322},[153,1725,80],{"class":159},[153,1727,1709],{"class":163},[153,1729,1730],{"class":167}," \"2024-02-15 09:00:00\"",[153,1732,1733],{"class":163}," --until",[153,1735,1736],{"class":167}," \"2024-02-15 18:00:00\"\n",[153,1738,1739],{"class":155,"line":338},[153,1740,313],{"emptyLinePlaceholder":312},[153,1742,1743],{"class":155,"line":343},[153,1744,1745],{"class":293},"# Только ошибки (приоритет err, crit, alert, emerg)\n",[153,1747,1748,1750,1752],{"class":155,"line":349},[153,1749,80],{"class":159},[153,1751,648],{"class":163},[153,1753,1754],{"class":167}," err\n",[153,1756,1757],{"class":155,"line":496},[153,1758,313],{"emptyLinePlaceholder":312},[153,1760,1761],{"class":155,"line":501},[153,1762,1763],{"class":293},"# Логи конкретного сервиса (например, nginx)\n",[153,1765,1766,1768,1770],{"class":155,"line":507},[153,1767,80],{"class":159},[153,1769,490],{"class":163},[153,1771,493],{"class":167},[153,1773,1774],{"class":155,"line":517},[153,1775,313],{"emptyLinePlaceholder":312},[153,1777,1778],{"class":155,"line":522},[153,1779,1780],{"class":293},"# Комбинированный фильтр: ошибки nginx за последние 2 часа\n",[153,1782,1783,1785,1787,1790,1792,1794,1796],{"class":155,"line":528},[153,1784,80],{"class":159},[153,1786,490],{"class":163},[153,1788,1789],{"class":167}," nginx.service",[153,1791,648],{"class":163},[153,1793,651],{"class":167},[153,1795,1709],{"class":163},[153,1797,1798],{"class":167}," \"2 hours ago\"\n",[21,1800,1801],{},"Дополнительные опции:",[89,1803,1804,1810,1816],{},[35,1805,1806,1809],{},[55,1807,1808],{},"-n 50"," — показать последние 50 записей.",[35,1811,1812,1815],{},[55,1813,1814],{},"--no-pager"," — выводить без паузы (удобно для скриптов).",[35,1817,1818,1263,1821,1824],{},[55,1819,1820],{},"-o json",[55,1822,1823],{},"-o json-pretty"," — вывод в JSON для парсинга.",[1592,1826],{},[16,1828,1830],{"id":1829},"шаг-3-очистка-устаревших-логов","Шаг 3: Очистка устаревших логов",[21,1832,1833,1834,1263,1837,142],{},"Журнал может расти бесконтрольно. Очистка возможна по ",[38,1835,1836],{},"времени",[38,1838,1839],{},"размеру",[144,1841,1843],{"className":146,"code":1842,"language":148,"meta":149,"style":149},"# Удалить записи старше 7 дней\nsudo journalctl --vacuum-time=7d\n\n# Оставить не более 200 МБ самых свежих записей\nsudo journalctl --vacuum-size=200M\n\n# Сохранить только логи за последние 24 часа\nsudo journalctl --vacuum-time=1d\n",[55,1844,1845,1850,1859,1863,1868,1877,1881,1886],{"__ignoreMap":149},[153,1846,1847],{"class":155,"line":156},[153,1848,1849],{"class":293},"# Удалить записи старше 7 дней\n",[153,1851,1852,1854,1856],{"class":155,"line":297},[153,1853,300],{"class":159},[153,1855,467],{"class":167},[153,1857,1858],{"class":163}," --vacuum-time=7d\n",[153,1860,1861],{"class":155,"line":309},[153,1862,313],{"emptyLinePlaceholder":312},[153,1864,1865],{"class":155,"line":316},[153,1866,1867],{"class":293},"# Оставить не более 200 МБ самых свежих записей\n",[153,1869,1870,1872,1874],{"class":155,"line":322},[153,1871,300],{"class":159},[153,1873,467],{"class":167},[153,1875,1876],{"class":163}," --vacuum-size=200M\n",[153,1878,1879],{"class":155,"line":338},[153,1880,313],{"emptyLinePlaceholder":312},[153,1882,1883],{"class":155,"line":343},[153,1884,1885],{"class":293},"# Сохранить только логи за последние 24 часа\n",[153,1887,1888,1890,1892],{"class":155,"line":349},[153,1889,300],{"class":159},[153,1891,467],{"class":167},[153,1893,1894],{"class":163}," --vacuum-time=1d\n",[1896,1897,1898],"blockquote",{},[21,1899,1900,1901,1904,1905,1908,1909,1912,1913,1916],{},"⚠️ ",[38,1902,1903],{},"Важно:"," Операция ",[55,1906,1907],{},"--vacuum-*"," удаляет ",[38,1910,1911],{},"все"," записи, удовлетворяющие критерию, даже если они относятся к разным сервисам. Для выборочной очистки используйте фильтры + ",[55,1914,1915],{},"--vacuum-time",", но будьте осторожны.",[21,1918,1919],{},"Если стандартная очистка не освобождает место (например, из-за \"заблокированных\" файлов), примените:",[144,1921,1923],{"className":146,"code":1922,"language":148,"meta":149,"style":149},"sudo systemctl stop systemd-journald\nsudo rm -rf /var/log/journal/*  # полная очистка\nsudo systemctl start systemd-journald\n",[55,1924,1925,1937,1955],{"__ignoreMap":149},[153,1926,1927,1929,1932,1935],{"class":155,"line":156},[153,1928,300],{"class":159},[153,1930,1931],{"class":167}," systemctl",[153,1933,1934],{"class":167}," stop",[153,1936,218],{"class":167},[153,1938,1939,1941,1944,1947,1950,1952],{"class":155,"line":297},[153,1940,300],{"class":159},[153,1942,1943],{"class":167}," rm",[153,1945,1946],{"class":163}," -rf",[153,1948,1949],{"class":167}," /var/log/journal/",[153,1951,1149],{"class":163},[153,1953,1954],{"class":293},"  # полная очистка\n",[153,1956,1957,1959,1961,1964],{"class":155,"line":309},[153,1958,300],{"class":159},[153,1960,1931],{"class":167},[153,1962,1963],{"class":167}," start",[153,1965,218],{"class":167},[1592,1967],{},[537,1969],{},[1592,1971],{},[16,1973,1975],{"id":1974},"шаг-4-настройка-автоматической-ротации","Шаг 4: Настройка автоматической ротации",[21,1977,1978,1979,142],{},"Редактируйте конфигурационный файл ",[55,1980,1034],{},[144,1982,1986],{"className":1983,"code":1984,"language":1985,"meta":149,"style":149},"language-ini shiki shiki-themes github-light github-dark","# Включить постоянное хранение (если ещё не активно)\nStorage=persistent\n\n# Максимальный общий размер журнала (можно указать K, M, G)\nSystemMaxUse=500M\n\n# Максимальный размер одного файла журнала\nSystemMaxFileSize=50M\n\n# Автоматически удалять записи старше N дней\nMaxRetentionSec=30d\n\n# Сжимать старые записи (экономит место)\nCompress=yes\n\n# Разделять логи по сервисам (удобно для диагностики)\nSplitMode=uid\n","ini",[55,1987,1988,1993,1998,2002,2007,2012,2016,2021,2026,2030,2035,2040,2044,2049,2054,2059,2065],{"__ignoreMap":149},[153,1989,1990],{"class":155,"line":156},[153,1991,1992],{},"# Включить постоянное хранение (если ещё не активно)\n",[153,1994,1995],{"class":155,"line":297},[153,1996,1997],{},"Storage=persistent\n",[153,1999,2000],{"class":155,"line":309},[153,2001,313],{"emptyLinePlaceholder":312},[153,2003,2004],{"class":155,"line":316},[153,2005,2006],{},"# Максимальный общий размер журнала (можно указать K, M, G)\n",[153,2008,2009],{"class":155,"line":322},[153,2010,2011],{},"SystemMaxUse=500M\n",[153,2013,2014],{"class":155,"line":338},[153,2015,313],{"emptyLinePlaceholder":312},[153,2017,2018],{"class":155,"line":343},[153,2019,2020],{},"# Максимальный размер одного файла журнала\n",[153,2022,2023],{"class":155,"line":349},[153,2024,2025],{},"SystemMaxFileSize=50M\n",[153,2027,2028],{"class":155,"line":496},[153,2029,313],{"emptyLinePlaceholder":312},[153,2031,2032],{"class":155,"line":501},[153,2033,2034],{},"# Автоматически удалять записи старше N дней\n",[153,2036,2037],{"class":155,"line":507},[153,2038,2039],{},"MaxRetentionSec=30d\n",[153,2041,2042],{"class":155,"line":517},[153,2043,313],{"emptyLinePlaceholder":312},[153,2045,2046],{"class":155,"line":522},[153,2047,2048],{},"# Сжимать старые записи (экономит место)\n",[153,2050,2051],{"class":155,"line":528},[153,2052,2053],{},"Compress=yes\n",[153,2055,2057],{"class":155,"line":2056},15,[153,2058,313],{"emptyLinePlaceholder":312},[153,2060,2062],{"class":155,"line":2061},16,[153,2063,2064],{},"# Разделять логи по сервисам (удобно для диагностики)\n",[153,2066,2068],{"class":155,"line":2067},17,[153,2069,2070],{},"SplitMode=uid\n",[21,2072,2073],{},[38,2074,2075],{},"Применение изменений:",[144,2077,2079],{"className":146,"code":2078,"language":148,"meta":149,"style":149},"sudo systemctl restart systemd-journald\nsudo systemctl status systemd-journald  # проверьте статус\n",[55,2080,2081,2092],{"__ignoreMap":149},[153,2082,2083,2085,2087,2090],{"class":155,"line":156},[153,2084,300],{"class":159},[153,2086,1931],{"class":167},[153,2088,2089],{"class":167}," restart",[153,2091,218],{"class":167},[153,2093,2094,2096,2098,2100,2103],{"class":155,"line":297},[153,2095,300],{"class":159},[153,2097,1931],{"class":167},[153,2099,215],{"class":167},[153,2101,2102],{"class":167}," systemd-journald",[153,2104,2105],{"class":293},"  # проверьте статус\n",[21,2107,2108],{},[38,2109,2110],{},"Проверка текущих лимитов:",[144,2112,2114],{"className":146,"code":2113,"language":148,"meta":149,"style":149},"journalctl --disk-usage  # текущий размер\njournalctl --list-boots  # список загрузок (по умолчанию хранятся)\n",[55,2115,2116,2125],{"__ignoreMap":149},[153,2117,2118,2120,2122],{"class":155,"line":156},[153,2119,80],{"class":159},[153,2121,1095],{"class":163},[153,2123,2124],{"class":293},"  # текущий размер\n",[153,2126,2127,2129,2131],{"class":155,"line":297},[153,2128,80],{"class":159},[153,2130,1107],{"class":163},[153,2132,2133],{"class":293},"  # список загрузок (по умолчанию хранятся)\n",[1592,2135],{},[16,2137,2139],{"id":2138},"шаг-5-расширенный-поиск-и-анализ","Шаг 5: Расширенный поиск и анализ",[21,2141,2142,2143,142],{},"Для глубокого анализа используйте комбинации фильтров и утилиты ",[55,2144,2145],{},"grep",[144,2147,2149],{"className":146,"code":2148,"language":148,"meta":149,"style":149},"# Найти все упоминания \"timeout\" в логах сервиса cron\njournalctl -u cron.service | grep -i timeout\n\n\n# Подсчитать количество ошибок по сервисам за последний день\njournalctl --since yesterday -p err --no-pager | \\\n  grep -oP '(?\u003C=^.*?service: ).*?(?=\\.)' | \\\n  sort | uniq -c | sort -nr\n\n# Экспорт логов в текстовый файл (для отправки в поддержку)\njournalctl --since \"1 hour ago\" --no-pager > /tmp/journal_snapshot.txt\n",[55,2150,2151,2156,2175,2179,2183,2188,2209,2224,2245,2249,2254],{"__ignoreMap":149},[153,2152,2153],{"class":155,"line":156},[153,2154,2155],{"class":293},"# Найти все упоминания \"timeout\" в логах сервиса cron\n",[153,2157,2158,2160,2162,2165,2167,2169,2172],{"class":155,"line":297},[153,2159,80],{"class":159},[153,2161,490],{"class":163},[153,2163,2164],{"class":167}," cron.service",[153,2166,254],{"class":253},[153,2168,257],{"class":159},[153,2170,2171],{"class":163}," -i",[153,2173,2174],{"class":167}," timeout\n",[153,2176,2177],{"class":155,"line":309},[153,2178,313],{"emptyLinePlaceholder":312},[153,2180,2181],{"class":155,"line":316},[153,2182,313],{"emptyLinePlaceholder":312},[153,2184,2185],{"class":155,"line":322},[153,2186,2187],{"class":293},"# Подсчитать количество ошибок по сервисам за последний день\n",[153,2189,2190,2192,2194,2197,2199,2201,2204,2206],{"class":155,"line":338},[153,2191,80],{"class":159},[153,2193,1709],{"class":163},[153,2195,2196],{"class":167}," yesterday",[153,2198,648],{"class":163},[153,2200,651],{"class":167},[153,2202,2203],{"class":163}," --no-pager",[153,2205,254],{"class":253},[153,2207,2208],{"class":163}," \\\n",[153,2210,2211,2214,2217,2220,2222],{"class":155,"line":343},[153,2212,2213],{"class":159},"  grep",[153,2215,2216],{"class":163}," -oP",[153,2218,2219],{"class":167}," '(?\u003C=^.*?service: ).*?(?=\\.)'",[153,2221,254],{"class":253},[153,2223,2208],{"class":163},[153,2225,2226,2229,2231,2234,2237,2239,2242],{"class":155,"line":349},[153,2227,2228],{"class":159},"  sort",[153,2230,254],{"class":253},[153,2232,2233],{"class":159}," uniq",[153,2235,2236],{"class":163}," -c",[153,2238,254],{"class":253},[153,2240,2241],{"class":159}," sort",[153,2243,2244],{"class":163}," -nr\n",[153,2246,2247],{"class":155,"line":496},[153,2248,313],{"emptyLinePlaceholder":312},[153,2250,2251],{"class":155,"line":501},[153,2252,2253],{"class":293},"# Экспорт логов в текстовый файл (для отправки в поддержку)\n",[153,2255,2256,2258,2260,2263,2265,2267],{"class":155,"line":507},[153,2257,80],{"class":159},[153,2259,1709],{"class":163},[153,2261,2262],{"class":167}," \"1 hour ago\"",[153,2264,2203],{"class":163},[153,2266,749],{"class":253},[153,2268,2269],{"class":167}," /tmp/journal_snapshot.txt\n",[21,2271,2272,2275,2276,2279,2280,2283],{},[38,2273,2274],{},"Совет:"," Для сложных запросов используйте поле ",[55,2277,2278],{},"__UID"," (идентификатор пользователя) или ",[55,2281,2282],{},"_PID"," (идентификатор процесса):",[144,2285,2287],{"className":146,"code":2286,"language":148,"meta":149,"style":149},"journalctl _PID=1234  # логи конкретного процесса\njournalctl _UID=1000  # логи пользователя с UID 1000\n",[55,2288,2289,2302],{"__ignoreMap":149},[153,2290,2291,2293,2296,2299],{"class":155,"line":156},[153,2292,80],{"class":159},[153,2294,2295],{"class":167}," _PID=",[153,2297,2298],{"class":163},"1234",[153,2300,2301],{"class":293},"  # логи конкретного процесса\n",[153,2303,2304,2306,2309,2312],{"class":155,"line":297},[153,2305,80],{"class":159},[153,2307,2308],{"class":167}," _UID=",[153,2310,2311],{"class":163},"1000",[153,2313,2314],{"class":293},"  # логи пользователя с UID 1000\n",[1592,2316],{},[16,2318,1050],{"id":1049},[32,2320,2321,2334,2346,2356],{},[35,2322,2323,2326,2327,2330,2331,2333],{},[38,2324,2325],{},"Размер журнала"," — выполните ",[55,2328,2329],{},"journalctl --disk-usage",". Значение должно соответствовать ",[55,2332,1201],{}," (если настроено) или быть в разумных пределах (\u003C 1 ГБ для сервера).",[35,2335,2336,2339,2340,2342,2343,107],{},[38,2337,2338],{},"Доступность логов"," — проверьте наличие файлов в ",[55,2341,119],{}," (если ",[55,2344,2345],{},"Storage=persistent",[35,2347,2348,2351,2352,2355],{},[38,2349,2350],{},"Корректность ротации"," — после срабатывания лимитов старые файлы должны архивироваться (расширение ",[55,2353,2354],{},".journal~",") или удаляться.",[35,2357,2358,2361,2362,81],{},[38,2359,2360],{},"Поиск работает"," — выполните тестовый запрос, например ",[55,2363,2364],{},"journalctl -u systemd-journald --since \"1 hour ago\"",[1592,2366],{},[16,2368,1156],{"id":1155},[2370,2371,2372,2384],"table",{},[2373,2374,2375],"thead",{},[2376,2377,2378,2382],"tr",{},[2379,2380,2381],"th",{},"Проблема",[2379,2383,1170],{},[2385,2386,2387,2404,2417,2433,2443,2463],"tbody",{},[2376,2388,2389,2395],{},[2390,2391,2392,2394],"td",{},[55,2393,2329],{}," показывает 0 B",[2390,2396,2397,2398,2401,2402,81],{},"Журнал отключён (",[55,2399,2400],{},"Storage=none","). Проверьте ",[55,2403,1034],{},[2376,2405,2406,2411],{},[2390,2407,2408,2409],{},"Нет логов в ",[55,2410,119],{},[2390,2412,2413,2414],{},"Папка не создана или права некорректны. Выполните: ",[55,2415,2416],{},"sudo mkdir -p /var/log/journal && sudo chown root:systemd-journal /var/log/journal && sudo chmod 2755 /var/log/journal",[2376,2418,2419,2422],{},[2390,2420,2421],{},"Очистка не удаляет старые записи",[2390,2423,2424,2425,2428,2429,2432],{},"Убедитесь, что ",[55,2426,2427],{},"MaxRetentionSec"," не превышает время жизни записей. Используйте ",[55,2430,2431],{},"journalctl --list-boots"," для просмотра загрузок.",[2376,2434,2435,2438],{},[2390,2436,2437],{},"Ошибка \"Failed to open directory\"",[2390,2439,2440,2441,81],{},"Не хватает прав. Все операции очистки требуют ",[55,2442,300],{},[2376,2444,2445,2448],{},[2390,2446,2447],{},"Журнал растёт слишком быстро",[2390,2449,2450,2451,2454,2455,2458,2459,2462],{},"Проверьте, нет ли \"болтливых\" сервисов. Уменьшите ",[55,2452,2453],{},"SystemMaxFileSize"," или включите ",[55,2456,2457],{},"RateLimitIntervalSec","/",[55,2460,2461],{},"RateLimitBurst"," в конфиге.",[2376,2464,2465,2468],{},[2390,2466,2467],{},"Потеря логов после перезагрузки",[2390,2469,2424,2470,2472,2473,2476],{},[55,2471,2345],{},". Если ",[55,2474,2475],{},"Storage=volatile",", логи хранятся только в RAM и теряются при выключении.",[1592,2478],{},[21,2480,2481],{},[38,2482,2483],{},"Следующие шаги:",[89,2485,2486,2497,2507],{},[35,2487,2488,2489,2492,2493,2496],{},"Изучите ",[38,2490,2491],{},"мониторинг загрузки"," через ",[55,2494,2495],{},"journalctl -b -1"," (логи предыдущей загрузки).",[35,2498,2499,2500,2503,2504,81],{},"Настройте ",[38,2501,2502],{},"перенаправление логов"," в внешние системы (например, Elasticsearch) через ",[55,2505,2506],{},"systemd-journal-remote",[35,2508,1387,2509,2512],{},[55,2510,2511],{},"journalctl -o export"," для конвертации в стандартные форматы (CSV, XML).",[1294,2514,2515],{},"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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":149,"searchDepth":297,"depth":297,"links":2517},[2518,2519,2520,2521,2522,2523,2524,2525,2526],{"id":18,"depth":297,"text":19},{"id":26,"depth":297,"text":27},{"id":1596,"depth":297,"text":1597},{"id":1688,"depth":297,"text":1689},{"id":1829,"depth":297,"text":1830},{"id":1974,"depth":297,"text":1975},{"id":2138,"depth":297,"text":2139},{"id":1049,"depth":297,"text":1050},{"id":1155,"depth":297,"text":1156},"2026-02-17 12:10:11","Пошаговая инструкция по просмотру, фильтрации и очистке логов journald. Узнайте, как настроить ротацию, контролировать место на диске и быстро находить нужные записи. Оптимизируйте логирование за 10 минут.",[2530,2533,2536,2539],{"question":2531,"answer":2532},"Как проверить, сколько места занимают логи journald?","Используйте команду `journalctl --disk-usage`. Она покажет текущий размер всего журнала.",{"question":2534,"answer":2535},"Можно ли настроить автоматическую очистку старых записей?","Да, через параметры `SystemMaxUse` и `MaxRetentionSec` в `/etc/systemd/journald.conf`. После настройки перезапустите службу: `sudo systemctl restart systemd-journald`.",{"question":2537,"answer":2538},"Почему после очистки место на диске не освобождается?","Возможно, файлы журнала всё ещё используются процессом. Используйте `sudo journalctl --vacuum-time=1s` для принудительной очистки или перезагрузите систему.",{"question":2540,"answer":2541},"Как найти логи конкретного сервиса?","Фильтруйте по имени юнита: `journalctl -u nginx.service` или `journalctl -u sshd --since today`.",[2543,2546,2549,2552,2555],{"name":2544,"text":2545},"Просмотр основных логов","Используйте `journalctl` без параметров для вывода всего журнала с обратным порядком (новые записи внизу). Для постраничного просмотра добавьте `| less`.",{"name":2547,"text":2548},"Фильтрация по времени и сервису","Применяйте `--since` и `--until` для временного диапазона (например, `--since \"2024-02-01 09:00:00\"`). Для фильтрации по юниту используйте `-u \u003Cимя_сервиса>`.",{"name":2550,"text":2551},"Очистка старых записей","Удалите логи старше определённого времени: `sudo journalctl --vacuum-time=3d` (старше 3 дней). Или по размеру: `sudo journalctl --vacuum-size=100M` (оставить 100 МБ).",{"name":2553,"text":2554},"Настройка политики ротации","Отредактируйте `/etc/systemd/journald.conf`: установите `SystemMaxUse=500M` (макс. размер) и `MaxRetentionSec=30d` (хранить 30 дней). Перезапустите службу.",{"name":2556,"text":2557},"Проверка конфигурации и места","Убедитесь, что настройки применены: `journalctl --disk-usage` и `systemctl status systemd-journald`. Проверьте, что `Storage=persistent` в конфиге.",[2559,2560,2561,2562,2563,2564,2565,2566],"управление логами journald","как очистить журнал systemd","journalctl команды примеры","очистка логов systemd-journald","настройка ротации journald","journald конфигурация","просмотр логов systemd","удалить старые логи journald",{},[2569,2570,2571],"/guides/linux/linux-analyze-boot-issues-with-journalctl","/guides/linux/linux-logrotate-alternatives","/errors/linux/disk-space-errors","Гайды Linux",{"title":1542,"description":2528},"guides/linux/linux-manage-journald-logs","В этом гайде вы научитесь эффективно управлять системными журналами Linux с помощью journald: искать, фильтровать, очищать и настраивать политику хранения. Покроем ключевые команды journalctl и параметры конфигурации.",[76,1372,2577,1373,80,2578,2579],"логирование","Linux","sysadmin","DcXcMzTonOmMo3tQeWaibBlXH5mhE8rj0CV5zC_we2U"]