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\<Имя>\AppData\:</p>
129
</ul><p><strong>Windows</strong>-программы часто создают файлы с расширением .log в папках установки или в C:\Users\<Имя>\AppData\:</p>
130
<ul><li>C:\Program Files\ИмяПрограммы\logs\</li>
130
<ul><li>C:\Program Files\ИмяПрограммы\logs\</li>
131
<li>C:\Users\<User>\AppData\Local\ИмяПрограммы\Logs\</li>
131
<li>C:\Users\<User>\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>