HTML Diff
1 added 1 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>1 окт 2025</li>
2 <ul><li>1 окт 2025</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><h2>Лог-файлы: как отыскать ошибку в системе</h2>
4 </ul><h2>Лог-файлы: как отыскать ошибку в системе</h2>
5 <p>Объясняем, что такое лог-файлы, для чего они нужны, как они выглядят и как их читать.</p>
5 <p>Объясняем, что такое лог-файлы, для чего они нужны, как они выглядят и как их читать.</p>
6 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
7 <p>Любит странные игры, мистику и лиминальность. Может часами рассказывать о пиксельном инди, носит пышные платья и собирается сделать татуировку по Outer Wilds.</p>
7 <p>Любит странные игры, мистику и лиминальность. Может часами рассказывать о пиксельном инди, носит пышные платья и собирается сделать татуировку по Outer Wilds.</p>
8 <p>Лог-файл - это журнал событий, в который программа или система записывает свои действия. Когда программа или сервер начинают вести себя странно, первое место, куда смотрят администраторы и разработчики, - это лог-файлы. В них фиксируется всё - от сообщений об ошибках до времени выполнения операций. По сути, это "чёрный ящик" системы, который помогает понять, что пошло не так, и быстрее принять решение: перезапустить сервис, исправить конфигурацию или закрыть уязвимость. Без логов поиск проблемы превращается в угадайку.</p>
8 <p>Лог-файл - это журнал событий, в который программа или система записывает свои действия. Когда программа или сервер начинают вести себя странно, первое место, куда смотрят администраторы и разработчики, - это лог-файлы. В них фиксируется всё - от сообщений об ошибках до времени выполнения операций. По сути, это "чёрный ящик" системы, который помогает понять, что пошло не так, и быстрее принять решение: перезапустить сервис, исправить конфигурацию или закрыть уязвимость. Без логов поиск проблемы превращается в угадайку.</p>
9 <p>В этой статье разберёмся, как устроены логи, какие бывают типы лог-файлов, как их читать и анализировать, где они хранятся и зачем нужны.</p>
9 <p>В этой статье разберёмся, как устроены логи, какие бывают типы лог-файлов, как их читать и анализировать, где они хранятся и зачем нужны.</p>
10 <p><strong>Содержание</strong></p>
10 <p><strong>Содержание</strong></p>
11 <ul><li><a>Как работают лог-файлы</a></li>
11 <ul><li><a>Как работают лог-файлы</a></li>
12 <li><a>Типы логов</a></li>
12 <li><a>Типы логов</a></li>
13 <li><a>Расширения и форматы логов</a></li>
13 <li><a>Расширения и форматы логов</a></li>
14 <li><a>Где находятся логи и как с ними обращаться</a></li>
14 <li><a>Где находятся логи и как с ними обращаться</a></li>
15 <li><a>Что искать: советы</a></li>
15 <li><a>Что искать: советы</a></li>
16 </ul><p><strong>Лог-файл</strong>- это документ, в котором строка за строкой записываются события, происходящие в системе или программе. Каждое событие фиксируется в момент, когда оно произошло.</p>
16 </ul><p><strong>Лог-файл</strong>- это документ, в котором строка за строкой записываются события, происходящие в системе или программе. Каждое событие фиксируется в момент, когда оно произошло.</p>
17 <em>Скриншот: Windows / Skillbox Media</em><p>Запись обычно включает несколько элементов:</p>
17 <em>Скриншот: Windows / Skillbox Media</em><p>Запись обычно включает несколько элементов:</p>
18 <ul><li><strong>дата и время</strong> - чтобы понять, когда именно произошло событие;</li>
18 <ul><li><strong>дата и время</strong> - чтобы понять, когда именно произошло событие;</li>
19 <li><strong>источник</strong> - какая программа или компонент его создали;</li>
19 <li><strong>источник</strong> - какая программа или компонент его создали;</li>
20 <li><strong>тип события</strong> - обычное действие, предупреждение или ошибка;</li>
20 <li><strong>тип события</strong> - обычное действие, предупреждение или ошибка;</li>
21 <li><strong>сообщение</strong> - краткое описание сути.</li>
21 <li><strong>сообщение</strong> - краткое описание сути.</li>
22 </ul><p>Рассмотрим в качестве примера такую запись:</p>
22 </ul><p>Рассмотрим в качестве примера такую запись:</p>
23 2025-09-26 14:32:10,456 INFO [UserService] User with ID 123 successfully created.<p>Здесь:</p>
23 2025-09-26 14:32:10,456 INFO [UserService] User with ID 123 successfully created.<p>Здесь:</p>
24 <ul><li>2025-09-26 14:32:10,456 - временная метка.</li>
24 <ul><li>2025-09-26 14:32:10,456 - временная метка.</li>
25 <li>INFO - уровень логирования. Это классификация событий по степени их важности, по ним можно понять, насколько серьёзное событие произошло. Основные уровни логирования: DEBUG, INFO, WARN, ERROR.</li>
25 <li>INFO - уровень логирования. Это классификация событий по степени их важности, по ним можно понять, насколько серьёзное событие произошло. Основные уровни логирования: DEBUG, INFO, WARN, ERROR.</li>
26 <li>[UserService] - источник лога, обычно это имя класса, модуля или компонента.</li>
26 <li>[UserService] - источник лога, обычно это имя класса, модуля или компонента.</li>
27 <li>User with ID 123 successfully created. - само сообщение.</li>
27 <li>User with ID 123 successfully created. - само сообщение.</li>
28 </ul><p>Логирование работает автоматически. Когда программа выполняет действие, она добавляет строку в журнал. Если произошла ошибка, запись тоже появляется в логе. Для этого в коде есть специальные вызовы, которые отвечают за фиксацию событий.</p>
28 </ul><p>Логирование работает автоматически. Когда программа выполняет действие, она добавляет строку в журнал. Если произошла ошибка, запись тоже появляется в логе. Для этого в коде есть специальные вызовы, которые отвечают за фиксацию событий.</p>
29 <p>Логирование используется повсюду: в операционных системах, приложениях, сетевых сервисах, базах данных. Логи позволяют разработчикам и инженерам восстанавливать последовательность событий и точнее диагностировать проблему.</p>
29 <p>Логирование используется повсюду: в операционных системах, приложениях, сетевых сервисах, базах данных. Логи позволяют разработчикам и инженерам восстанавливать последовательность событий и точнее диагностировать проблему.</p>
30 - <p>Логи помогают понять, что происходит внутри системы, и дают тветы на самые практичные вопросы: почему упал сервис, почему страница стала открываться медленнее, откуда взялась подозрительная активность. У них есть несколько основных сфер применения.</p>
30 + <p>Логи помогают понять, что происходит внутри системы, и дают ответы на самые практичные вопросы: почему упал сервис, почему страница стала открываться медленнее, откуда взялась подозрительная активность. У них есть несколько основных сфер применения.</p>
31 <p><strong>Отслеживание ошибок и неполадок.</strong>Когда что-то идёт не так - зависает сервис, падает часть функций, пользователи жалуются, - без логов вы почти слепы. Логи содержат сообщения об ошибках, предупреждения, стек-трейс, время, когда произошёл сбой. Всё это помогает точно выяснить, что случилось, в каком порядке и с чем было связано.</p>
31 <p><strong>Отслеживание ошибок и неполадок.</strong>Когда что-то идёт не так - зависает сервис, падает часть функций, пользователи жалуются, - без логов вы почти слепы. Логи содержат сообщения об ошибках, предупреждения, стек-трейс, время, когда произошёл сбой. Всё это помогает точно выяснить, что случилось, в каком порядке и с чем было связано.</p>
32 <p><strong>Производительность.</strong>Иногда проблемы не проявляются в явных ошибках, но система работает медленно. Логи показывают, какие запросы или процессы тянут время, где происходят задержки, когда ресурсов (CPU, памяти, ввода-вывода) не хватает. Это позволяет заранее реагировать и оптимизировать, прежде чем дело дойдёт до сбоя.</p>
32 <p><strong>Производительность.</strong>Иногда проблемы не проявляются в явных ошибках, но система работает медленно. Логи показывают, какие запросы или процессы тянут время, где происходят задержки, когда ресурсов (CPU, памяти, ввода-вывода) не хватает. Это позволяет заранее реагировать и оптимизировать, прежде чем дело дойдёт до сбоя.</p>
33 <p><strong>Безопасность.</strong>Неуспешные попытки входа, подозрительная активность, необычные обращения к ресурсам - всё это фиксируется в логах. В случае инцидента они позволяют восстановить хронологию событий, выяснить, как злоумышленник попал внутрь, какие ресурсы были задействованы, и минимизировать ущерб.</p>
33 <p><strong>Безопасность.</strong>Неуспешные попытки входа, подозрительная активность, необычные обращения к ресурсам - всё это фиксируется в логах. В случае инцидента они позволяют восстановить хронологию событий, выяснить, как злоумышленник попал внутрь, какие ресурсы были задействованы, и минимизировать ущерб.</p>
34 <p><strong>Стандарты и комплаенс.</strong>Во многих отраслях - финансах, здравоохранении, банковских системах - есть требования: хранить логи, регистрировать, кто, когда, что делал, быть готовым предоставить отчёты. Логи становятся юридическим доказательством, когда требуется показать, что у вас всё под контролем.</p>
34 <p><strong>Стандарты и комплаенс.</strong>Во многих отраслях - финансах, здравоохранении, банковских системах - есть требования: хранить логи, регистрировать, кто, когда, что делал, быть готовым предоставить отчёты. Логи становятся юридическим доказательством, когда требуется показать, что у вас всё под контролем.</p>
35 <p><strong>Анализ трендов и планирование ресурсов.</strong>Если система недавно поднялась, запущены новые функции или возросла нагрузка, логи позволяют видеть, как с течением времени меняется поведение: число ошибок, частота обращений, пиковые нагрузки. На основе этого можно принимать решения: масштабировать инфраструктуру, перераспределять ресурсы, улучшать архитектуру.</p>
35 <p><strong>Анализ трендов и планирование ресурсов.</strong>Если система недавно поднялась, запущены новые функции или возросла нагрузка, логи позволяют видеть, как с течением времени меняется поведение: число ошибок, частота обращений, пиковые нагрузки. На основе этого можно принимать решения: масштабировать инфраструктуру, перераспределять ресурсы, улучшать архитектуру.</p>
36 <p>В зависимости от того, что фиксируется и для чего используется, логи можно разделить на основные категории.</p>
36 <p>В зависимости от того, что фиксируется и для чего используется, логи можно разделить на основные категории.</p>
37 <p>Генерируются операционной системой и фиксируют события, происходящие в её ядре и компонентах. Показывают, как работает ОС и оборудование, помогают выявлять ошибки. Например, если драйвер установился с ошибкой и из-за этого перестал работать принтер, это можно увидеть в системных логах.</p>
37 <p>Генерируются операционной системой и фиксируют события, происходящие в её ядре и компонентах. Показывают, как работает ОС и оборудование, помогают выявлять ошибки. Например, если драйвер установился с ошибкой и из-за этого перестал работать принтер, это можно увидеть в системных логах.</p>
38 <p>Включают:</p>
38 <p>Включают:</p>
39 <ul><li>загрузку и выгрузку драйверов;</li>
39 <ul><li>загрузку и выгрузку драйверов;</li>
40 <li>ошибки ядра;</li>
40 <li>ошибки ядра;</li>
41 <li>события оборудования;</li>
41 <li>события оборудования;</li>
42 <li>процессы ОС.</li>
42 <li>процессы ОС.</li>
43 </ul><p>Генерируются конкретными приложениями и фиксируют события, происходящие внутри программы. Показывают, что происходило в приложении, где возникли ошибки и как выполнялись процессы. Например, могут фиксировать открытие и закрытие программы, а также коды ошибок при сбоях. По этим данным легко понять, что произошло.</p>
43 </ul><p>Генерируются конкретными приложениями и фиксируют события, происходящие внутри программы. Показывают, что происходило в приложении, где возникли ошибки и как выполнялись процессы. Например, могут фиксировать открытие и закрытие программы, а также коды ошибок при сбоях. По этим данным легко понять, что произошло.</p>
44 <p>Включают:</p>
44 <p>Включают:</p>
45 <ul><li>ошибки приложения;</li>
45 <ul><li>ошибки приложения;</li>
46 <li>события бизнес-логики;</li>
46 <li>события бизнес-логики;</li>
47 <li>внутренние уведомления и процессы.</li>
47 <li>внутренние уведомления и процессы.</li>
48 </ul><p>Генерируются сервером, на котором развёрнут сайт или приложение, и фиксируют все обращения клиентов. Показывают, что происходило на сервере, сколько пользователей заходило на сайт и откуда, позволяют оценить время выполнения запросов, - это помогает понять, нужно ли оптимизировать работу сервера. Используются для анализа трафика, аудита использования ресурсов и выявления подозрительной активности.</p>
48 </ul><p>Генерируются сервером, на котором развёрнут сайт или приложение, и фиксируют все обращения клиентов. Показывают, что происходило на сервере, сколько пользователей заходило на сайт и откуда, позволяют оценить время выполнения запросов, - это помогает понять, нужно ли оптимизировать работу сервера. Используются для анализа трафика, аудита использования ресурсов и выявления подозрительной активности.</p>
49 <p>Включают:</p>
49 <p>Включают:</p>
50 <ul><li>IP клиента;</li>
50 <ul><li>IP клиента;</li>
51 <li>URL запроса;</li>
51 <li>URL запроса;</li>
52 <li>статус ответа;</li>
52 <li>статус ответа;</li>
53 <li>время обработки запроса.</li>
53 <li>время обработки запроса.</li>
54 </ul><p>Генерируются сетевыми устройствами или системами. Фиксируют события, связанные с сетевыми подключениями к интернету или локальной сети. Показывают, какие программы или устройства пытались установить соединение и удалось ли это, а также фиксируют ошибки сетевого оборудования. Используются для мониторинга сети, диагностики проблем с подключениями и оборудования, для выявления подозрительной активности в сети.</p>
54 </ul><p>Генерируются сетевыми устройствами или системами. Фиксируют события, связанные с сетевыми подключениями к интернету или локальной сети. Показывают, какие программы или устройства пытались установить соединение и удалось ли это, а также фиксируют ошибки сетевого оборудования. Используются для мониторинга сети, диагностики проблем с подключениями и оборудования, для выявления подозрительной активности в сети.</p>
55 <p>Включают:</p>
55 <p>Включают:</p>
56 <ul><li>трафик и подключения;</li>
56 <ul><li>трафик и подключения;</li>
57 <li>ошибки сетевого оборудования;</li>
57 <li>ошибки сетевого оборудования;</li>
58 <li>попытки доступа к сети программами или устройствами.</li>
58 <li>попытки доступа к сети программами или устройствами.</li>
59 </ul><p>Генерируются системами и приложениями для отслеживания событий, связанных с безопасностью. Используются для обнаружения атак, контроля доступа и аудита безопасности. Фиксируют действия, которые могут угрожать безопасности системы, помогают контролировать доступ и выявлять подозрительную активность. Например, логи могут зафиксировать десять неудачных попыток входа или блокировку подозрительного пользователя.</p>
59 </ul><p>Генерируются системами и приложениями для отслеживания событий, связанных с безопасностью. Используются для обнаружения атак, контроля доступа и аудита безопасности. Фиксируют действия, которые могут угрожать безопасности системы, помогают контролировать доступ и выявлять подозрительную активность. Например, логи могут зафиксировать десять неудачных попыток входа или блокировку подозрительного пользователя.</p>
60 <p>Включают:</p>
60 <p>Включают:</p>
61 <ul><li>успешные и неуспешные попытки входа;</li>
61 <ul><li>успешные и неуспешные попытки входа;</li>
62 <li>блокировки пользователей;</li>
62 <li>блокировки пользователей;</li>
63 <li>изменения прав доступа;</li>
63 <li>изменения прав доступа;</li>
64 <li>подозрительные действия.</li>
64 <li>подозрительные действия.</li>
65 </ul><p>Генерируются "умными" устройствами: бытовой техникой, часами, автомобилями и другими подключёнными устройствами. Фиксируют действия и состояние устройства, позволяя понять, как оно работает, и выявлять неполадки. Используются для мониторинга работы устройств, диагностики неполадок и анализа пользовательского взаимодействия. Например, по логам можно узнать, почему в машине перестало включаться радио или до какой температуры нагревается умный чайник.</p>
65 </ul><p>Генерируются "умными" устройствами: бытовой техникой, часами, автомобилями и другими подключёнными устройствами. Фиксируют действия и состояние устройства, позволяя понять, как оно работает, и выявлять неполадки. Используются для мониторинга работы устройств, диагностики неполадок и анализа пользовательского взаимодействия. Например, по логам можно узнать, почему в машине перестало включаться радио или до какой температуры нагревается умный чайник.</p>
66 <p>Включают:</p>
66 <p>Включают:</p>
67 <ul><li>состояние устройства и датчиков;</li>
67 <ul><li>состояние устройства и датчиков;</li>
68 <li>ошибки и сбои работы;</li>
68 <li>ошибки и сбои работы;</li>
69 <li>взаимодействие с пользователем и другими устройствами.</li>
69 <li>взаимодействие с пользователем и другими устройствами.</li>
70 </ul><p>Генерируются системами управления базами данных и фиксируют события, связанные с работой БД. Используются для диагностики работы базы данных, оптимизации запросов и отслеживания ошибок.</p>
70 </ul><p>Генерируются системами управления базами данных и фиксируют события, связанные с работой БД. Используются для диагностики работы базы данных, оптимизации запросов и отслеживания ошибок.</p>
71 <p>Логи отслеживают корректность выполнения запросов, производительность и сбои. Например, по ним можно определить медленные запросы или ошибки подключения клиентов.</p>
71 <p>Логи отслеживают корректность выполнения запросов, производительность и сбои. Например, по ним можно определить медленные запросы или ошибки подключения клиентов.</p>
72 <p>Включают:</p>
72 <p>Включают:</p>
73 <ul><li>ошибки SQL-запросов;</li>
73 <ul><li>ошибки SQL-запросов;</li>
74 <li>медленные или неудачные запросы;</li>
74 <li>медленные или неудачные запросы;</li>
75 <li>подключения и отключения клиентов.</li>
75 <li>подключения и отключения клиентов.</li>
76 </ul><p>Фиксируют критические события и сбои приложений или систем. Они помогают быстро реагировать на неполадки и выявлять причины сбоев. Например, по логам можно понять, почему процесс упал или произошёл критический сбой.</p>
76 </ul><p>Фиксируют критические события и сбои приложений или систем. Они помогают быстро реагировать на неполадки и выявлять причины сбоев. Например, по логам можно понять, почему процесс упал или произошёл критический сбой.</p>
77 <p>Включают:</p>
77 <p>Включают:</p>
78 <ul><li>исключения и аварийные ошибки;</li>
78 <ul><li>исключения и аварийные ошибки;</li>
79 <li>падения процессов;</li>
79 <li>падения процессов;</li>
80 <li>критические сбои системы или приложения.</li>
80 <li>критические сбои системы или приложения.</li>
81 </ul><p>Логи могут храниться в разных форматах и с различными расширениями файлов. Чаще всего это простые текстовые записи, но для системного анализа используются и структурированные форматы.</p>
81 </ul><p>Логи могут храниться в разных форматах и с различными расширениями файлов. Чаще всего это простые текстовые записи, но для системного анализа используются и структурированные форматы.</p>
82 <p>Это обычные текстовые файлы, которые можно открыть в любом редакторе: Notepad, VS Code, Sublime Text, Nano или Vim. Их удобно читать, но они плохо подходят для автоматической обработки.</p>
82 <p>Это обычные текстовые файлы, которые можно открыть в любом редакторе: Notepad, VS Code, Sublime Text, Nano или Vim. Их удобно читать, но они плохо подходят для автоматической обработки.</p>
83 <ul><li><strong>.log</strong> - стандартное расширение для журналов событий.</li>
83 <ul><li><strong>.log</strong> - стандартное расширение для журналов событий.</li>
84 </ul><p>Пример: access.log в Apache и Nginx содержит информацию обо всех запросах пользователей к серверу.</p>
84 </ul><p>Пример: access.log в Apache и Nginx содержит информацию обо всех запросах пользователей к серверу.</p>
85 <ul><li><strong>.txt</strong> - простой текстовый файл, часто используется для простых отчётов, вспомогательных логов.</li>
85 <ul><li><strong>.txt</strong> - простой текстовый файл, часто используется для простых отчётов, вспомогательных логов.</li>
86 </ul><p>Пример: events.txt -<strong>текстовый журнал</strong>, который создают сами программы и приложения для записи событий. Может хранить информацию об ошибках или действиях пользователя.</p>
86 </ul><p>Пример: events.txt -<strong>текстовый журнал</strong>, который создают сами программы и приложения для записи событий. Может хранить информацию об ошибках или действиях пользователя.</p>
87 <ul><li><strong>.out</strong> - вывод приложений или сервисов.</li>
87 <ul><li><strong>.out</strong> - вывод приложений или сервисов.</li>
88 </ul><p>Пример: app.out содержит результаты работы программы или скрипта, включая служебные сообщения.</p>
88 </ul><p>Пример: app.out содержит результаты работы программы или скрипта, включая служебные сообщения.</p>
89 <ul><li><strong>.err</strong> - поток ошибок (stderr), выведенный в файл.</li>
89 <ul><li><strong>.err</strong> - поток ошибок (stderr), выведенный в файл.</li>
90 </ul><p>Пример: errors.err сохраняет критические ошибки при запуске программы.</p>
90 </ul><p>Пример: errors.err сохраняет критические ошибки при запуске программы.</p>
91 <ul><li>Системные логи (Windows) сохраняются в формате .evtx. Это не текстовые файлы, а отдельные журналы. Такие логи открываются через<strong>Event Viewer</strong> - встроенную в Windows утилиту, командную оболочку PowerShell или специальные утилиты.</li>
91 <ul><li>Системные логи (Windows) сохраняются в формате .evtx. Это не текстовые файлы, а отдельные журналы. Такие логи открываются через<strong>Event Viewer</strong> - встроенную в Windows утилиту, командную оболочку PowerShell или специальные утилиты.</li>
92 </ul><p>Пример<em>:</em>System.evtx фиксирует ошибки драйверов, загрузку служб и сбои оборудования.</p>
92 </ul><p>Пример<em>:</em>System.evtx фиксирует ошибки драйверов, загрузку служб и сбои оборудования.</p>
93 <em>Скриншот: Журнал событий Windows / Skillbox Media</em><p>Такие логи имеют строгий формат (JSON, XML, CSV), что позволяет легко их обрабатывать автоматически, фильтровать и анализировать.</p>
93 <em>Скриншот: Журнал событий Windows / Skillbox Media</em><p>Такие логи имеют строгий формат (JSON, XML, CSV), что позволяет легко их обрабатывать автоматически, фильтровать и анализировать.</p>
94 <ul><li>.<a>json</a> - часто используется в микросервисах и контейнерах.</li>
94 <ul><li>.<a>json</a> - часто используется в микросервисах и контейнерах.</li>
95 </ul><p>Пример<em>:</em>log.json хранит структурированные записи с отметкой времени, уровнем ошибки и источником. Удобен для систем анализа и мониторинга (ELK Stack, Splunk).</p>
95 </ul><p>Пример<em>:</em>log.json хранит структурированные записи с отметкой времени, уровнем ошибки и источником. Удобен для систем анализа и мониторинга (ELK Stack, Splunk).</p>
96 <ul><li>.<a>xml</a> - формат с жёсткой структурой.</li>
96 <ul><li>.<a>xml</a> - формат с жёсткой структурой.</li>
97 </ul><p>Пример<em>:</em>audit.xml - экспорт журнала аудита безопасности Windows, где фиксируются входы в систему и изменения прав.</p>
97 </ul><p>Пример<em>:</em>audit.xml - экспорт журнала аудита безопасности Windows, где фиксируются входы в систему и изменения прав.</p>
98 <ul><li>.<a>csv</a> - табличный формат, удобный для отчётности.</li>
98 <ul><li>.<a>csv</a> - табличный формат, удобный для отчётности.</li>
99 </ul><p>Пример<em>:</em>events.csv - экспорт событий из Windows Event Viewer или сетевых устройств, который можно открыть в Excel или "Google Таблицах".</p>
99 </ul><p>Пример<em>:</em>events.csv - экспорт событий из Windows Event Viewer или сетевых устройств, который можно открыть в Excel или "Google Таблицах".</p>
100 <p>Уровень записи - это классификация событий по их важности, по ним можно понять, насколько серьёзное событие произошло.</p>
100 <p>Уровень записи - это классификация событий по их важности, по ним можно понять, насколько серьёзное событие произошло.</p>
101 <p>Основные уровни записей в лог-файлах:</p>
101 <p>Основные уровни записей в лог-файлах:</p>
102 <ul><li>DEBUG - подробные данные о работе системы или приложения. Используются для разработки и поиска ошибок. Например, разработчик проверяет, какие значения переменных передаются в функции.</li>
102 <ul><li>DEBUG - подробные данные о работе системы или приложения. Используются для разработки и поиска ошибок. Например, разработчик проверяет, какие значения переменных передаются в функции.</li>
103 </ul><p>Запись может выглядеть так:</p>
103 </ul><p>Запись может выглядеть так:</p>
104 2025-09-26 15:10:05 DEBUG Starting payment calculation, user_id=123<p>DEBUG-записи не критичны для работы системы, полезны только при отладке.</p>
104 2025-09-26 15:10:05 DEBUG Starting payment calculation, user_id=123<p>DEBUG-записи не критичны для работы системы, полезны только при отладке.</p>
105 <ul><li>INFO - общая информация о работе системы. Используется для отслеживания нормального хода работы: "Сервис запущен", "Пользователь вошёл", "Отправлено письмо".</li>
105 <ul><li>INFO - общая информация о работе системы. Используется для отслеживания нормального хода работы: "Сервис запущен", "Пользователь вошёл", "Отправлено письмо".</li>
106 </ul><p>Пример записи:</p>
106 </ul><p>Пример записи:</p>
107 2025-09 - 26 15:12:01 INFO User 'alice' logged in<p>INFO - записи сообщают, что всё работает как положено. Они просто фиксируют события.</p>
107 2025-09 - 26 15:12:01 INFO User 'alice' logged in<p>INFO - записи сообщают, что всё работает как положено. Они просто фиксируют события.</p>
108 <ul><li>WARN (warning-предупреждение) - потенциальная проблема. Используется, когда ошибка пока не критична, но может вызвать проблему в будущем - например, диск почти полный, база данных отвечает медленно, сеть нестабильна.</li>
108 <ul><li>WARN (warning-предупреждение) - потенциальная проблема. Используется, когда ошибка пока не критична, но может вызвать проблему в будущем - например, диск почти полный, база данных отвечает медленно, сеть нестабильна.</li>
109 </ul><p>Запись выглядит так:</p>
109 </ul><p>Запись выглядит так:</p>
110 2025-09-26 15:15:22 WARN Disk usage at 90%<p>WARN сообщает, что система работает, но администратору стоит обратить внимание на источник предупреждения и при необходимости принять меры.</p>
110 2025-09-26 15:15:22 WARN Disk usage at 90%<p>WARN сообщает, что система работает, но администратору стоит обратить внимание на источник предупреждения и при необходимости принять меры.</p>
111 <ul><li>ERROR - ошибка, которая уже влияет на работу системы. Используется, когда операция не выполнена или сервис работает некорректно - например, не удалось подключиться к базе данных, письмо не отправлено, произошёл сбой запроса.</li>
111 <ul><li>ERROR - ошибка, которая уже влияет на работу системы. Используется, когда операция не выполнена или сервис работает некорректно - например, не удалось подключиться к базе данных, письмо не отправлено, произошёл сбой запроса.</li>
112 </ul><p>Пример записи:</p>
112 </ul><p>Пример записи:</p>
113 2025-09-26 15:20:05 ERROR Cannot connect to database<p>ERROR сообщает, что нужно вмешательство администратора или разработчика.</p>
113 2025-09-26 15:20:05 ERROR Cannot connect to database<p>ERROR сообщает, что нужно вмешательство администратора или разработчика.</p>
114 <ul><li>FATAL / CRITICAL - критическая ошибка, которая останавливает систему или сервис. Используется, когда ничего не работает и нужно срочно вмешаться - например, произошёл сбой ядра ОС, упал веб-сервер, база данных недоступна.</li>
114 <ul><li>FATAL / CRITICAL - критическая ошибка, которая останавливает систему или сервис. Используется, когда ничего не работает и нужно срочно вмешаться - например, произошёл сбой ядра ОС, упал веб-сервер, база данных недоступна.</li>
115 </ul><p>Пример записи:</p>
115 </ul><p>Пример записи:</p>
116 2025-09-26 15:25:10 FATAL Web service crashed, shutting down<p>Запись говорит: "Срочно нужно исправлять, иначе сервис недоступен".</p>
116 2025-09-26 15:25:10 FATAL Web service crashed, shutting down<p>Запись говорит: "Срочно нужно исправлять, иначе сервис недоступен".</p>
117 <ul><li>TRACE (редко, в некоторых системах) - ещё более детальный уровень, чем DEBUG. Используют для глубокого анализа работы приложения, пошагового отслеживания процессов, например:</li>
117 <ul><li>TRACE (редко, в некоторых системах) - ещё более детальный уровень, чем DEBUG. Используют для глубокого анализа работы приложения, пошагового отслеживания процессов, например:</li>
118 </ul>2025-09-26 15:30:01 TRACE Entering function calculateTax()<p>У каждой ОС есть своё хранилище логов.</p>
118 </ul>2025-09-26 15:30:01 TRACE Entering function calculateTax()<p>У каждой ОС есть своё хранилище логов.</p>
119 <p><strong>Linux</strong>складывает их в папку /var/log/:</p>
119 <p><strong>Linux</strong>складывает их в папку /var/log/:</p>
120 <ul><li>/var/log/syslog - общий системный дневник.</li>
120 <ul><li>/var/log/syslog - общий системный дневник.</li>
121 <li>/var/log/auth.log - рассказывает про входы в систему.</li>
121 <li>/var/log/auth.log - рассказывает про входы в систему.</li>
122 <li>/var/log/nginx/access.log - это "чёрный ящик" вашего сайта, он показывает, кто заходил и что запрашивал.</li>
122 <li>/var/log/nginx/access.log - это "чёрный ящик" вашего сайта, он показывает, кто заходил и что запрашивал.</li>
123 </ul><p><strong>Журналы Windows</strong>лежат в C:\Windows\System32\winevt\Logs\. Внутри три главных раздела:<strong>System</strong>(события ОС),<strong>Application</strong>(программы),<strong>Security</strong>(аутентификация и доступ).</p>
123 </ul><p><strong>Журналы Windows</strong>лежат в C:\Windows\System32\winevt\Logs\. Внутри три главных раздела:<strong>System</strong>(события ОС),<strong>Application</strong>(программы),<strong>Security</strong>(аутентификация и доступ).</p>
124 <p><strong>Сетевые устройства</strong>(Cisco, Mikrotik и другие) обычно ничего локально не держат, а отправляют записи на сервер через протокол<strong>Syslog</strong>.</p>
124 <p><strong>Сетевые устройства</strong>(Cisco, Mikrotik и другие) обычно ничего локально не держат, а отправляют записи на сервер через протокол<strong>Syslog</strong>.</p>
125 <p>Программы ведут собственные журналы, чтобы фиксировать ошибки, события, действия пользователей и внутренние процессы. Место хранения зависит от операционной системы и типа программы.</p>
125 <p>Программы ведут собственные журналы, чтобы фиксировать ошибки, события, действия пользователей и внутренние процессы. Место хранения зависит от операционной системы и типа программы.</p>
126 <p><strong>Linux- / Unix-подобные системы</strong>-<strong></strong>основные каталоги:</p>
126 <p><strong>Linux- / Unix-подобные системы</strong>-<strong></strong>основные каталоги:</p>
127 <ul><li>/var/log/имя_программы/ - для конкретных приложений.</li>
127 <ul><li>/var/log/имя_программы/ - для конкретных приложений.</li>
128 <li>/var/log/ - общий системный лог, иногда приложения пишут туда.</li>
128 <li>/var/log/ - общий системный лог, иногда приложения пишут туда.</li>
129 </ul><p><strong>Windows</strong>-программы часто создают файлы с расширением .log в папках установки или в C:\Users\&lt;Имя&gt;\AppData\:</p>
129 </ul><p><strong>Windows</strong>-программы часто создают файлы с расширением .log в папках установки или в C:\Users\&lt;Имя&gt;\AppData\:</p>
130 <ul><li>C:\Program Files\ИмяПрограммы\logs\</li>
130 <ul><li>C:\Program Files\ИмяПрограммы\logs\</li>
131 <li>C:\Users\&lt;User&gt;\AppData\Local\ИмяПрограммы\Logs\</li>
131 <li>C:\Users\&lt;User&gt;\AppData\Local\ИмяПрограммы\Logs\</li>
132 </ul><p><strong>Логи можно хранить отдельно от программы.</strong>Так обычно делают в крупных компаниях, где много систем и приложений - а значит, много логов. Записи журнала событий отправляются на отдельный сервер и хранятся там. А просматривают их через системы логирования.</p>
132 </ul><p><strong>Логи можно хранить отдельно от программы.</strong>Так обычно делают в крупных компаниях, где много систем и приложений - а значит, много логов. Записи журнала событий отправляются на отдельный сервер и хранятся там. А просматривают их через системы логирования.</p>
133 <p>Логи пишутся постоянно. Если их не чистить, однажды они займут весь диск и сервер упадёт. Чтобы этого не произошло, используется ротация (<strong>log rotation)</strong>: старый файл переименовывается (access.log → access.log.1) или запаковывается в архив (.gz). Создаётся новый пустой лог, и система записывает события туда.</p>
133 <p>Логи пишутся постоянно. Если их не чистить, однажды они займут весь диск и сервер упадёт. Чтобы этого не произошло, используется ротация (<strong>log rotation)</strong>: старый файл переименовывается (access.log → access.log.1) или запаковывается в архив (.gz). Создаётся новый пустой лог, и система записывает события туда.</p>
134 <p>Сроки хранения зависят от задач:</p>
134 <p>Сроки хранения зависят от задач:</p>
135 <ul><li>для отладки хватает нескольких дней или недель;</li>
135 <ul><li>для отладки хватает нескольких дней или недель;</li>
136 <li>для анализа и расследований нужны месяцы;</li>
136 <li>для анализа и расследований нужны месяцы;</li>
137 <li>для аудита и соблюдения требований безопасности (например, PCI DSS) - год и больше.</li>
137 <li>для аудита и соблюдения требований безопасности (например, PCI DSS) - год и больше.</li>
138 </ul><p>Когда программа или служба просит "отправить лог", речь идёт о передаче файла с записями событий разработчикам или службе поддержки. Это нужно, чтобы специалисты могли изучить проблему и понять, почему приложение работает неправильно. Обычно файл отправляется как вложение в письме, в форме на сайте или в специальном сервисе.</p>
138 </ul><p>Когда программа или служба просит "отправить лог", речь идёт о передаче файла с записями событий разработчикам или службе поддержки. Это нужно, чтобы специалисты могли изучить проблему и понять, почему приложение работает неправильно. Обычно файл отправляется как вложение в письме, в форме на сайте или в специальном сервисе.</p>
139 <p>В логах могут быть IP-адреса и даже пароли. Поэтому доступ к логам ограничивают, при передаче используют шифрование (Syslog через TLS), проверяют целостность, чтобы злоумышленник не мог "подтереть следы", и выносят логи на отдельный сервер, куда не так просто залезть, чтобы что-то исправить.</p>
139 <p>В логах могут быть IP-адреса и даже пароли. Поэтому доступ к логам ограничивают, при передаче используют шифрование (Syslog через TLS), проверяют целостность, чтобы злоумышленник не мог "подтереть следы", и выносят логи на отдельный сервер, куда не так просто залезть, чтобы что-то исправить.</p>
140 <p>Признаки повреждения файла:</p>
140 <p>Признаки повреждения файла:</p>
141 <ul><li>невозможно открыть текстовый лог в обычном редакторе;</li>
141 <ul><li>невозможно открыть текстовый лог в обычном редакторе;</li>
142 <li>строки обрываются или отображаются некорректно;</li>
142 <li>строки обрываются или отображаются некорректно;</li>
143 <li>нарушена структура логов (отсутствует дата, источник или тип события).</li>
143 <li>нарушена структура логов (отсутствует дата, источник или тип события).</li>
144 </ul><p>Также, если лог частично читается, но содержит странные символы или не совпадает с ожидаемым форматом, его можно считать повреждённым. В таких случаях лучше использовать резервные копии или инструменты восстановления.</p>
144 </ul><p>Также, если лог частично читается, но содержит странные символы или не совпадает с ожидаемым форматом, его можно считать повреждённым. В таких случаях лучше использовать резервные копии или инструменты восстановления.</p>
145 <p>Чтобы извлечь пользу из логов, нужно уметь их открывать, фильтровать и правильно интерпретировать.</p>
145 <p>Чтобы извлечь пользу из логов, нужно уметь их открывать, фильтровать и правильно интерпретировать.</p>
146 <p>Чтобы найти то, что реально важно, используйте:</p>
146 <p>Чтобы найти то, что реально важно, используйте:</p>
147 <ul><li>фильтрацию по времени - ищем события за конкретный период. Например, tail -f /var/log/syslog и grep "Sep 26 14:" syslog;</li>
147 <ul><li>фильтрацию по времени - ищем события за конкретный период. Например, tail -f /var/log/syslog и grep "Sep 26 14:" syslog;</li>
148 <li>ключевые слова ERROR, WARN, FAILED, login, timeout сразу указывают на проблемные места;</li>
148 <li>ключевые слова ERROR, WARN, FAILED, login, timeout сразу указывают на проблемные места;</li>
149 <li>источник событий - имя процесса, сервис или IP-адрес пользователя позволяет понять, какая программа вызвала проблему;</li>
149 <li>источник событий - имя процесса, сервис или IP-адрес пользователя позволяет понять, какая программа вызвала проблему;</li>
150 <li>регулярные выражения - мощный способ находить сложные шаблоны, например ошибки с конкретным кодом.</li>
150 <li>регулярные выражения - мощный способ находить сложные шаблоны, например ошибки с конкретным кодом.</li>
151 </ul><p>Логи - это огромные массивы информации, которые трудно читать вручную. Чтобы понять, что происходит в системе, приложении или сети, используют анализаторы, утилиты и системы визуализации. Они помогают отбирать важные события, фильтровать, искать закономерности и отображать данные наглядно:</p>
151 </ul><p>Логи - это огромные массивы информации, которые трудно читать вручную. Чтобы понять, что происходит в системе, приложении или сети, используют анализаторы, утилиты и системы визуализации. Они помогают отбирать важные события, фильтровать, искать закономерности и отображать данные наглядно:</p>
152 <ul><li>Утилиты Linux для работы с логами: grep, awk, sed, tail -f. Используются для поиска, фильтрации и анализа файлов журналов.</li>
152 <ul><li>Утилиты Linux для работы с логами: grep, awk, sed, tail -f. Используются для поиска, фильтрации и анализа файлов журналов.</li>
153 <li>PowerShell - командная оболочка и язык сценариев (скриптов) от Microsoft. Позволяет просматривать, фильтровать и анализировать журналы событий.</li>
153 <li>PowerShell - командная оболочка и язык сценариев (скриптов) от Microsoft. Позволяет просматривать, фильтровать и анализировать журналы событий.</li>
154 </ul><ul><li>Event Viewer ("Просмотр событий") - это встроенная в Windows утилита для работы с системными логами. Она собирает и отображает все важные события, которые происходят в операционной системе: загрузку драйверов, запуск и остановку служб, ошибки приложений, предупреждения о безопасности.</li>
154 </ul><ul><li>Event Viewer ("Просмотр событий") - это встроенная в Windows утилита для работы с системными логами. Она собирает и отображает все важные события, которые происходят в операционной системе: загрузку драйверов, запуск и остановку служб, ошибки приложений, предупреждения о безопасности.</li>
155 <li>Визуализаторы и платформы анализа: позволяют находить закономерности, видеть всплески ошибок и строить отчёты.</li>
155 <li>Визуализаторы и платформы анализа: позволяют находить закономерности, видеть всплески ошибок и строить отчёты.</li>
156 </ul><ul><li>ELK Stack - это набор инструментов для сбора, хранения, анализа и визуализации логов и других данных в реальном времени. Он собирает, индексирует и строит графики по логам.</li>
156 </ul><ul><li>ELK Stack - это набор инструментов для сбора, хранения, анализа и визуализации логов и других данных в реальном времени. Он собирает, индексирует и строит графики по логам.</li>
157 <li>Splunk, Graylog - платформы для сбора, хранения, анализа и визуализации данных логов. Используются для поиска, алертов, дашбордов.</li>
157 <li>Splunk, Graylog - платформы для сбора, хранения, анализа и визуализации данных логов. Используются для поиска, алертов, дашбордов.</li>
158 </ul><p><strong>Если что-то сломалось.</strong>Нужно отобрать логи уровня fatal, если система упала, или error - если она работает, но плохо. Затем просмотреть сообщения:</p>
158 </ul><p><strong>Если что-то сломалось.</strong>Нужно отобрать логи уровня fatal, если система упала, или error - если она работает, но плохо. Затем просмотреть сообщения:</p>
159 <ul><li>источник лога поможет узнать, где именно произошла ошибка;</li>
159 <ul><li>источник лога поможет узнать, где именно произошла ошибка;</li>
160 <li>описание сообщит о коде ошибки - по нему можно понять, что же произошло.</li>
160 <li>описание сообщит о коде ошибки - по нему можно понять, что же произошло.</li>
161 </ul><p>Кодов ошибок миллионы, и запомнить их все невозможно. Поэтому код, а порой и всё описание вбивают в поисковик. Найдётся или официальная документация, или обсуждение от людей с той же проблемой. Так или иначе они подскажут, что можно сделать с ошибкой.</p>
161 </ul><p>Кодов ошибок миллионы, и запомнить их все невозможно. Поэтому код, а порой и всё описание вбивают в поисковик. Найдётся или официальная документация, или обсуждение от людей с той же проблемой. Так или иначе они подскажут, что можно сделать с ошибкой.</p>
162 <p><strong>Если всё работает, но надо лучше.</strong>В этом случае интересны не только ошибочные логи. Нужны записи о действиях, которые хочется оптимизировать. Например, об обработке каких-то запросов. Их можно оценить:</p>
162 <p><strong>Если всё работает, но надо лучше.</strong>В этом случае интересны не только ошибочные логи. Нужны записи о действиях, которые хочется оптимизировать. Например, об обработке каких-то запросов. Их можно оценить:</p>
163 <ul><li>по времени выполнения - не слишком ли медленно происходят действия;</li>
163 <ul><li>по времени выполнения - не слишком ли медленно происходят действия;</li>
164 <li>по наличию предупреждений - вдруг действие мешает безопасности или стабильности системы, может вызвать конфликты.</li>
164 <li>по наличию предупреждений - вдруг действие мешает безопасности или стабильности системы, может вызвать конфликты.</li>
165 </ul><p>Что делать дальше - зависит от результатов поиска. Может, код программы стоит переписать, чтобы она работала быстрее. А может, нужно избавиться от лишних зависимостей - связей с другими компонентами.</p>
165 </ul><p>Что делать дальше - зависит от результатов поиска. Может, код программы стоит переписать, чтобы она работала быстрее. А может, нужно избавиться от лишних зависимостей - связей с другими компонентами.</p>
166 <p><strong>Если идёт процесс отладки</strong>. Отладка, или дебаггинг, - процесс поиска ошибок в коде. Во время отладки в программе появляются специальные логи с пометкой debug. По ним разработчики смотрят, что происходит в процессе дебаггинга: эти логи подробнее обычных.</p>
166 <p><strong>Если идёт процесс отладки</strong>. Отладка, или дебаггинг, - процесс поиска ошибок в коде. Во время отладки в программе появляются специальные логи с пометкой debug. По ним разработчики смотрят, что происходит в процессе дебаггинга: эти логи подробнее обычных.</p>
167 <p>Ценность логов в том, что они исключают догадки. Когда программа падает или система ведёт себя странно, можно бесконечно строить версии, но в логах уже есть точная история событий.</p>
167 <p>Ценность логов в том, что они исключают догадки. Когда программа падает или система ведёт себя странно, можно бесконечно строить версии, но в логах уже есть точная история событий.</p>
168 <p>Записи показывают, что произошло и в какой момент. Это снижает неопределённость: вместо десятков возможных причин остаются одна-две, с которыми можно работать.</p>
168 <p>Записи показывают, что произошло и в какой момент. Это снижает неопределённость: вместо десятков возможных причин остаются одна-две, с которыми можно работать.</p>
169 <p>Даже базовое умение читать логи даёт ощутимую пользу. Достаточно научиться находить ключевые метки: время, источник, уровень ошибки, этого хватит на первых порах. Всё остальное приходит с практикой.</p>
169 <p>Даже базовое умение читать логи даёт ощутимую пользу. Достаточно научиться находить ключевые метки: время, источник, уровень ошибки, этого хватит на первых порах. Всё остальное приходит с практикой.</p>
170 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
170 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>