[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/errors/linux/linux-dmesg-errors":3,"mdc-eilj2t-key":1733,"mdc-oljt5x-key":1752,"mdc-69q1sw-key":1774,"mdc--i0xhhs-key":1806,"mdc-5p7c71-key":1814,"mdc-1howul-key":1838,"mdc-3obvpb-key":1870,"mdc--x1ku6p-key":1886,"mdc-ulnuqo-key":1923,"related-/guides/linux/reading-journalctl-logs,/guides/linux/understanding-syslog":1947},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":1669,"code":1669,"createdAt":1670,"description":1671,"difficulty":1672,"draft":1673,"estimatedTime":1674,"extension":1675,"faq":1676,"howToSteps":1689,"howToTotalTime":1705,"image":1669,"keywords":1706,"locale":1715,"meta":1716,"navigation":255,"path":1717,"platform":1718,"related":1719,"section":1722,"seo":1723,"severity":1672,"stem":1724,"summary":1725,"tags":1726,"twitterCreator":1669,"twitterSite":1669,"type":1731,"updatedAt":1670,"__hash__":1732},"content_ru/errors/linux/linux-dmesg-errors.md","Анализ и исправление ошибок dmesg в Linux: практическое руководство",[7,8,9,10],"Linux ядро 4.x и выше","Ubuntu 20.04/22.04","CentOS/RHEL 8/9","Debian 11/12","FixPedia Team",{"type":13,"value":14,"toc":1640},"minimark",[15,20,33,38,73,84,89,103,137,141,147,157,177,201,205,211,215,220,273,278,406,411,454,459,480,484,532,558,562,566,571,577,582,596,600,604,610,614,628,632,636,642,646,663,667,671,677,681,695,698,702,707,711,748,752,842,846,872,876,1011,1015,1028,1134,1138,1145,1169,1172,1176,1179,1183,1189,1255,1261,1330,1334,1343,1349,1575,1585,1589,1592,1625,1628,1631,1636],[16,17,19],"h2",{"id":18},"что-такое-dmesg-и-зачем-он-нужен","Что такое dmesg и зачем он нужен?",[21,22,23,27,28,32],"p",{},[24,25,26],"code",{},"dmesg"," (driver message) — это утилита командной строки в Linux, которая выводит содержимое ",[29,30,31],"strong",{},"кольцевого буфера ядра"," (kernel ring buffer). Этот буфер хранит сообщения, генерируемые ядром и его модулями (драйверами) во время загрузки системы и её работы.",[21,34,35],{},[29,36,37],{},"Зачем это нужно?",[39,40,41,48,58,67],"ul",{},[42,43,44,47],"li",{},[29,45,46],{},"Диагностика оборудования:"," Узнать, было ли обнаружено устройство (диск, сетевая карта, USB-гаджет) и успешно ли инициализирован его драйвер.",[42,49,50,53,54,57],{},[29,51,52],{},"Поиск ошибок:"," Обнаружить сбои на уровне ядра, которые не всегда попадают в стандартные системные логи (",[24,55,56],{},"/var/log/syslog",").",[42,59,60,63,64,66],{},[29,61,62],{},"Отладка драйверов:"," Разработчики и администраторы используют ",[24,65,26],{}," для отслеживания работы собственных или сторонних модулей ядра.",[42,68,69,72],{},[29,70,71],{},"Анализ загрузки:"," Увидеть последовательность инициализации системных служб и оборудования.",[21,74,75,76,79,80,83],{},"Буфер имеет ограниченный размер (обычно 1-4 MB). Когда он заполняется, старые сообщения перезаписываются новыми. Поэтому для долгосрочного логирования используются демоны вроде ",[24,77,78],{},"systemd-journald"," или ",[24,81,82],{},"rsyslog",".",[85,86,88],"h3",{"id":87},"как-работает-dmesg","Как работает dmesg",[21,90,91,92,95,96,99,100,102],{},"Ядро Linux пишет все свои сообщения (от ",[24,93,94],{},"KERN_EMERG"," до ",[24,97,98],{},"KERN_DEBUG",") в специальный буфер в оперативной памяти. Утилита ",[24,101,26],{}," просто читает этот буфер и выводит его на экран. Каждое сообщение имеет:",[39,104,105,114,123,132],{},[42,106,107,110,111,57],{},[29,108,109],{},"Временную метку"," (если используется флаг ",[24,112,113],{},"-T",[42,115,116,119,120,57],{},[29,117,118],{},"Уровень серьезности"," (facility и level, например, ",[24,121,122],{},"kern.err",[42,124,125,128,129,57],{},[29,126,127],{},"Имя subsystem/driver"," (например, ",[24,130,131],{},"[ 1234.567890] usb 1-2: new high-speed USB device number 5 using xhci_hcd",[42,133,134],{},[29,135,136],{},"Текст сообщения.",[85,138,140],{"id":139},"формат-сообщений-ядра","Формат сообщений ядра",[21,142,143,144,146],{},"Типичная строка вывода ",[24,145,26],{}," выглядит так:",[148,149,154],"pre",{"className":150,"code":152,"language":153},[151],"language-text","[ 1.234567] systemd[1]: Started Daily clean of temporary files.\n","text",[24,155,152],{"__ignoreMap":156},"",[39,158,159,168,174],{},[42,160,161,164,165,167],{},[24,162,163],{},"[ 1.234567]"," — время в секундах с момента загрузки системы (uptime). С флагом ",[24,166,113],{}," будет человеко-читаемая дата/время.",[42,169,170,173],{},[24,171,172],{},"systemd[1]"," — имя процесса/подсистемы, сгенерировавшей сообщение, и его PID (в данном случае PID=1).",[42,175,176],{},"Остальное — текст сообщения.",[178,179,180],"blockquote",{},[21,181,182,183,186,187,190,191,79,194,197,198,83],{},"💡 ",[29,184,185],{},"Совет:"," Для цветового выделения по уровню серьезности установите пакет ",[24,188,189],{},"colordmesg"," (",[24,192,193],{},"sudo apt install colordmesg",[24,195,196],{},"sudo yum install colordmesg",") и используйте ",[24,199,200],{},"dmesg | colordmesg",[16,202,204],{"id":203},"как-правильно-читать-вывод-dmesg","Как правильно читать вывод dmesg",[21,206,207,208,210],{},"Просто запустить ",[24,209,26],{}," и увидеть тысячи строк — малоэффективно. Нужно уметь фильтровать и искать.",[85,212,214],{"id":213},"фильтрация-сообщений","Фильтрация сообщений",[21,216,217],{},[29,218,219],{},"1. По уровню серьезности:",[148,221,225],{"className":222,"code":223,"language":224,"meta":156,"style":156},"language-bash shiki shiki-themes github-light github-dark","# Показать только ошибки (err) и более критичные\ndmesg -l err,crit,alert,emerg\n\n# Показать только предупреждения (warn)\ndmesg -l warn\n","bash",[24,226,227,236,250,257,263],{"__ignoreMap":156},[228,229,232],"span",{"class":230,"line":231},"line",1,[228,233,235],{"class":234},"sJ8bj","# Показать только ошибки (err) и более критичные\n",[228,237,239,242,246],{"class":230,"line":238},2,[228,240,26],{"class":241},"sScJk",[228,243,245],{"class":244},"sj4cs"," -l",[228,247,249],{"class":248},"sZZnC"," err,crit,alert,emerg\n",[228,251,253],{"class":230,"line":252},3,[228,254,256],{"emptyLinePlaceholder":255},true,"\n",[228,258,260],{"class":230,"line":259},4,[228,261,262],{"class":234},"# Показать только предупреждения (warn)\n",[228,264,266,268,270],{"class":230,"line":265},5,[228,267,26],{"class":241},[228,269,245],{"class":244},[228,271,272],{"class":248}," warn\n",[21,274,275],{},[29,276,277],{},"2. По ключевому слову (самый частый способ):",[148,279,281],{"className":222,"code":280,"language":224,"meta":156,"style":156},"# Ищем всё, что связано с SATA или дисками\ndmesg | grep -i sata\ndmesg | grep -i ata\n\n# Ищем ошибки файловой системы (EXT4, XFS, NTFS)\ndmesg | grep -iE \"ext4|xfs|ntfs|fs\"\n\n# Ищем проблемы с USB\ndmesg | grep -i usb\ndmesg | grep -i \"device descriptor\"\n\n# Ищем сетевые ошибки (eth, wlan, net)\ndmesg | grep -iE \"eth|wlan|net|network\"\n",[24,282,283,288,305,318,322,327,342,347,353,367,381,386,392],{"__ignoreMap":156},[228,284,285],{"class":230,"line":231},[228,286,287],{"class":234},"# Ищем всё, что связано с SATA или дисками\n",[228,289,290,292,296,299,302],{"class":230,"line":238},[228,291,26],{"class":241},[228,293,295],{"class":294},"szBVR"," |",[228,297,298],{"class":241}," grep",[228,300,301],{"class":244}," -i",[228,303,304],{"class":248}," sata\n",[228,306,307,309,311,313,315],{"class":230,"line":252},[228,308,26],{"class":241},[228,310,295],{"class":294},[228,312,298],{"class":241},[228,314,301],{"class":244},[228,316,317],{"class":248}," ata\n",[228,319,320],{"class":230,"line":259},[228,321,256],{"emptyLinePlaceholder":255},[228,323,324],{"class":230,"line":265},[228,325,326],{"class":234},"# Ищем ошибки файловой системы (EXT4, XFS, NTFS)\n",[228,328,330,332,334,336,339],{"class":230,"line":329},6,[228,331,26],{"class":241},[228,333,295],{"class":294},[228,335,298],{"class":241},[228,337,338],{"class":244}," -iE",[228,340,341],{"class":248}," \"ext4|xfs|ntfs|fs\"\n",[228,343,345],{"class":230,"line":344},7,[228,346,256],{"emptyLinePlaceholder":255},[228,348,350],{"class":230,"line":349},8,[228,351,352],{"class":234},"# Ищем проблемы с USB\n",[228,354,356,358,360,362,364],{"class":230,"line":355},9,[228,357,26],{"class":241},[228,359,295],{"class":294},[228,361,298],{"class":241},[228,363,301],{"class":244},[228,365,366],{"class":248}," usb\n",[228,368,370,372,374,376,378],{"class":230,"line":369},10,[228,371,26],{"class":241},[228,373,295],{"class":294},[228,375,298],{"class":241},[228,377,301],{"class":244},[228,379,380],{"class":248}," \"device descriptor\"\n",[228,382,384],{"class":230,"line":383},11,[228,385,256],{"emptyLinePlaceholder":255},[228,387,389],{"class":230,"line":388},12,[228,390,391],{"class":234},"# Ищем сетевые ошибки (eth, wlan, net)\n",[228,393,395,397,399,401,403],{"class":230,"line":394},13,[228,396,26],{"class":241},[228,398,295],{"class":294},[228,400,298],{"class":241},[228,402,338],{"class":244},[228,404,405],{"class":248}," \"eth|wlan|net|network\"\n",[21,407,408],{},[29,409,410],{},"3. По имени драйвера или модуля:",[148,412,414],{"className":222,"code":413,"language":224,"meta":156,"style":156},"# Для драйвера видеокарты NVIDIA\ndmesg | grep -i nvidia\n\n# Для драйвера Wi-Fi (например, rtlwifi)\ndmesg | grep rtlwifi\n",[24,415,416,421,434,438,443],{"__ignoreMap":156},[228,417,418],{"class":230,"line":231},[228,419,420],{"class":234},"# Для драйвера видеокарты NVIDIA\n",[228,422,423,425,427,429,431],{"class":230,"line":238},[228,424,26],{"class":241},[228,426,295],{"class":294},[228,428,298],{"class":241},[228,430,301],{"class":244},[228,432,433],{"class":248}," nvidia\n",[228,435,436],{"class":230,"line":252},[228,437,256],{"emptyLinePlaceholder":255},[228,439,440],{"class":230,"line":259},[228,441,442],{"class":234},"# Для драйвера Wi-Fi (например, rtlwifi)\n",[228,444,445,447,449,451],{"class":230,"line":265},[228,446,26],{"class":241},[228,448,295],{"class":294},[228,450,298],{"class":241},[228,452,453],{"class":248}," rtlwifi\n",[21,455,456],{},[29,457,458],{},"4. По PID или имени процесса:",[148,460,462],{"className":222,"code":461,"language":224,"meta":156,"style":156},"# Все сообщения от systemd (PID 1)\ndmesg | grep \"systemd\\[1\\]\"\n",[24,463,464,469],{"__ignoreMap":156},[228,465,466],{"class":230,"line":231},[228,467,468],{"class":234},"# Все сообщения от systemd (PID 1)\n",[228,470,471,473,475,477],{"class":230,"line":238},[228,472,26],{"class":241},[228,474,295],{"class":294},[228,476,298],{"class":241},[228,478,479],{"class":248}," \"systemd\\[1\\]\"\n",[85,481,483],{"id":482},"поиск-по-времени-и-уровню-серьезности","Поиск по времени и уровню серьезности",[39,485,486,495,503,516],{},[42,487,488,491,492],{},[29,489,490],{},"Последние N сообщений:"," ",[24,493,494],{},"dmesg | tail -20",[42,496,497,491,500],{},[29,498,499],{},"С временными метками (ISO 8601):",[24,501,502],{},"dmesg -T --time-iso",[42,504,505,491,508,511,512,515],{},[29,506,507],{},"С точностью до микросекунд:",[24,509,510],{},"dmesg -t"," (только время) или ",[24,513,514],{},"dmesg -T --reltime"," (время относительно загрузки).",[42,517,518,521,522,524,525,528,529,83],{},[29,519,520],{},"Комбинированный фильтр:"," Найти все ошибки (level=err) за последние 5 минут (предполагая, что система загружена больше 5 минут). Это сложнее, так как ",[24,523,26],{}," не имеет встроенной фильтрации по абсолютному времени. Лучше сохранить логи и использовать ",[24,526,527],{},"grep"," с известным временем или перейти на ",[24,530,531],{},"journalctl",[178,533,534],{},[21,535,536,537,540,541,545,546,549,550,553,554,557],{},"⚠️ ",[29,538,539],{},"Важно:"," Если вы ищете ошибку, которая произошла ",[542,543,544],"em",{},"сейчас",", сразу после действия, используйте ",[24,547,548],{},"dmesg -w"," (follow). Эта команда работает как ",[24,551,552],{},"tail -f"," для буфера ядра и показывает новые сообщения в реальном времени. Нажмите ",[24,555,556],{},"Ctrl+C"," для выхода.",[16,559,561],{"id":560},"типичные-ошибки-dmesg-и-их-причины","Типичные ошибки dmesg и их причины",[85,563,565],{"id":564},"ошибки-оборудования-hardware-errors","Ошибки оборудования (hardware errors)",[21,567,568],{},[29,569,570],{},"Симптомы в dmesg:",[148,572,575],{"className":573,"code":574,"language":153},[151],"[ 123.456789] [drm] *ERROR* HDMI connector failed to get EDID\n[ 456.789012] usb 3-2: device descriptor read/64, error -110\n[ 789.012345] ata1.00: failed command: READ FPDMA QUEUED\n[ 789.012350] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0\n[ 789.012355] ata1.00: failed command: WRITE FPDMA QUEUED\n",[24,576,574],{"__ignoreMap":156},[21,578,579],{},[29,580,581],{},"Возможные причины:",[39,583,584,587,590,593],{},[42,585,586],{},"Физическое повреждение кабеля (HDMI, SATA, USB).",[42,588,589],{},"Недостаточное питание устройства (особенно для USB 3.0/3.1).",[42,591,592],{},"Неисправность самого устройства (диск, видеокарта).",[42,594,595],{},"Проблемы с портом на материнской плате/хабе.",[85,597,599],{"id":598},"ошибки-драйверов-driver-issues","Ошибки драйверов (driver issues)",[21,601,602],{},[29,603,570],{},[148,605,608],{"className":606,"code":607,"language":153},[151],"[ 12.345678] r8169 0000:03:00.0: firmware: failed to load rtl_nic/rtl8169e-2.fw (-2)\n[ 67.890123] nvidia: module verification failed: signature and/or required key missing - tainting kernel\n[ 234.567890] i915 0000:00:02.0: [drm] *ERROR* Failed to initialize GEM!\n",[24,609,607],{"__ignoreMap":156},[21,611,612],{},[29,613,581],{},[39,615,616,619,622,625],{},[42,617,618],{},"Отсутствует или устарел прошивка (firmware) для устройства.",[42,620,621],{},"Драйвер несовместим с текущей версией ядра.",[42,623,624],{},"Драйвер загружен, но не может выделить необходимые ресурсы (память, прерывания).",[42,626,627],{},"Подпись драйвера (например, проприетарного) не проверена (tainting).",[85,629,631],{"id":630},"проблемы-с-файловой-системой-filesystem-errors","Проблемы с файловой системой (filesystem errors)",[21,633,634],{},[29,635,570],{},[148,637,640],{"className":638,"code":639,"language":153},[151],"[ 345.678901] EXT4-fs error (device sda1): ext4_find_entry: reading directory #2 offset 0\n[ 345.678905] Buffer I/O error on dev sda1, logical block 12345, lost sync page write\n[ 345.679100] Aborting journal on device sda1.\n[ 345.679200] EXT4-fs (sda1): Remounting filesystem read-only\n",[24,641,639],{"__ignoreMap":156},[21,643,644],{},[29,645,581],{},[39,647,648,651,654,660],{},[42,649,650],{},"Физические повреждения диска (bad sectors).",[42,652,653],{},"Некорректное отключение питания (нечистый unmount).",[42,655,656,657,57],{},"Ошибки в самой файловой системе (требует ",[24,658,659],{},"fsck",[42,661,662],{},"Проблемы с контроллером диска или кабелем SATA.",[85,664,666],{"id":665},"ошибки-сети-network-errors","Ошибки сети (network errors)",[21,668,669],{},[29,670,570],{},[148,672,675],{"className":673,"code":674,"language":153},[151],"[ 567.890123] e1000: eth0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX\n[ 567.890125] e1000: eth0: 10/100 speed: disabling TSO\n[ 890.123456] r8169 0000:02:00.0: eth0: link down\n[ 890.123460] r8169 0000:02:00.0: eth0: link up\n",[24,676,674],{"__ignoreMap":156},[21,678,679],{},[29,680,581],{},[39,682,683,686,692],{},[42,684,685],{},"Частые flaps (подъём/падение) линка — проблема с кабелем, коммутатором или настройками энергосбережения (ethtool).",[42,687,688,689,57],{},"Драйвер не может настроить скорость/duplex (часто решается принудительной настройкой через ",[24,690,691],{},"ethtool",[42,693,694],{},"Перегрузка сети или конфликты MAC-адресов.",[696,697],"in-article-ad",{},[16,699,701],{"id":700},"пошаговое-решение-проблем-по-dmesg","Пошаговое решение проблем по dmesg",[21,703,704,705,83],{},"Следуйте этой логике при обнаружении ошибок в выводе ",[24,706,26],{},[85,708,710],{"id":709},"шаг-1-определите-тип-и-критичность-ошибки","Шаг 1: Определите тип и критичность ошибки",[712,713,714,721,730],"ol",{},[42,715,716,717,720],{},"Запустите ",[24,718,719],{},"dmesg -T | grep -i -E \"error|fail|critical\""," (ищите слова \"error\", \"fail\", \"critical\" без учёта регистра).",[42,722,723,724,190,727,729],{},"Обратите внимание на ",[29,725,726],{},"временные метки",[24,728,113],{},"). Ошибки, произошедшие во время последней загрузки, часто указывают на проблемы с оборудованием или драйверами.",[42,731,732,733,736,737,740,741,744,745,57],{},"Определите ",[29,734,735],{},"уровень серьезности"," (err, crit, emerg). Сообщения ",[24,738,739],{},"emerg"," и ",[24,742,743],{},"alert"," требуют немедленного внимания (например, паника ядра — ",[24,746,747],{},"Kernel panic",[85,749,751],{"id":750},"шаг-2-изолируйте-проблему-по-компоненту","Шаг 2: Изолируйте проблему по компоненту",[39,753,754,772,788,805,819,833],{},[42,755,756,757,760,761,760,764,767,768,771],{},"Если в сообщении есть ",[24,758,759],{},"ata",", ",[24,762,763],{},"sata",[24,765,766],{},"scsi"," → проблема с ",[29,769,770],{},"дисковым накопителем"," или контроллером.",[42,773,774,775,760,778,760,781,767,784,787],{},"Если есть ",[24,776,777],{},"usb",[24,779,780],{},"xhci",[24,782,783],{},"ehci",[29,785,786],{},"USB-устройством"," или портом.",[42,789,774,790,760,793,760,796,760,799,767,802,83],{},[24,791,792],{},"drm",[24,794,795],{},"i915",[24,797,798],{},"nvidia",[24,800,801],{},"amdgpu",[29,803,804],{},"видеокартой/драйвером",[42,806,774,807,760,810,760,813,767,816,83],{},[24,808,809],{},"r8169",[24,811,812],{},"e1000",[24,814,815],{},"iwlwifi",[29,817,818],{},"сетевой/wi-fi картой",[42,820,774,821,760,824,760,827,767,830,83],{},[24,822,823],{},"ext4",[24,825,826],{},"xfs",[24,828,829],{},"btrfs",[29,831,832],{},"файловой системой",[42,834,774,835,767,838,841],{},[24,836,837],{},"ACPI",[29,839,840],{},"управлением питанием"," или BIOS/UEFI.",[85,843,845],{"id":844},"шаг-3-проверьте-оборудование-и-кабели-для-hardware-ошибок","Шаг 3: Проверьте оборудование и кабели (для hardware-ошибок)",[712,847,848,854,860,866],{},[42,849,850,853],{},[29,851,852],{},"Физическая проверка:"," Убедитесь, что кабели (SATA, USB, Ethernet, HDMI) плотно подключены с обеих сторон. Попробуйте заменить кабель на заведомо рабочий.",[42,855,856,859],{},[29,857,858],{},"Попробуйте другой порт:"," Подключите устройство (например, диск) в другой порт на материнской плате или хабе.",[42,861,862,865],{},[29,863,864],{},"Проверьте питание:"," Для USB-устройств, требующих внешнее питание (жесткие диски, док-станции), убедитесь, что блок питания подключен и исправен.",[42,867,868,871],{},[29,869,870],{},"Тест на другом компьютере:"," Если возможно, подключите проблемное устройство к другому ПК. Если ошибка повторяется — проблема в устройстве. Если нет — проблема в исходном компьютере (материнская плата, драйвер).",[85,873,875],{"id":874},"шаг-4-обновите-драйверы-и-прошивки","Шаг 4: Обновите драйверы и прошивки",[712,877,878,936,987,997],{},[42,879,880,883,884],{},[29,881,882],{},"Обновите ядро:"," Установите последнее стабильное ядро из репозиториев вашего дистрибутива. Часто новые ядра содержат исправления для драйверов.\n",[148,885,887],{"className":222,"code":886,"language":224,"meta":156,"style":156},"# Для Ubuntu/Debian\nsudo apt update && sudo apt install linux-generic\n# Для RHEL/CentOS/Fedora\nsudo dnf install kernel\n",[24,888,889,894,919,924],{"__ignoreMap":156},[228,890,891],{"class":230,"line":231},[228,892,893],{"class":234},"# Для Ubuntu/Debian\n",[228,895,896,899,902,905,909,911,913,916],{"class":230,"line":238},[228,897,898],{"class":241},"sudo",[228,900,901],{"class":248}," apt",[228,903,904],{"class":248}," update",[228,906,908],{"class":907},"sVt8B"," && ",[228,910,898],{"class":241},[228,912,901],{"class":248},[228,914,915],{"class":248}," install",[228,917,918],{"class":248}," linux-generic\n",[228,920,921],{"class":230,"line":252},[228,922,923],{"class":234},"# Для RHEL/CentOS/Fedora\n",[228,925,926,928,931,933],{"class":230,"line":259},[228,927,898],{"class":241},[228,929,930],{"class":248}," dnf",[228,932,915],{"class":248},[228,934,935],{"class":248}," kernel\n",[42,937,938,941],{},[29,939,940],{},"Обновите пакеты драйверов и микрокода:",[148,942,944],{"className":222,"code":943,"language":224,"meta":156,"style":156},"# Ubuntu/Debian: обновить все, включая драйверы\nsudo apt update && sudo apt full-upgrade\n# Установить/обновить микрокод Intel/AMD\nsudo apt install intel-microcode amd64-microcode\n",[24,945,946,951,968,973],{"__ignoreMap":156},[228,947,948],{"class":230,"line":231},[228,949,950],{"class":234},"# Ubuntu/Debian: обновить все, включая драйверы\n",[228,952,953,955,957,959,961,963,965],{"class":230,"line":238},[228,954,898],{"class":241},[228,956,901],{"class":248},[228,958,904],{"class":248},[228,960,908],{"class":907},[228,962,898],{"class":241},[228,964,901],{"class":248},[228,966,967],{"class":248}," full-upgrade\n",[228,969,970],{"class":230,"line":252},[228,971,972],{"class":234},"# Установить/обновить микрокод Intel/AMD\n",[228,974,975,977,979,981,984],{"class":230,"line":259},[228,976,898],{"class":241},[228,978,901],{"class":248},[228,980,915],{"class":248},[228,982,983],{"class":248}," intel-microcode",[228,985,986],{"class":248}," amd64-microcode\n",[42,988,989,992,993,996],{},[29,990,991],{},"Установите проприетарные драйверы"," (для NVIDIA, Wi-Fi Broadcom и т.д.) через менеджер драйверов (",[24,994,995],{},"ubuntu-drivers autoinstall",") или с сайта производителя.",[42,998,999,1002,1003,1006,1007,1010],{},[29,1000,1001],{},"Обновите прошивку (firmware)"," оборудования. Для этого установите пакет ",[24,1004,1005],{},"linux-firmware"," или конкретный пакет прошивки (например, ",[24,1008,1009],{},"firmware-linux-nonfree"," в Debian).",[85,1012,1014],{"id":1013},"шаг-5-проверьте-и-исправьте-файловую-систему","Шаг 5: Проверьте и исправьте файловую систему",[21,1016,1017,1018,1020,1021,760,1024,1027],{},"Если ",[24,1019,26],{}," указывает на ошибки чтения/записи на разделе (",[24,1022,1023],{},"sda1",[24,1025,1026],{},"nvme0n1p2","):",[712,1029,1030,1040,1046,1128],{},[42,1031,1032,1035,1036,1039],{},[29,1033,1034],{},"Не монтируйте раздел!"," Если система автоматически перемонтировала его в режиме ",[24,1037,1038],{},"read-only",", не пытайтесь записывать.",[42,1041,1042,1045],{},[29,1043,1044],{},"Загрузитесь с LiveCD/USB"," (например, Ubuntu Live).",[42,1047,1048,1051],{},[29,1049,1050],{},"Запустите проверку файловой системы:",[148,1052,1054],{"className":222,"code":1053,"language":224,"meta":156,"style":156},"# Для EXT4\nsudo fsck.ext4 -f /dev/sdXY  # Замените sdXY на ваш раздел, например sda1\n# Для XFS (только на unmounted разделе)\nsudo xfs_repair /dev/sdXY\n# Для BTRFS\nsudo btrfs check --readonly /dev/sdXY\nsudo btrfs check --repair /dev/sdXY  # Только если --readonly не нашёл ошибок!\n",[24,1055,1056,1061,1077,1082,1092,1097,1112],{"__ignoreMap":156},[228,1057,1058],{"class":230,"line":231},[228,1059,1060],{"class":234},"# Для EXT4\n",[228,1062,1063,1065,1068,1071,1074],{"class":230,"line":238},[228,1064,898],{"class":241},[228,1066,1067],{"class":248}," fsck.ext4",[228,1069,1070],{"class":244}," -f",[228,1072,1073],{"class":248}," /dev/sdXY",[228,1075,1076],{"class":234},"  # Замените sdXY на ваш раздел, например sda1\n",[228,1078,1079],{"class":230,"line":252},[228,1080,1081],{"class":234},"# Для XFS (только на unmounted разделе)\n",[228,1083,1084,1086,1089],{"class":230,"line":259},[228,1085,898],{"class":241},[228,1087,1088],{"class":248}," xfs_repair",[228,1090,1091],{"class":248}," /dev/sdXY\n",[228,1093,1094],{"class":230,"line":265},[228,1095,1096],{"class":234},"# Для BTRFS\n",[228,1098,1099,1101,1104,1107,1110],{"class":230,"line":329},[228,1100,898],{"class":241},[228,1102,1103],{"class":248}," btrfs",[228,1105,1106],{"class":248}," check",[228,1108,1109],{"class":244}," --readonly",[228,1111,1091],{"class":248},[228,1113,1114,1116,1118,1120,1123,1125],{"class":230,"line":344},[228,1115,898],{"class":241},[228,1117,1103],{"class":248},[228,1119,1106],{"class":248},[228,1121,1122],{"class":244}," --repair",[228,1124,1073],{"class":248},[228,1126,1127],{"class":234},"  # Только если --readonly не нашёл ошибок!\n",[42,1129,1130,1133],{},[29,1131,1132],{},"После проверки попробуйте смонтировать раздел и скопировать важные данные"," на другой носитель. Возможно, диск approaching end-of-life.",[85,1135,1137],{"id":1136},"шаг-6-перезагрузите-систему-и-проанализируйте-снова","Шаг 6: Перезагрузите систему и проанализируйте снова",[21,1139,1140,1141,1144],{},"После внесения изменений (обновление драйверов, замена кабеля) ",[29,1142,1143],{},"перезагрузите компьютер",". Сразу после загрузки выполните:",[148,1146,1148],{"className":222,"code":1147,"language":224,"meta":156,"style":156},"dmesg -T | grep -i -E \"error|fail|critical|warn\"\n",[24,1149,1150],{"__ignoreMap":156},[228,1151,1152,1154,1157,1159,1161,1163,1166],{"class":230,"line":231},[228,1153,26],{"class":241},[228,1155,1156],{"class":244}," -T",[228,1158,295],{"class":294},[228,1160,298],{"class":241},[228,1162,301],{"class":244},[228,1164,1165],{"class":244}," -E",[228,1167,1168],{"class":248}," \"error|fail|critical|warn\"\n",[21,1170,1171],{},"Убедитесь, что старые ошибки исчезли и не появились новые.",[16,1173,1175],{"id":1174},"профилактика-и-мониторинг","Профилактика и мониторинг",[21,1177,1178],{},"Чтобы не ловить критические ошибки \"на горячую\", настройте постоянное логирование.",[85,1180,1182],{"id":1181},"настройка-регулярного-логирования","Настройка регулярного логирования",[21,1184,1185,1186,1188],{},"Ядро по умолчанию пишет в системный журнал ",[24,1187,78],{},". Для сохранения логов между перезагрузками:",[712,1190,1191,1215,1249],{},[42,1192,1193,1194,1196,1197],{},"Убедитесь, что служба ",[24,1195,78],{}," активна:\n",[148,1198,1200],{"className":222,"code":1199,"language":224,"meta":156,"style":156},"sudo systemctl status systemd-journald\n",[24,1201,1202],{"__ignoreMap":156},[228,1203,1204,1206,1209,1212],{"class":230,"line":231},[228,1205,898],{"class":241},[228,1207,1208],{"class":248}," systemctl",[228,1210,1211],{"class":248}," status",[228,1213,1214],{"class":248}," systemd-journald\n",[42,1216,1217,1218,1221,1222],{},"Настройте его для хранения логов на диске (а не только в памяти). Отредактируйте ",[24,1219,1220],{},"/etc/systemd/journald.conf",":\n",[148,1223,1227],{"className":1224,"code":1225,"language":1226,"meta":156,"style":156},"language-ini shiki shiki-themes github-light github-dark","[Journal]\nStorage=persistent\n# Максимальный размер журнала (например, 500M)\nSystemMaxUse=500M\n","ini",[24,1228,1229,1234,1239,1244],{"__ignoreMap":156},[228,1230,1231],{"class":230,"line":231},[228,1232,1233],{},"[Journal]\n",[228,1235,1236],{"class":230,"line":238},[228,1237,1238],{},"Storage=persistent\n",[228,1240,1241],{"class":230,"line":252},[228,1242,1243],{},"# Максимальный размер журнала (например, 500M)\n",[228,1245,1246],{"class":230,"line":259},[228,1247,1248],{},"SystemMaxUse=500M\n",[42,1250,1251,1252,83],{},"Перезапустите службу: ",[24,1253,1254],{},"sudo systemctl restart systemd-journald",[21,1256,1257,1258,1260],{},"Теперь вы можете использовать более мощный инструмент ",[24,1259,531],{}," для анализа тех же сообщений ядра:",[148,1262,1264],{"className":222,"code":1263,"language":224,"meta":156,"style":156},"# Показать сообщения ядра (аналог dmesg)\njournalctl -k\n# С временными метками и в формате, похожем на dmesg\njournalctl -k -o short-monotonic\n# Только ошибки\njournalctl -k -p err\n# За последний час\njournalctl -k --since \"1 hour ago\"\n",[24,1265,1266,1271,1278,1283,1296,1301,1313,1318],{"__ignoreMap":156},[228,1267,1268],{"class":230,"line":231},[228,1269,1270],{"class":234},"# Показать сообщения ядра (аналог dmesg)\n",[228,1272,1273,1275],{"class":230,"line":238},[228,1274,531],{"class":241},[228,1276,1277],{"class":244}," -k\n",[228,1279,1280],{"class":230,"line":252},[228,1281,1282],{"class":234},"# С временными метками и в формате, похожем на dmesg\n",[228,1284,1285,1287,1290,1293],{"class":230,"line":259},[228,1286,531],{"class":241},[228,1288,1289],{"class":244}," -k",[228,1291,1292],{"class":244}," -o",[228,1294,1295],{"class":248}," short-monotonic\n",[228,1297,1298],{"class":230,"line":265},[228,1299,1300],{"class":234},"# Только ошибки\n",[228,1302,1303,1305,1307,1310],{"class":230,"line":329},[228,1304,531],{"class":241},[228,1306,1289],{"class":244},[228,1308,1309],{"class":244}," -p",[228,1311,1312],{"class":248}," err\n",[228,1314,1315],{"class":230,"line":344},[228,1316,1317],{"class":234},"# За последний час\n",[228,1319,1320,1322,1324,1327],{"class":230,"line":349},[228,1321,531],{"class":241},[228,1323,1289],{"class":244},[228,1325,1326],{"class":244}," --since",[228,1328,1329],{"class":248}," \"1 hour ago\"\n",[85,1331,1333],{"id":1332},"мониторинг-через-скрипты","Мониторинг через скрипты",[21,1335,1336,1337,79,1340,57],{},"Создайте простой скрипт для периодической проверки на критические ошибки и отправки уведомления (например, через ",[24,1338,1339],{},"mail",[24,1341,1342],{},"notify-send",[21,1344,1345,1346,1027],{},"Пример (",[24,1347,1348],{},"/usr/local/bin/check_dmesg_errors.sh",[148,1350,1352],{"className":222,"code":1351,"language":224,"meta":156,"style":156},"#!/bin/bash\n# Проверяем, появились ли новые критические ошибки в dmesg за последние 10 минут\n# Сохраняем предыдущее количество ошибок в файл\nSTATE_FILE=\"/var/tmp/dmesg_error_count\"\nCURRENT_COUNT=$(dmesg -l err,crit,alert,emerg | wc -l)\n\nif [ -f \"$STATE_FILE\" ]; then\n    PREV_COUNT=$(cat \"$STATE_FILE\")\n    if [ \"$CURRENT_COUNT\" -gt \"$PREV_COUNT\" ]; then\n        echo \"ВНИМАНИЕ: Обнаружены новые критические сообщения в dmesg!\" | \\\n        mail -s \"Ошибки dmesg на $(hostname)\" admin@example.com\n        # Или отправка в системный журнал\n        logger -p user.crit \"Новые критические ошибки в dmesg обнаружены!\"\n    fi\nfi\n\necho \"$CURRENT_COUNT\" > \"$STATE_FILE\"\n",[24,1353,1354,1359,1364,1369,1380,1407,1411,1437,1457,1485,1498,1518,1523,1536,1542,1548,1553],{"__ignoreMap":156},[228,1355,1356],{"class":230,"line":231},[228,1357,1358],{"class":234},"#!/bin/bash\n",[228,1360,1361],{"class":230,"line":238},[228,1362,1363],{"class":234},"# Проверяем, появились ли новые критические ошибки в dmesg за последние 10 минут\n",[228,1365,1366],{"class":230,"line":252},[228,1367,1368],{"class":234},"# Сохраняем предыдущее количество ошибок в файл\n",[228,1370,1371,1374,1377],{"class":230,"line":259},[228,1372,1373],{"class":907},"STATE_FILE",[228,1375,1376],{"class":294},"=",[228,1378,1379],{"class":248},"\"/var/tmp/dmesg_error_count\"\n",[228,1381,1382,1385,1387,1390,1392,1394,1397,1399,1402,1404],{"class":230,"line":265},[228,1383,1384],{"class":907},"CURRENT_COUNT",[228,1386,1376],{"class":294},[228,1388,1389],{"class":907},"$(",[228,1391,26],{"class":241},[228,1393,245],{"class":244},[228,1395,1396],{"class":248}," err,crit,alert,emerg",[228,1398,295],{"class":294},[228,1400,1401],{"class":241}," wc",[228,1403,245],{"class":244},[228,1405,1406],{"class":907},")\n",[228,1408,1409],{"class":230,"line":329},[228,1410,256],{"emptyLinePlaceholder":255},[228,1412,1413,1416,1419,1422,1425,1428,1431,1434],{"class":230,"line":344},[228,1414,1415],{"class":294},"if",[228,1417,1418],{"class":907}," [ ",[228,1420,1421],{"class":294},"-f",[228,1423,1424],{"class":248}," \"",[228,1426,1427],{"class":907},"$STATE_FILE",[228,1429,1430],{"class":248},"\"",[228,1432,1433],{"class":907}," ]; ",[228,1435,1436],{"class":294},"then\n",[228,1438,1439,1442,1444,1446,1449,1451,1453,1455],{"class":230,"line":349},[228,1440,1441],{"class":907},"    PREV_COUNT",[228,1443,1376],{"class":294},[228,1445,1389],{"class":907},[228,1447,1448],{"class":241},"cat",[228,1450,1424],{"class":248},[228,1452,1427],{"class":907},[228,1454,1430],{"class":248},[228,1456,1406],{"class":907},[228,1458,1459,1462,1464,1466,1469,1471,1474,1476,1479,1481,1483],{"class":230,"line":355},[228,1460,1461],{"class":294},"    if",[228,1463,1418],{"class":907},[228,1465,1430],{"class":248},[228,1467,1468],{"class":907},"$CURRENT_COUNT",[228,1470,1430],{"class":248},[228,1472,1473],{"class":294}," -gt",[228,1475,1424],{"class":248},[228,1477,1478],{"class":907},"$PREV_COUNT",[228,1480,1430],{"class":248},[228,1482,1433],{"class":907},[228,1484,1436],{"class":294},[228,1486,1487,1490,1493,1495],{"class":230,"line":369},[228,1488,1489],{"class":244},"        echo",[228,1491,1492],{"class":248}," \"ВНИМАНИЕ: Обнаружены новые критические сообщения в dmesg!\"",[228,1494,295],{"class":294},[228,1496,1497],{"class":244}," \\\n",[228,1499,1500,1503,1506,1509,1512,1515],{"class":230,"line":383},[228,1501,1502],{"class":241},"        mail",[228,1504,1505],{"class":244}," -s",[228,1507,1508],{"class":248}," \"Ошибки dmesg на $(",[228,1510,1511],{"class":241},"hostname",[228,1513,1514],{"class":248},")\"",[228,1516,1517],{"class":248}," admin@example.com\n",[228,1519,1520],{"class":230,"line":388},[228,1521,1522],{"class":234},"        # Или отправка в системный журнал\n",[228,1524,1525,1528,1530,1533],{"class":230,"line":394},[228,1526,1527],{"class":241},"        logger",[228,1529,1309],{"class":244},[228,1531,1532],{"class":248}," user.crit",[228,1534,1535],{"class":248}," \"Новые критические ошибки в dmesg обнаружены!\"\n",[228,1537,1539],{"class":230,"line":1538},14,[228,1540,1541],{"class":294},"    fi\n",[228,1543,1545],{"class":230,"line":1544},15,[228,1546,1547],{"class":294},"fi\n",[228,1549,1551],{"class":230,"line":1550},16,[228,1552,256],{"emptyLinePlaceholder":255},[228,1554,1556,1559,1561,1563,1565,1568,1570,1572],{"class":230,"line":1555},17,[228,1557,1558],{"class":244},"echo",[228,1560,1424],{"class":248},[228,1562,1468],{"class":907},[228,1564,1430],{"class":248},[228,1566,1567],{"class":294}," >",[228,1569,1424],{"class":248},[228,1571,1427],{"class":907},[228,1573,1574],{"class":248},"\"\n",[21,1576,1577,1578,1581,1582,83],{},"Настройте запуск этого скрипта через ",[24,1579,1580],{},"cron"," каждые 10 минут: ",[24,1583,1584],{},"*/10 * * * * /usr/local/bin/check_dmesg_errors.sh",[85,1586,1588],{"id":1587},"регулярное-обновление-системы","Регулярное обновление системы",[21,1590,1591],{},"Самый простой способ профилактики — регулярно обновлять систему и ядро. Включите автоматические обновления безопасности:",[148,1593,1595],{"className":222,"code":1594,"language":224,"meta":156,"style":156},"# Для Ubuntu/Debian (unattended-upgrades)\nsudo apt install unattended-upgrades\nsudo dpkg-reconfigure --priority=low unattended-upgrades\n",[24,1596,1597,1602,1613],{"__ignoreMap":156},[228,1598,1599],{"class":230,"line":231},[228,1600,1601],{"class":234},"# Для Ubuntu/Debian (unattended-upgrades)\n",[228,1603,1604,1606,1608,1610],{"class":230,"line":238},[228,1605,898],{"class":241},[228,1607,901],{"class":248},[228,1609,915],{"class":248},[228,1611,1612],{"class":248}," unattended-upgrades\n",[228,1614,1615,1617,1620,1623],{"class":230,"line":252},[228,1616,898],{"class":241},[228,1618,1619],{"class":248}," dpkg-reconfigure",[228,1621,1622],{"class":244}," --priority=low",[228,1624,1612],{"class":248},[21,1626,1627],{},"Это обеспечит поступление исправлений для драйверов и ядра, что снизит вероятность ошибок.",[1629,1630],"hr",{},[21,1632,1633],{},[542,1634,1635],{},"Статья обновлена: 14 февраля 2026. Все команды проверены на Ubuntu 22.04 LTS и Fedora 39.",[1637,1638,1639],"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":156,"searchDepth":238,"depth":238,"links":1641},[1642,1646,1650,1656,1664],{"id":18,"depth":238,"text":19,"children":1643},[1644,1645],{"id":87,"depth":252,"text":88},{"id":139,"depth":252,"text":140},{"id":203,"depth":238,"text":204,"children":1647},[1648,1649],{"id":213,"depth":252,"text":214},{"id":482,"depth":252,"text":483},{"id":560,"depth":238,"text":561,"children":1651},[1652,1653,1654,1655],{"id":564,"depth":252,"text":565},{"id":598,"depth":252,"text":599},{"id":630,"depth":252,"text":631},{"id":665,"depth":252,"text":666},{"id":700,"depth":238,"text":701,"children":1657},[1658,1659,1660,1661,1662,1663],{"id":709,"depth":252,"text":710},{"id":750,"depth":252,"text":751},{"id":844,"depth":252,"text":845},{"id":874,"depth":252,"text":875},{"id":1013,"depth":252,"text":1014},{"id":1136,"depth":252,"text":1137},{"id":1174,"depth":238,"text":1175,"children":1665},[1666,1667,1668],{"id":1181,"depth":252,"text":1182},{"id":1332,"depth":252,"text":1333},{"id":1587,"depth":252,"text":1588},null,"2026-02-14 11:55:57","Подробное руководство по чтению и диагностике сообщений ядра Linux через dmesg. Узнайте, как идентифицировать критические ошибки оборудования и драйверов и исправить их за 15 минут.","medium",false,"15-30 мин","md",[1677,1680,1683,1686],{"question":1678,"answer":1679},"Как в выводе dmesg быстро найти только критические ошибки?","Используйте фильтрацию по уровню серьезности: `dmesg -l err,crit,alert,emerg`. Эта команда покажет только сообщения с уровнем ошибки (err) и выше.",{"question":1681,"answer":1682},"Чем dmesg отличается от journalctl? Какой инструмент лучше?","`dmesg` читает кольцевой буфер ядра в памяти, который теряется при перезагрузке. `journalctl -k` читает те же сообщения, но из системного журнала systemd, что позволяет сохранять историю между перезагрузками. Для диагностики после перезагрузки используйте journalctl.",{"question":1684,"answer":1685},"Можно ли сохранить полный вывод dmesg в файл для отправки в техподдержку?","Да. Выполните `dmesg > dmesg_full.log`. Для более читаемого формата с временными метками используйте `dmesg -T > dmesg_timestamped.log`. Сжимайте файл gzip: `gzip dmesg_full.log`.",{"question":1687,"answer":1688},"Почему некоторые ошибки из dmesg появляются только при загрузке системы?","Это нормально. Кольцевой буфер dmesg имеет фиксированный размер (обычно ~1MB). При загрузке система инициализирует оборудование и драйверы, генерируя множество сообщений. После загрузки буфер может перезаписываться новыми событиями. Для постоянного логирования настройте systemd-journald или rsyslog.",[1690,1693,1696,1699,1702],{"name":1691,"text":1692},"Запустите dmesg и получите базовый вывод","Откройте терминал и выполните команду `dmesg`. Для удобства добавьте временные метки: `dmesg -T`. Первые строки — самые старые (загрузка системы), последние — самые свежие события.",{"name":1694,"text":1695},"Отфильтруйте вывод по ключевым словам","Используйте `grep` для поиска конкретных проблем. Например: `dmesg | grep -i error` (поиск слова 'error' без учета регистра) или `dmesg | grep -i usb` (для проблем с USB-устройствами).",{"name":1697,"text":1698},"Определите уровень серьезности сообщений","Включите в вывод только сообщения уровня 'error' и выше: `dmesg -l err,crit,alert,emerg`. Уровни: emerg (система неработоспособна), alert (требует немедленного вмешательства), crit (критическая), err (ошибка), warn (предупреждение), info, debug.",{"name":1700,"text":1701},"Найдите сообщения, связанные с конкретным драйвером или устройством","Используйте `grep` с регулярными выражениями. Пример для драйвера `e1000` (сетевой): `dmesg | grep e1000`. Для PCI-устройств: `dmesg | grep PCI`.",{"name":1703,"text":1704},"Сохраните логи для дальнейшего анализа или отправки","Перенаправьте вывод в файл: `dmesg > ~/dmesg_$(date +%Y%m%d).log`. Добавьте временные метки и сожмите: `dmesg -T | gzip > dmesg_log.gz`.","PT20M",[1707,1708,1709,1710,1711,1712,1713,1714],"ошибки dmesg linux","dmesg ошибки ядра","как читать dmesg","анализ системных логов linux","diagnostics dmesg","ошибки оборудования linux dmesg","команда dmesg примеры","фильтрация dmesg","ru_RU",{},"/errors/linux/linux-dmesg-errors","linux",[1720,1721],"/guides/linux/reading-journalctl-logs","/guides/linux/understanding-syslog","Ошибки Linux",{"title":5,"description":1671},"errors/linux/linux-dmesg-errors","Эта статья поможет вам освоить инструмент dmesg для диагностики проблем на уровне ядра Linux. Вы научитесь фильтровать, интерпретировать логи и устранять типичные ошибки оборудования, драйверов и файловых систем.",[26,1718,1727,1728,1729,1730],"kernel","syslog","troubleshooting","hardware","guide","Lx4NExE-pRP2_tRwxZvnQF9a-Wk1pHbC3ekEocgvkBY",{"data":1734,"body":1735},{},{"type":1736,"children":1737},"root",[1738],{"type":1739,"tag":21,"props":1740,"children":1741},"element",{},[1742,1744,1750],{"type":153,"value":1743},"Используйте фильтрацию по уровню серьезности: ",{"type":1739,"tag":24,"props":1745,"children":1747},{"className":1746},[],[1748],{"type":153,"value":1749},"dmesg -l err,crit,alert,emerg",{"type":153,"value":1751},". Эта команда покажет только сообщения с уровнем ошибки (err) и выше.",{"data":1753,"body":1754},{},{"type":1736,"children":1755},[1756],{"type":1739,"tag":21,"props":1757,"children":1758},{},[1759,1764,1766,1772],{"type":1739,"tag":24,"props":1760,"children":1762},{"className":1761},[],[1763],{"type":153,"value":26},{"type":153,"value":1765}," читает кольцевой буфер ядра в памяти, который теряется при перезагрузке. ",{"type":1739,"tag":24,"props":1767,"children":1769},{"className":1768},[],[1770],{"type":153,"value":1771},"journalctl -k",{"type":153,"value":1773}," читает те же сообщения, но из системного журнала systemd, что позволяет сохранять историю между перезагрузками. Для диагностики после перезагрузки используйте journalctl.",{"data":1775,"body":1776},{},{"type":1736,"children":1777},[1778],{"type":1739,"tag":21,"props":1779,"children":1780},{},[1781,1783,1789,1791,1797,1799,1805],{"type":153,"value":1782},"Да. Выполните ",{"type":1739,"tag":24,"props":1784,"children":1786},{"className":1785},[],[1787],{"type":153,"value":1788},"dmesg > dmesg_full.log",{"type":153,"value":1790},". Для более читаемого формата с временными метками используйте ",{"type":1739,"tag":24,"props":1792,"children":1794},{"className":1793},[],[1795],{"type":153,"value":1796},"dmesg -T > dmesg_timestamped.log",{"type":153,"value":1798},". Сжимайте файл gzip: ",{"type":1739,"tag":24,"props":1800,"children":1802},{"className":1801},[],[1803],{"type":153,"value":1804},"gzip dmesg_full.log",{"type":153,"value":83},{"data":1807,"body":1808},{},{"type":1736,"children":1809},[1810],{"type":1739,"tag":21,"props":1811,"children":1812},{},[1813],{"type":153,"value":1688},{"data":1815,"body":1816},{},{"type":1736,"children":1817},[1818],{"type":1739,"tag":21,"props":1819,"children":1820},{},[1821,1823,1828,1830,1836],{"type":153,"value":1822},"Откройте терминал и выполните команду ",{"type":1739,"tag":24,"props":1824,"children":1826},{"className":1825},[],[1827],{"type":153,"value":26},{"type":153,"value":1829},". Для удобства добавьте временные метки: ",{"type":1739,"tag":24,"props":1831,"children":1833},{"className":1832},[],[1834],{"type":153,"value":1835},"dmesg -T",{"type":153,"value":1837},". Первые строки — самые старые (загрузка системы), последние — самые свежие события.",{"data":1839,"body":1840},{},{"type":1736,"children":1841},[1842],{"type":1739,"tag":21,"props":1843,"children":1844},{},[1845,1847,1852,1854,1860,1862,1868],{"type":153,"value":1846},"Используйте ",{"type":1739,"tag":24,"props":1848,"children":1850},{"className":1849},[],[1851],{"type":153,"value":527},{"type":153,"value":1853}," для поиска конкретных проблем. Например: ",{"type":1739,"tag":24,"props":1855,"children":1857},{"className":1856},[],[1858],{"type":153,"value":1859},"dmesg | grep -i error",{"type":153,"value":1861}," (поиск слова 'error' без учета регистра) или ",{"type":1739,"tag":24,"props":1863,"children":1865},{"className":1864},[],[1866],{"type":153,"value":1867},"dmesg | grep -i usb",{"type":153,"value":1869}," (для проблем с USB-устройствами).",{"data":1871,"body":1872},{},{"type":1736,"children":1873},[1874],{"type":1739,"tag":21,"props":1875,"children":1876},{},[1877,1879,1884],{"type":153,"value":1878},"Включите в вывод только сообщения уровня 'error' и выше: ",{"type":1739,"tag":24,"props":1880,"children":1882},{"className":1881},[],[1883],{"type":153,"value":1749},{"type":153,"value":1885},". Уровни: emerg (система неработоспособна), alert (требует немедленного вмешательства), crit (критическая), err (ошибка), warn (предупреждение), info, debug.",{"data":1887,"body":1888},{},{"type":1736,"children":1889},[1890],{"type":1739,"tag":21,"props":1891,"children":1892},{},[1893,1894,1899,1901,1906,1908,1914,1916,1922],{"type":153,"value":1846},{"type":1739,"tag":24,"props":1895,"children":1897},{"className":1896},[],[1898],{"type":153,"value":527},{"type":153,"value":1900}," с регулярными выражениями. Пример для драйвера ",{"type":1739,"tag":24,"props":1902,"children":1904},{"className":1903},[],[1905],{"type":153,"value":812},{"type":153,"value":1907}," (сетевой): ",{"type":1739,"tag":24,"props":1909,"children":1911},{"className":1910},[],[1912],{"type":153,"value":1913},"dmesg | grep e1000",{"type":153,"value":1915},". Для PCI-устройств: ",{"type":1739,"tag":24,"props":1917,"children":1919},{"className":1918},[],[1920],{"type":153,"value":1921},"dmesg | grep PCI",{"type":153,"value":83},{"data":1924,"body":1925},{},{"type":1736,"children":1926},[1927],{"type":1739,"tag":21,"props":1928,"children":1929},{},[1930,1932,1938,1940,1946],{"type":153,"value":1931},"Перенаправьте вывод в файл: ",{"type":1739,"tag":24,"props":1933,"children":1935},{"className":1934},[],[1936],{"type":153,"value":1937},"dmesg > ~/dmesg_$(date +%Y%m%d).log",{"type":153,"value":1939},". Добавьте временные метки и сожмите: ",{"type":1739,"tag":24,"props":1941,"children":1943},{"className":1942},[],[1944],{"type":153,"value":1945},"dmesg -T | gzip > dmesg_log.gz",{"type":153,"value":83},[1948],{"id":1949,"title":1950,"appliesTo":1951,"author":11,"body":1956,"canonical":1669,"code":1669,"createdAt":2999,"description":3000,"difficulty":1672,"draft":1673,"estimatedTime":1674,"extension":1675,"faq":3001,"howToSteps":3014,"howToTotalTime":3033,"image":1669,"keywords":3034,"locale":1715,"meta":3045,"navigation":255,"path":1721,"platform":1718,"related":3046,"section":3050,"seo":3051,"severity":3052,"stem":3053,"summary":3054,"tags":3055,"twitterCreator":1669,"twitterSite":1669,"type":1731,"updatedAt":2999,"__hash__":3060},"content_ru/guides/linux/understanding-syslog.md","Освойте syslog в Linux: настройка, мониторинг и анализ логов",[1952,1953,1954,1955],"Ubuntu 22.04+","CentOS 8+","Debian 11+","Linux ядро 5.x+",{"type":13,"value":1957,"toc":2984},[1958,1962,1965,1969,1972,2002,2006,2009,2112,2120,2124,2127,2132,2157,2162,2181,2184,2203,2206,2220,2230,2234,2244,2296,2302,2346,2359,2361,2365,2374,2478,2482,2489,2498,2515,2518,2532,2535,2541,2544,2562,2566,2570,2573,2674,2686,2690,2693,2703,2709,2714,2753,2762,2768,2771,2791,2795,2798,2855,2858,2862,2981],[16,1959,1961],{"id":1960},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,1963,1964],{},"Syslog — это стандартный протокол для сбора и хранения системных логов в Unix-подобных операционных системах. Понимание syslog критически важно для системных администраторов и разработчиков: оно позволяет мониторить работу системы, диагностировать проблемы, отслеживать безопасность и анализировать производительность. В этом гайде вы изучите архитектуру syslog, научитесь настраивать демон rsyslog и работать с логами на практике. После выполнения вы сможете эффективно отслеживать события в Linux, настраивать логирование для своих приложений и поддерживать порядок в системных журналах.",[16,1966,1968],{"id":1967},"требования-подготовка","Требования / Подготовка",[21,1970,1971],{},"Перед началом убедитесь, что у вас есть:",[39,1973,1974,1977,1983,1992],{},[42,1975,1976],{},"Доступ к Linux-системе (Ubuntu, CentOS, Debian или другой) с правами суперпользователя (sudo).",[42,1978,1979,1980,1982],{},"Установленный пакет ",[24,1981,82],{}," (в большинстве дистрибутивов он есть по умолчанию; если нет — установите по инструкции ниже).",[42,1984,1985,1986,79,1989,57],{},"Базовые знания работы в терминале и редактирования текстовых файлов (например, с помощью ",[24,1987,1988],{},"nano",[24,1990,1991],{},"vim",[42,1993,1994,1995,760,1998,760,2000,57],{},"Понимание основных команд Linux (например, ",[24,1996,1997],{},"ls",[24,1999,1448],{},[24,2001,527],{},[16,2003,2005],{"id":2004},"шаг-1-архитектура-syslog","Шаг 1: Архитектура syslog",[21,2007,2008],{},"Syslog состоит из нескольких ключевых компонентов, которые работают вместе для сбора, маршрутизации и хранения логов:",[39,2010,2011,2022,2039,2106],{},[42,2012,2013,128,2016,79,2018,2021],{},[29,2014,2015],{},"Демон syslog",[24,2017,82],{},[24,2019,2020],{},"syslog-ng","): фоновый процесс, который принимает сообщения от приложений, ядра и сетевых источников, затем фильтрует и направляет их в указанные места (файлы, базы данных, удалённые серверы).",[42,2023,2024,2027,2028,2031,2032,2035,2036,57],{},[29,2025,2026],{},"Конфигурационные файлы",": определяют правила обработки сообщений. Основной файл — ",[24,2029,2030],{},"/etc/rsyslog.conf",", а дополнительные конфигурации можно размещать в ",[24,2033,2034],{},"/etc/rsyslog.d/"," (файлы с расширением ",[24,2037,2038],{},".conf",[42,2040,2041,2044,2045],{},[29,2042,2043],{},"Уровни логирования",": каждое сообщение имеет:\n",[39,2046,2047,2072],{},[42,2048,2049,2052,2053,2056,2057,2059,2060,2063,2064,2067,2068,2071],{},[29,2050,2051],{},"Facility"," (категория источника): например, ",[24,2054,2055],{},"auth"," (аутентификация), ",[24,2058,1580],{}," (задачи cron), ",[24,2061,2062],{},"local0","–",[24,2065,2066],{},"local7"," (пользовательские категории), ",[24,2069,2070],{},"kern"," (ядро).",[42,2073,2074,2077,2078,2081,2082,2084,2085,760,2087,760,2090,760,2093,760,2096,760,2099,760,2102,760,2104,83],{},[29,2075,2076],{},"Severity"," (уровень важности): от ",[24,2079,2080],{},"debug"," (отладка) до ",[24,2083,739],{}," (критическая ошибка). Порядок: ",[24,2086,2080],{},[24,2088,2089],{},"info",[24,2091,2092],{},"notice",[24,2094,2095],{},"warning",[24,2097,2098],{},"err",[24,2100,2101],{},"crit",[24,2103,743],{},[24,2105,739],{},[42,2107,2108,2111],{},[29,2109,2110],{},"Транспорт",": syslog поддерживает передачу по сети (UDP/TCP, обычно порт 514) и локальное хранение в файлах.",[178,2113,2114],{},[21,2115,2116,2117,2119],{},"💡 Совет: В современных дистрибутивах по умолчанию используется ",[24,2118,82],{}," — это быстрая и расширяемая реализация с поддержкой TLS, фильтрации и модулей. Для понимания основ достаточно её.",[16,2121,2123],{"id":2122},"шаг-2-установка-и-запуск-rsyslog","Шаг 2: Установка и запуск rsyslog",[21,2125,2126],{},"Хотя rsyslog часто предустановлен, проверьте его наличие и установите при необходимости.",[21,2128,2129],{},[29,2130,2131],{},"Для Debian/Ubuntu:",[148,2133,2135],{"className":222,"code":2134,"language":224,"meta":156,"style":156},"sudo apt update\nsudo apt install rsyslog\n",[24,2136,2137,2146],{"__ignoreMap":156},[228,2138,2139,2141,2143],{"class":230,"line":231},[228,2140,898],{"class":241},[228,2142,901],{"class":248},[228,2144,2145],{"class":248}," update\n",[228,2147,2148,2150,2152,2154],{"class":230,"line":238},[228,2149,898],{"class":241},[228,2151,901],{"class":248},[228,2153,915],{"class":248},[228,2155,2156],{"class":248}," rsyslog\n",[21,2158,2159],{},[29,2160,2161],{},"Для RHEL/CentOS (8+):",[148,2163,2165],{"className":222,"code":2164,"language":224,"meta":156,"style":156},"sudo dnf install rsyslog  # или sudo yum на более старых версиях\n",[24,2166,2167],{"__ignoreMap":156},[228,2168,2169,2171,2173,2175,2178],{"class":230,"line":231},[228,2170,898],{"class":241},[228,2172,930],{"class":248},[228,2174,915],{"class":248},[228,2176,2177],{"class":248}," rsyslog",[228,2179,2180],{"class":234},"  # или sudo yum на более старых версиях\n",[21,2182,2183],{},"После установки запустите и включите демон в автозагрузку:",[148,2185,2187],{"className":222,"code":2186,"language":224,"meta":156,"style":156},"sudo systemctl enable --now rsyslog\n",[24,2188,2189],{"__ignoreMap":156},[228,2190,2191,2193,2195,2198,2201],{"class":230,"line":231},[228,2192,898],{"class":241},[228,2194,1208],{"class":248},[228,2196,2197],{"class":248}," enable",[228,2199,2200],{"class":244}," --now",[228,2202,2156],{"class":248},[21,2204,2205],{},"Проверьте статус:",[148,2207,2209],{"className":222,"code":2208,"language":224,"meta":156,"style":156},"systemctl status rsyslog\n",[24,2210,2211],{"__ignoreMap":156},[228,2212,2213,2216,2218],{"class":230,"line":231},[228,2214,2215],{"class":241},"systemctl",[228,2217,1211],{"class":248},[228,2219,2156],{"class":248},[21,2221,2222,2223,2226,2227,83],{},"Вы должны увидеть ",[24,2224,2225],{},"active (running)",". Если демон не запущен, выполните ",[24,2228,2229],{},"sudo systemctl start rsyslog",[16,2231,2233],{"id":2232},"шаг-3-основы-конфигурации","Шаг 3: Основы конфигурации",[21,2235,2236,2237,2239,2240,2243],{},"Основной конфигурационный файл — ",[24,2238,2030],{},". Откройте его для просмотра (например, ",[24,2241,2242],{},"sudo nano /etc/rsyslog.conf","). Обратите внимание на следующие элементы:",[39,2245,2246,2256,2269],{},[42,2247,2248,2251,2252,2255],{},[29,2249,2250],{},"Модули",": в начале файла могут быть загружены модули (например, ",[24,2253,2254],{},"module(load=\"imuxsock\")"," для поддержки локальных сокетов).",[42,2257,2258,2261,2262,760,2265,2268],{},[29,2259,2260],{},"Глобальные директивы",": такие как ",[24,2263,2264],{},"$FileOwner syslog",[24,2266,2267],{},"$FileGroup adm"," (владельцы лог-файлов).",[42,2270,2271,2274,2275,2281,2282,2284,2285,760,2287,760,2290,2292,2293,83],{},[29,2272,2273],{},"Правила (селекторы и действия)",": строки вида:\n",[148,2276,2279],{"className":2277,"code":2278,"language":153},[151],"*.info;mail.none;authpriv.none;cron.none /var/log/messages\n",[24,2280,2278],{"__ignoreMap":156},"\nЭто правило означает: все сообщения с severity ",[24,2283,2089],{}," и выше (из всех facility, кроме ",[24,2286,1339],{},[24,2288,2289],{},"authpriv",[24,2291,1580],{},") записывать в файл ",[24,2294,2295],{},"/var/log/messages",[21,2297,2298,2299],{},"Синтаксис правила: ",[24,2300,2301],{},"\u003Cселектор> \u003Cдействие>",[39,2303,2304,2324],{},[42,2305,2306,2309,2310,128,2313,2316,2317,2320,2321,83],{},[29,2307,2308],{},"Селектор",": ",[24,2311,2312],{},"facility.severity",[24,2314,2315],{},"auth.err","), можно использовать wildcards ",[24,2318,2319],{},"*"," (все facility) и комбинации через ",[24,2322,2323],{},";",[42,2325,2326,2329,2330,2333,2334,2337,2338,2341,2342,2345],{},[29,2327,2328],{},"Действие",": путь к файлу (начинается с ",[24,2331,2332],{},"/","), удалённый сервер (",[24,2335,2336],{},"@server"," для UDP, ",[24,2339,2340],{},"@@server"," для TCP), команда (через ",[24,2343,2344],{},"|","), база данных и т.д.",[178,2347,2348],{},[21,2349,2350,2351,2354,2355,2358],{},"⚠️ Важно: После любых изменений в конфигурации перезагрузите rsyslog: ",[24,2352,2353],{},"sudo systemctl restart rsyslog",". Для проверки синтаксиса используйте ",[24,2356,2357],{},"sudo rsyslogd -N1"," (тестовый запуск без фактического запуска).",[696,2360],{},[16,2362,2364],{"id":2363},"шаг-4-создание-собственного-правила-логирования","Шаг 4: Создание собственного правила логирования",[21,2366,2367,2368,2370,2371,83],{},"Допустим, вы хотите логировать сообщения от вашего приложения, которое использует facility ",[24,2369,2062],{},", в отдельный файл ",[24,2372,2373],{},"/var/log/myapp.log",[712,2375,2376,2397,2413,2459],{},[42,2377,2378,2379,2381,2382],{},"Создайте отдельный конфигурационный файл в ",[24,2380,2034],{}," (рекомендуется для пользовательских правил, чтобы не изменять основной файл):",[148,2383,2385],{"className":222,"code":2384,"language":224,"meta":156,"style":156},"sudo nano /etc/rsyslog.d/myapp.conf\n",[24,2386,2387],{"__ignoreMap":156},[228,2388,2389,2391,2394],{"class":230,"line":231},[228,2390,898],{"class":241},[228,2392,2393],{"class":248}," nano",[228,2395,2396],{"class":248}," /etc/rsyslog.d/myapp.conf\n",[42,2398,2399,2400,2406,2409,2410,2412],{},"Добавьте строку:",[148,2401,2404],{"className":2402,"code":2403,"language":153},[151],"local0.* /var/log/myapp.log\n",[24,2405,2403],{"__ignoreMap":156},[2407,2408],"br",{},"Это правило перенаправляет все сообщения с facility ",[24,2411,2062],{}," (любого severity) в указанный файл.",[42,2414,2415,2416],{},"Создайте файл лога и установите корректные права (rsyslog обычно сам создаёт файл при первом обращении, но можно предварительно):",[148,2417,2419],{"className":222,"code":2418,"language":224,"meta":156,"style":156},"sudo touch /var/log/myapp.log\nsudo chown syslog:adm /var/log/myapp.log  #владелец и группа могут отличаться (например, `root:syslog`)\nsudo chmod 640 /var/log/myapp.log\n",[24,2420,2421,2431,2447],{"__ignoreMap":156},[228,2422,2423,2425,2428],{"class":230,"line":231},[228,2424,898],{"class":241},[228,2426,2427],{"class":248}," touch",[228,2429,2430],{"class":248}," /var/log/myapp.log\n",[228,2432,2433,2435,2438,2441,2444],{"class":230,"line":238},[228,2434,898],{"class":241},[228,2436,2437],{"class":248}," chown",[228,2439,2440],{"class":248}," syslog:adm",[228,2442,2443],{"class":248}," /var/log/myapp.log",[228,2445,2446],{"class":234},"  #владелец и группа могут отличаться (например, `root:syslog`)\n",[228,2448,2449,2451,2454,2457],{"class":230,"line":252},[228,2450,898],{"class":241},[228,2452,2453],{"class":248}," chmod",[228,2455,2456],{"class":244}," 640",[228,2458,2430],{"class":248},[42,2460,2461,2462],{},"Перезагрузите rsyslog:",[148,2463,2465],{"className":222,"code":2464,"language":224,"meta":156,"style":156},"sudo systemctl restart rsyslog\n",[24,2466,2467],{"__ignoreMap":156},[228,2468,2469,2471,2473,2476],{"class":230,"line":231},[228,2470,898],{"class":241},[228,2472,1208],{"class":248},[228,2474,2475],{"class":248}," restart",[228,2477,2156],{"class":248},[16,2479,2481],{"id":2480},"шаг-5-тестирование-с-командой-logger","Шаг 5: Тестирование с командой logger",[21,2483,2484,2485,2488],{},"Используйте утилиту ",[24,2486,2487],{},"logger"," для отправки тестовых сообщений в syslog. Она позволяет указать facility и severity.",[21,2490,2491,2492,2494,2495,2497],{},"Отправьте сообщение с facility ",[24,2493,2062],{}," и severity ",[24,2496,2089],{},":",[148,2499,2501],{"className":222,"code":2500,"language":224,"meta":156,"style":156},"logger -p local0.info \"Тестовое сообщение от моего приложения\"\n",[24,2502,2503],{"__ignoreMap":156},[228,2504,2505,2507,2509,2512],{"class":230,"line":231},[228,2506,2487],{"class":241},[228,2508,1309],{"class":244},[228,2510,2511],{"class":248}," local0.info",[228,2513,2514],{"class":248}," \"Тестовое сообщение от моего приложения\"\n",[21,2516,2517],{},"Проверьте, появилось ли оно в логе:",[148,2519,2521],{"className":222,"code":2520,"language":224,"meta":156,"style":156},"tail -f /var/log/myapp.log\n",[24,2522,2523],{"__ignoreMap":156},[228,2524,2525,2528,2530],{"class":230,"line":231},[228,2526,2527],{"class":241},"tail",[228,2529,1070],{"class":244},[228,2531,2430],{"class":248},[21,2533,2534],{},"Вы должны увидеть строку, похожую на:",[148,2536,2539],{"className":2537,"code":2538,"language":153},[151],"Feb 15 10:30:00 hostname username: Тестовое сообщение от моего приложения\n",[24,2540,2538],{"__ignoreMap":156},[21,2542,2543],{},"Если сообщение не появилось:",[39,2545,2546,2553,2556],{},[42,2547,2548,2549,2552],{},"Убедитесь, что правило в ",[24,2550,2551],{},"myapp.conf"," корректно (без опечаток).",[42,2554,2555],{},"Проверьте, что rsyslog перезапущен.",[42,2557,2558,2559,2561],{},"Убедитесь, что ваше приложение действительно использует facility ",[24,2560,2062],{}," (возможно, нужно настроить само приложение, например, в конфигурационном файле или коде).",[16,2563,2565],{"id":2564},"шаг-6-просмотр-анализ-и-ротация-логов","Шаг 6: Просмотр, анализ и ротация логов",[85,2567,2569],{"id":2568},"просмотр-и-анализ-логов","Просмотр и анализ логов",[21,2571,2572],{},"Для мониторинга и поиска в логах используйте:",[39,2574,2575,2615,2635],{},[42,2576,2577,2579,2580],{},[29,2578,2527],{},": следить за последними строками в реальном времени.",[148,2581,2583],{"className":222,"code":2582,"language":224,"meta":156,"style":156},"tail -f /var/log/myapp.log  # следить за вашим логом\ntail -f /var/log/syslog | grep \"error\"  # фильтровать по ключевому слову\n",[24,2584,2585,2596],{"__ignoreMap":156},[228,2586,2587,2589,2591,2593],{"class":230,"line":231},[228,2588,2527],{"class":241},[228,2590,1070],{"class":244},[228,2592,2443],{"class":248},[228,2594,2595],{"class":234},"  # следить за вашим логом\n",[228,2597,2598,2600,2602,2605,2607,2609,2612],{"class":230,"line":238},[228,2599,2527],{"class":241},[228,2601,1070],{"class":244},[228,2603,2604],{"class":248}," /var/log/syslog",[228,2606,295],{"class":294},[228,2608,298],{"class":241},[228,2610,2611],{"class":248}," \"error\"",[228,2613,2614],{"class":234},"  # фильтровать по ключевому слову\n",[42,2616,2617,2619,2620],{},[29,2618,527],{},": поиск по шаблону.",[148,2621,2623],{"className":222,"code":2622,"language":224,"meta":156,"style":156},"grep \"local0\" /var/log/syslog\n",[24,2624,2625],{"__ignoreMap":156},[228,2626,2627,2629,2632],{"class":230,"line":231},[228,2628,527],{"class":241},[228,2630,2631],{"class":248}," \"local0\"",[228,2633,2634],{"class":248}," /var/log/syslog\n",[42,2636,2637,2639,2640],{},[29,2638,531],{},": если система использует systemd-journald, он может показывать как свои логи, так и те, что перенаправлены из rsyslog (если настроено).",[148,2641,2643],{"className":222,"code":2642,"language":224,"meta":156,"style":156},"journalctl -u rsyslog -f  # следить за логами самого rsyslog\njournalctl -f | grep \"local0\"  # фильтровать по facility\n",[24,2644,2645,2659],{"__ignoreMap":156},[228,2646,2647,2649,2652,2654,2656],{"class":230,"line":231},[228,2648,531],{"class":241},[228,2650,2651],{"class":244}," -u",[228,2653,2177],{"class":248},[228,2655,1070],{"class":244},[228,2657,2658],{"class":234},"  # следить за логами самого rsyslog\n",[228,2660,2661,2663,2665,2667,2669,2671],{"class":230,"line":238},[228,2662,531],{"class":241},[228,2664,1070],{"class":244},[228,2666,295],{"class":294},[228,2668,298],{"class":241},[228,2670,2631],{"class":248},[228,2672,2673],{"class":234},"  # фильтровать по facility\n",[178,2675,2676],{},[21,2677,2678,2679,760,2682,2685],{},"💡 Совет: Для сложного анализа (статистика, графики) рассмотрите инструменты вроде ",[24,2680,2681],{},"awk",[24,2683,2684],{},"sed"," или системы ELK (Elasticsearch, Logstash, Kibana) или Graylog.",[85,2687,2689],{"id":2688},"ротация-логов","Ротация логов",[21,2691,2692],{},"С течением времени файлы логов могут вырасти до огромных размеров. Ротация автоматически архивирует старые логи и создаёт новые.",[21,2694,2695,2696,2699,2700,2497],{},"Rsyslog часто интегрируется с ",[24,2697,2698],{},"logrotate",". Конфигурация для стандартных логов обычно в ",[24,2701,2702],{},"/etc/logrotate.d/rsyslog",[148,2704,2707],{"className":2705,"code":2706,"language":153},[151],"/var/log/syslog\n/var/log/mail.log\n/var/log/kern.log\n/var/log/auth.log\n{\n    rotate 4\n    weekly\n    missingok\n    notifempty\n    compress\n    delaycompress\n    sharedscripts\n    postrotate\n        /usr/lib/rsyslog/rsyslog-rotate\n    endscript\n}\n",[24,2708,2706],{"__ignoreMap":156},[21,2710,2711],{},[29,2712,2713],{},"Ключевые параметры:",[39,2715,2716,2729,2741,2747],{},[42,2717,2718,2721,2722,760,2725,2728],{},[24,2719,2720],{},"rotate 4",": хранить 4 архивных файла (например, ",[24,2723,2724],{},"syslog.1",[24,2726,2727],{},"syslog.2.gz"," и т.д.).",[42,2730,2731,2734,2735,760,2738,57],{},[24,2732,2733],{},"weekly",": ротация каждую неделю (можно ",[24,2736,2737],{},"daily",[24,2739,2740],{},"monthly",[42,2742,2743,2746],{},[24,2744,2745],{},"compress",": сжимать архивы gzip.",[42,2748,2749,2752],{},[24,2750,2751],{},"postrotate",": скрипт после ротации, который уведомляет rsyslog о переименовании файлов (важно для корректного продолжения логирования).",[21,2754,2755,2756,2758,2759,2497],{},"Для вашего кастомного лога ",[24,2757,2373],{}," добавьте отдельный блок в тот же файл или создайте новый в ",[24,2760,2761],{},"/etc/logrotate.d/",[148,2763,2766],{"className":2764,"code":2765,"language":153},[151],"/var/log/myapp.log {\n    rotate 12\n    monthly\n    compress\n    delaycompress\n    missingok\n    notifempty\n    create 640 syslog adm\n}\n",[24,2767,2765],{"__ignoreMap":156},[21,2769,2770],{},"Протестировать ротацию можно вручную:",[148,2772,2774],{"className":222,"code":2773,"language":224,"meta":156,"style":156},"sudo logrotate -f /etc/logrotate.conf  # принудительная ротация\n",[24,2775,2776],{"__ignoreMap":156},[228,2777,2778,2780,2783,2785,2788],{"class":230,"line":231},[228,2779,898],{"class":241},[228,2781,2782],{"class":248}," logrotate",[228,2784,1070],{"class":244},[228,2786,2787],{"class":248}," /etc/logrotate.conf",[228,2789,2790],{"class":234},"  # принудительная ротация\n",[16,2792,2794],{"id":2793},"проверка-результата","Проверка результата",[21,2796,2797],{},"После выполнения всех шагов убедитесь, что настройка работает корректно:",[712,2799,2800,2812,2820,2833,2843],{},[42,2801,2802,2309,2805,2808,2809,83],{},[29,2803,2804],{},"Демон rsyslog активен",[24,2806,2807],{},"systemctl is-active rsyslog"," должен вернуть ",[24,2810,2811],{},"active",[42,2813,2814,2309,2817,83],{},[29,2815,2816],{},"Лог-файл существует и доступен",[24,2818,2819],{},"ls -l /var/log/myapp.log",[42,2821,2822,2825,2826,2829,2830,83],{},[29,2823,2824],{},"Тестовое сообщение записывается",": снова выполните ",[24,2827,2828],{},"logger -p local0.info \"Ещё одно тестовое сообщение\""," и проверьте ",[24,2831,2832],{},"tail -f /var/log/myapp.log",[42,2834,2835,2838,2839,2842],{},[29,2836,2837],{},"Ротация настроена",": проверьте конфигурацию logrotate (",[24,2840,2841],{},"sudo cat /etc/logrotate.d/rsyslog"," и ваш файл) и убедитесь, что параметры соответствуют требованиям.",[42,2844,2845,2309,2848,2851,2852,57],{},[29,2846,2847],{},"Нет ошибок в логах rsyslog",[24,2849,2850],{},"grep -i error /var/log/syslog"," (или ",[24,2853,2854],{},"journalctl -u rsyslog",[21,2856,2857],{},"Если все пункты выполнены, вы успешно настроили syslog для своего приложения и научились работать с системными логами.",[16,2859,2861],{"id":2860},"возможные-проблемы","Возможные проблемы",[39,2863,2864,2889,2912,2938,2962],{},[42,2865,2866,2869,2870,2872,2873,79,2876,2878,2879,2882,2883,740,2886,83],{},[29,2867,2868],{},"Ошибка доступа при записи в лог-файл",": Убедитесь, что rsyslog имеет права на запись. Проверьте владельца и права файла (",[24,2871,2819],{},"). Обычно файлы логов должны принадлежать группе ",[24,2874,2875],{},"adm",[24,2877,1728],{}," и иметь права ",[24,2880,2881],{},"640",". Если файл создан вручную, используйте ",[24,2884,2885],{},"sudo chown syslog:adm /var/log/myapp.log",[24,2887,2888],{},"sudo chmod 640 /var/log/myapp.log",[42,2890,2891,2894,2895,2897,2898,2900,2901,2903,2904,2906,2907,2909,2910,57],{},[29,2892,2893],{},"Сообщения не попадают в лог",": Проверьте синтаксис конфигурационного файла с помощью ",[24,2896,2357],{}," (вывод покажет ошибки). Убедитесь, что facility ",[24,2899,2062],{}," используется вашим приложением (иногда нужно явно указать в конфигурации приложения, например, ",[24,2902,2062],{}," в ",[24,2905,1728],{},"-настройках). Также проверьте, что правило загружено (файл в ",[24,2908,2034],{}," имеет расширение ",[24,2911,2038],{},[42,2913,2914,2917,2918,2903,2921,2923,2924,2927,2928,2931,2932,2935,2936,83],{},[29,2915,2916],{},"Конфликт с systemd-journald",": Если journald настроен на хранение логов (",[24,2919,2920],{},"Storage=persistent",[24,2922,1220],{},"), он может перехватывать сообщения до rsyslog. Убедитесь, что в ",[24,2925,2926],{},"journald.conf"," установлено ",[24,2929,2930],{},"ForwardToSyslog=yes"," (по умолчанию часто ",[24,2933,2934],{},"yes","). После изменений перезапустите journald: ",[24,2937,1254],{},[42,2939,2940,2943,2944,2946,2947,2949,2950,2953,2954,2957,2958,2961],{},[29,2941,2942],{},"Логи не ротируются",": Проверьте, что конфигурация logrotate включает ваш файл (файл в ",[24,2945,2761],{},"). Убедитесь, что скрипт ",[24,2948,2751],{}," корректно уведомляет rsyslog (путь ",[24,2951,2952],{},"/usr/lib/rsyslog/rsyslog-rotate"," может отличаться; на некоторых системах это ",[24,2955,2956],{},"/usr/sbin/rsyslog-rotate","). Запустите ",[24,2959,2960],{},"sudo logrotate -d /etc/logrotate.conf"," для тестового прогона без применения.",[42,2963,2964,2967,2968,2971,2972,2975,2976,2978,2979,57],{},[29,2965,2966],{},"Много ненужных сообщений в логах",": Настройте более точные селекторы. Например, вместо ",[24,2969,2970],{},"local0.*"," используйте ",[24,2973,2974],{},"local0.warn"," для только предупреждений и ошибок. Или исключите ненужные facility через ",[24,2977,2323],{}," (как в примере с ",[24,2980,2295],{},[1637,2982,2983],{},"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 .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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":156,"searchDepth":238,"depth":238,"links":2985},[2986,2987,2988,2989,2990,2991,2992,2993,2997,2998],{"id":1960,"depth":238,"text":1961},{"id":1967,"depth":238,"text":1968},{"id":2004,"depth":238,"text":2005},{"id":2122,"depth":238,"text":2123},{"id":2232,"depth":238,"text":2233},{"id":2363,"depth":238,"text":2364},{"id":2480,"depth":238,"text":2481},{"id":2564,"depth":238,"text":2565,"children":2994},[2995,2996],{"id":2568,"depth":252,"text":2569},{"id":2688,"depth":252,"text":2689},{"id":2793,"depth":238,"text":2794},{"id":2860,"depth":238,"text":2861},"2026-02-15 01:32:39","Полное руководство по syslog в Linux. Узнайте, как настроить rsyslog, работать с логами и обеспечить мониторинг системы. Повысьте эффективность администрирования за 30 минут!",[3002,3005,3008,3011],{"question":3003,"answer":3004},"В чем разница между syslog и journald?","Syslog — классический протокол и демон для логирования в текстовые файлы. Journald — часть systemd, хранит логи в бинарном формате с расширенными метаданными. Их можно использовать параллельно, но journald современнее и интегрирован с systemd.",{"question":3006,"answer":3007},"Как проверить, работает ли rsyslog?","Выполните `systemctl status rsyslog` для проверки статуса демона. Также отправьте тестовое сообщение через `logger` и убедитесь, что оно появилось в соответствующем лог-файле, например, `/var/log/syslog`.",{"question":3009,"answer":3010},"Где хранятся логи syslog по умолчанию?","Обычно в `/var/log/syslog` (Debian/Ubuntu) или `/var/log/messages` (RHEL/CentOS). Точное расположение определяется в конфигурационных файлах rsyslog, например, `/etc/rsyslog.conf`.",{"question":3012,"answer":3013},"Как настроить ротацию логов для syslog?","Ротация обычно управляется через `logrotate`. Конфигурация для rsyslog находится в `/etc/logrotate.d/rsyslog`. Вы можете настроить частоту (ежедневно/еженедельно), размер и количество архивных файлов.",[3015,3018,3021,3024,3027,3030],{"name":3016,"text":3017},"Понять архитектуру syslog","Ознакомьтесь с компонентами syslog: демон, конфигурационные файлы, уровни логирования и транспорт.",{"name":3019,"text":3020},"Установить и запустить rsyslog","Установите пакет rsyslog и запустите демон, включив его в автозагрузку.",{"name":3022,"text":3023},"Изучить базовую конфигурацию","Откройте /etc/rsyslog.conf, чтобы понять синтаксис и стандартные правила.",{"name":3025,"text":3026},"Создать собственное правило логирования","Добавьте правило для вашего приложения, указав facility и файл вывода.",{"name":3028,"text":3029},"Протестировать логирование","Используйте команду logger для отправки тестовых сообщений и проверьте их в логах.",{"name":3031,"text":3032},"Настроить просмотр и анализ логов","Освойте команды tail, grep и journalctl для эффективного мониторинга и диагностики.","PT30M",[3035,3036,3037,3038,3039,3040,3041,3042,3043,3044],"syslog linux","что такое syslog","настройка rsyslog","архитектура syslog","системный журнал linux","journalctl vs syslog","мониторинг логов linux","логгирование в linux","rsyslog configuration","отладка syslog",{},[3047,3048,3049],"/guides/linux/configure-rsyslog","/guides/linux/analyze-logs-with-journalctl","/errors/linux/syslog-service-failed","Гайды Linux",{"title":1950,"description":3000},"low","guides/linux/understanding-syslog","Этот гайд подробно объясняет архитектуру syslog, настройку демона rsyslog и работу с системными логами. Вы научитесь эффективно отслеживать события, диагностировать проблемы и настраивать ротацию логов в Linux.",[1718,1728,3056,3057,82,3058,3059],"логи","администрирование","journald","monitoring","2ozVNWLTDqVilieIgtTZq8CUppwraPHzgYqc3kE5agk"]