0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Слово<strong>лог</strong>(от англ.<em>log</em>- журнал, запись) в информатике означает<strong>журнал событий</strong>, куда программы, операционные системы и сервисы записывают информацию о своей работе.<strong>Лог-файл</strong>- это обычный текстовый файл, в который последовательно сохраняются записи (логи) о действиях, ошибках и событиях.</p>
1
<p>Слово<strong>лог</strong>(от англ.<em>log</em>- журнал, запись) в информатике означает<strong>журнал событий</strong>, куда программы, операционные системы и сервисы записывают информацию о своей работе.<strong>Лог-файл</strong>- это обычный текстовый файл, в который последовательно сохраняются записи (логи) о действиях, ошибках и событиях.</p>
2
<h2>Логирование: что это и зачем</h2>
2
<h2>Логирование: что это и зачем</h2>
3
<p><strong>Логирование</strong>- это процесс<strong>записи событий, ошибок и других данных</strong>во время работы программы или системы. Оно помогает разработчикам, администраторам и аналитикам<strong>понимать, что происходит внутри системы</strong>.</p>
3
<p><strong>Логирование</strong>- это процесс<strong>записи событий, ошибок и других данных</strong>во время работы программы или системы. Оно помогает разработчикам, администраторам и аналитикам<strong>понимать, что происходит внутри системы</strong>.</p>
4
<p>Основные цели логирования:</p>
4
<p>Основные цели логирования:</p>
5
<ol><li><p>Диагностика - поиск ошибок, сбоев. Помогает выявить причины неполадок и определить, где именно возникла проблема в системе.</p>
5
<ol><li><p>Диагностика - поиск ошибок, сбоев. Помогает выявить причины неполадок и определить, где именно возникла проблема в системе.</p>
6
</li>
6
</li>
7
<li><p>Мониторинг - наблюдение за состоянием сервисов. Позволяет отслеживать производительность, нагрузку, доступность приложений в реальном времени.</p>
7
<li><p>Мониторинг - наблюдение за состоянием сервисов. Позволяет отслеживать производительность, нагрузку, доступность приложений в реальном времени.</p>
8
</li>
8
</li>
9
<li><p>Безопасность - фиксация действий пользователей, подозрительных событий. Логи используются для расследования инцидентов, предотвращения несанкционированного доступа.</p>
9
<li><p>Безопасность - фиксация действий пользователей, подозрительных событий. Логи используются для расследования инцидентов, предотвращения несанкционированного доступа.</p>
10
</li>
10
</li>
11
<li><p>Аудит - контроль изменений и операций. Позволяет восстановить картину действий: кто, когда и что изменил в системе.</p>
11
<li><p>Аудит - контроль изменений и операций. Позволяет восстановить картину действий: кто, когда и что изменил в системе.</p>
12
</li>
12
</li>
13
<li><p>Отладка - анализ поведения приложения в реальных условиях. Используется разработчиками для понимания логики работы программы и устранения багов.</p>
13
<li><p>Отладка - анализ поведения приложения в реальных условиях. Используется разработчиками для понимания логики работы программы и устранения багов.</p>
14
</li>
14
</li>
15
</ol><h3>Уровни логирования</h3>
15
</ol><h3>Уровни логирования</h3>
16
<p>Почти все системы используют стандартные<strong>уровни важности (severity levels)</strong>:</p>
16
<p>Почти все системы используют стандартные<strong>уровни важности (severity levels)</strong>:</p>
17
<ul><li><p>DEBUG - подробная отладочная информация.</p>
17
<ul><li><p>DEBUG - подробная отладочная информация.</p>
18
</li>
18
</li>
19
<li><p>INFO - штатные операции.</p>
19
<li><p>INFO - штатные операции.</p>
20
</li>
20
</li>
21
<li><p>WARNING - потенциальная проблема.</p>
21
<li><p>WARNING - потенциальная проблема.</p>
22
</li>
22
</li>
23
<li><p>ERROR - ошибка, но программа продолжает работать.</p>
23
<li><p>ERROR - ошибка, но программа продолжает работать.</p>
24
</li>
24
</li>
25
<li><p>CRITICAL / FATAL - сбой, приводящий к остановке.</p>
25
<li><p>CRITICAL / FATAL - сбой, приводящий к остановке.</p>
26
</li>
26
</li>
27
</ul><p>Пример настройки в Python:</p>
27
</ul><p>Пример настройки в Python:</p>
28
<h2>Где встречаются логи</h2>
28
<h2>Где встречаются логи</h2>
29
<p>Логи существуют<strong>во всех уровнях IT-инфраструктуры</strong>:</p>
29
<p>Логи существуют<strong>во всех уровнях IT-инфраструктуры</strong>:</p>
30
<h2>Формат и расшифровка</h2>
30
<h2>Формат и расшифровка</h2>
31
<h3>Common Log Format (CLF)</h3>
31
<h3>Common Log Format (CLF)</h3>
32
<p>Используется в веб-серверах (Apache, Nginx):</p>
32
<p>Используется в веб-серверах (Apache, Nginx):</p>
33
<p>Расшифровка:</p>
33
<p>Расшифровка:</p>
34
<h3>Syslog (RFC 3164 / RFC 5424)</h3>
34
<h3>Syslog (RFC 3164 / RFC 5424)</h3>
35
<p>Универсальный формат системных журналов в Linux, сетевых устройствах.</p>
35
<p>Универсальный формат системных журналов в Linux, сетевых устройствах.</p>
36
<p>Пример:</p>
36
<p>Пример:</p>
37
<p>Поля:</p>
37
<p>Поля:</p>
38
<ul><li><p><34> - приоритет (facility + severity);</p>
38
<ul><li><p><34> - приоритет (facility + severity);</p>
39
</li>
39
</li>
40
<li><p>1 - версия;</p>
40
<li><p>1 - версия;</p>
41
</li>
41
</li>
42
<li><p>server1 - имя хоста;</p>
42
<li><p>server1 - имя хоста;</p>
43
</li>
43
</li>
44
<li><p>app[1234] - приложение и PID;</p>
44
<li><p>app[1234] - приложение и PID;</p>
45
</li>
45
</li>
46
<li><p>далее - сообщение.</p>
46
<li><p>далее - сообщение.</p>
47
</li>
47
</li>
48
</ul><h3>JSON-логи</h3>
48
</ul><h3>JSON-логи</h3>
49
<p>Современные приложения часто пишут логи в<strong>JSON</strong>:</p>
49
<p>Современные приложения часто пишут логи в<strong>JSON</strong>:</p>
50
<p>Преимущества:</p>
50
<p>Преимущества:</p>
51
<ul><li><p>удобен для машинного анализа (парсинг, фильтрация);</p>
51
<ul><li><p>удобен для машинного анализа (парсинг, фильтрация);</p>
52
</li>
52
</li>
53
<li><p>легко интегрируется в системы мониторинга;</p>
53
<li><p>легко интегрируется в системы мониторинга;</p>
54
</li>
54
</li>
55
<li><p>можно добавлять произвольные поля.</p>
55
<li><p>можно добавлять произвольные поля.</p>
56
</li>
56
</li>
57
</ul><h2>Расширение .log и log.txt</h2>
57
</ul><h2>Расширение .log и log.txt</h2>
58
<p>Файл с расширением<strong>.log</strong>- это<strong>обычный текстовый файл</strong>, просто с соглашением об именовании. Его можно открыть любым редактором, как .txt.</p>
58
<p>Файл с расширением<strong>.log</strong>- это<strong>обычный текстовый файл</strong>, просто с соглашением об именовании. Его можно открыть любым редактором, как .txt.</p>
59
<p>Разница лишь в назначении:</p>
59
<p>Разница лишь в назначении:</p>
60
<ul><li><p>.txt - произвольный текст;</p>
60
<ul><li><p>.txt - произвольный текст;</p>
61
</li>
61
</li>
62
<li><p>.log - структурированный журнал, часто с метками времени, уровнем важности.</p>
62
<li><p>.log - структурированный журнал, часто с метками времени, уровнем важности.</p>
63
</li>
63
</li>
64
</ul><p>Пример: system.log, access.log, error.log, app.log, log.txt</p>
64
</ul><p>Пример: system.log, access.log, error.log, app.log, log.txt</p>
65
<h2>Как открыть и читать логи</h2>
65
<h2>Как открыть и читать логи</h2>
66
<h3>Редакторы</h3>
66
<h3>Редакторы</h3>
67
<ul><li><p><strong>Блокнот (Notepad)</strong>- самый простой способ.</p>
67
<ul><li><p><strong>Блокнот (Notepad)</strong>- самый простой способ.</p>
68
</li>
68
</li>
69
<li><p><strong>Notepad++</strong>,<strong>VS Code</strong>,<strong>Sublime Text</strong>- поддерживают подсветку, поиск, фильтры.</p>
69
<li><p><strong>Notepad++</strong>,<strong>VS Code</strong>,<strong>Sublime Text</strong>- поддерживают подсветку, поиск, фильтры.</p>
70
</li>
70
</li>
71
</ul><h3>Консоль (Linux/macOS)</h3>
71
</ul><h3>Консоль (Linux/macOS)</h3>
72
<ul><li><p>cat file.log - вывести содержимое;</p>
72
<ul><li><p>cat file.log - вывести содержимое;</p>
73
</li>
73
</li>
74
<li><p>less file.log - постраничный просмотр;</p>
74
<li><p>less file.log - постраничный просмотр;</p>
75
</li>
75
</li>
76
<li><p>tail -f file.log - следить за новыми записями в реальном времени;</p>
76
<li><p>tail -f file.log - следить за новыми записями в реальном времени;</p>
77
</li>
77
</li>
78
<li><p>grep "ERROR" file.log - поиск ошибок;</p>
78
<li><p>grep "ERROR" file.log - поиск ошибок;</p>
79
</li>
79
</li>
80
<li><p>awk '{print $4, $6}' file.log - выборка нужных колонок;</p>
80
<li><p>awk '{print $4, $6}' file.log - выборка нужных колонок;</p>
81
</li>
81
</li>
82
<li><p>zgrep - поиск по сжатым логам.</p>
82
<li><p>zgrep - поиск по сжатым логам.</p>
83
</li>
83
</li>
84
</ul><h3>PowerShell (Windows)</h3>
84
</ul><h3>PowerShell (Windows)</h3>
85
<h3>Просмотрщики и анализаторы</h3>
85
<h3>Просмотрщики и анализаторы</h3>
86
<ul><li><p><strong>Windows Event Viewer</strong>- системные логи Windows.</p>
86
<ul><li><p><strong>Windows Event Viewer</strong>- системные логи Windows.</p>
87
</li>
87
</li>
88
<li><p><strong>journalctl</strong>- просмотр systemd-журналов.</p>
88
<li><p><strong>journalctl</strong>- просмотр systemd-журналов.</p>
89
</li>
89
</li>
90
<li><p><strong>WebLog Expert</strong>,<strong>Splunk</strong>,<strong>Kibana</strong>,<strong>Graylog</strong>,<strong>Datadog</strong>- продвинутые инструменты анализа.</p>
90
<li><p><strong>WebLog Expert</strong>,<strong>Splunk</strong>,<strong>Kibana</strong>,<strong>Graylog</strong>,<strong>Datadog</strong>- продвинутые инструменты анализа.</p>
91
</li>
91
</li>
92
</ul><h2>Работа с логами на практике</h2>
92
</ul><h2>Работа с логами на практике</h2>
93
<p>Чтобы быстро найти нужное событие, важно уметь фильтровать и интерпретировать данные.</p>
93
<p>Чтобы быстро найти нужное событие, важно уметь фильтровать и интерпретировать данные.</p>
94
<p><strong>Основные приемы:</strong></p>
94
<p><strong>Основные приемы:</strong></p>
95
<ul><li><p>фильтрация по дате (grep "2025-10-28");</p>
95
<ul><li><p>фильтрация по дате (grep "2025-10-28");</p>
96
</li>
96
</li>
97
<li><p>по уровню (grep "ERROR");</p>
97
<li><p>по уровню (grep "ERROR");</p>
98
</li>
98
</li>
99
<li><p>по сервису (grep "nginx");</p>
99
<li><p>по сервису (grep "nginx");</p>
100
</li>
100
</li>
101
<li><p>объединение (grep -E "ERROR|CRITICAL");</p>
101
<li><p>объединение (grep -E "ERROR|CRITICAL");</p>
102
</li>
102
</li>
103
<li><p>анализ временных меток для поиска цепочек событий.</p>
103
<li><p>анализ временных меток для поиска цепочек событий.</p>
104
</li>
104
</li>
105
</ul><h3>Пошаговый чек-лист</h3>
105
</ul><h3>Пошаговый чек-лист</h3>
106
<ol><li><p>Определите, какой компонент вас интересует (сервер, приложение, сеть).</p>
106
<ol><li><p>Определите, какой компонент вас интересует (сервер, приложение, сеть).</p>
107
</li>
107
</li>
108
<li><p>Найдите соответствующий лог-файл.</p>
108
<li><p>Найдите соответствующий лог-файл.</p>
109
</li>
109
</li>
110
<li><p>Смотрите метки времени - когда произошел сбой.</p>
110
<li><p>Смотрите метки времени - когда произошел сбой.</p>
111
</li>
111
</li>
112
<li><p>Фильтруйте ошибки (ERROR, FATAL).</p>
112
<li><p>Фильтруйте ошибки (ERROR, FATAL).</p>
113
</li>
113
</li>
114
<li><p>Смотрите контекст: что было за 10-20 строк до ошибки.</p>
114
<li><p>Смотрите контекст: что было за 10-20 строк до ошибки.</p>
115
</li>
115
</li>
116
<li><p>Сопоставьте несколько логов - например, nginx + backend.</p>
116
<li><p>Сопоставьте несколько логов - например, nginx + backend.</p>
117
</li>
117
</li>
118
<li><p>Сделайте вывод и проверьте гипотезу.</p>
118
<li><p>Сделайте вывод и проверьте гипотезу.</p>
119
</li>
119
</li>
120
</ol><h2>Примеры логов</h2>
120
</ol><h2>Примеры логов</h2>
121
<h3>Доступа (Nginx)</h3>
121
<h3>Доступа (Nginx)</h3>
122
<h3>Ошибок</h3>
122
<h3>Ошибок</h3>
123
<h3>JSON-лог приложения</h3>
123
<h3>JSON-лог приложения</h3>
124
<h3>Syslog</h3>
124
<h3>Syslog</h3>
125
<h2>"Снять", "сохранить" и "отправить" лог</h2>
125
<h2>"Снять", "сохранить" и "отправить" лог</h2>
126
<h3>Снять лог</h3>
126
<h3>Снять лог</h3>
127
<p>Означает<strong>собрать журнал событий</strong>.</p>
127
<p>Означает<strong>собрать журнал событий</strong>.</p>
128
<ul><li><p>В Linux: journalctl > logs.txt</p>
128
<ul><li><p>В Linux: journalctl > logs.txt</p>
129
</li>
129
</li>
130
<li><p>В Windows: экспорт через Event Viewer.</p>
130
<li><p>В Windows: экспорт через Event Viewer.</p>
131
</li>
131
</li>
132
<li><p>В мобильных приложениях: “отправить отчёт об ошибке”.</p>
132
<li><p>В мобильных приложениях: “отправить отчёт об ошибке”.</p>
133
</li>
133
</li>
134
</ul><h3>Сохранить лог</h3>
134
</ul><h3>Сохранить лог</h3>
135
<p>Обычно речь о<strong>ротации и архивировании</strong>логов. Инструменты:</p>
135
<p>Обычно речь о<strong>ротации и архивировании</strong>логов. Инструменты:</p>
136
<ul><li><p>logrotate (Linux);</p>
136
<ul><li><p>logrotate (Linux);</p>
137
</li>
137
</li>
138
<li><p>системные политики хранения (retention policies);</p>
138
<li><p>системные политики хранения (retention policies);</p>
139
</li>
139
</li>
140
<li><p>архивирование по размеру или дате.</p>
140
<li><p>архивирование по размеру или дате.</p>
141
</li>
141
</li>
142
</ul><h3>Отправить лог</h3>
142
</ul><h3>Отправить лог</h3>
143
<p>Передача файла администратору или в службу поддержки. Важно:</p>
143
<p>Передача файла администратору или в службу поддержки. Важно:</p>
144
<ul><li><p>не отправлять<strong>персональные данные</strong>(PII), пароли, токены;</p>
144
<ul><li><p>не отправлять<strong>персональные данные</strong>(PII), пароли, токены;</p>
145
</li>
145
</li>
146
<li><p>при необходимости - маскировать (user_id: ****).</p>
146
<li><p>при необходимости - маскировать (user_id: ****).</p>
147
</li>
147
</li>
148
</ul><h2>Настройка и лучшие практики</h2>
148
</ul><h2>Настройка и лучшие практики</h2>
149
<ol><li><p><strong>Структурированное логирование</strong>- JSON или key=value формат.</p>
149
<ol><li><p><strong>Структурированное логирование</strong>- JSON или key=value формат.</p>
150
</li>
150
</li>
151
<li><p><strong>Метки, correlation IDs</strong>- связывают события разных систем.</p>
151
<li><p><strong>Метки, correlation IDs</strong>- связывают события разных систем.</p>
152
</li>
152
</li>
153
<li><p><strong>Семантика уровней</strong>- использовать уровни строго по назначению.</p>
153
<li><p><strong>Семантика уровней</strong>- использовать уровни строго по назначению.</p>
154
</li>
154
</li>
155
<li><p><strong>Ротация, retention</strong>- не храните бесконечно.</p>
155
<li><p><strong>Ротация, retention</strong>- не храните бесконечно.</p>
156
</li>
156
</li>
157
<li><p><strong>Безопасность доступа</strong>- ограничить права чтения.</p>
157
<li><p><strong>Безопасность доступа</strong>- ограничить права чтения.</p>
158
</li>
158
</li>
159
<li><p><strong>Маскирование чувствительных данных</strong>- чтобы избежать утечек.</p>
159
<li><p><strong>Маскирование чувствительных данных</strong>- чтобы избежать утечек.</p>
160
</li>
160
</li>
161
<li><p><strong>Единый формат времени (UTC)</strong>- облегчает анализ.</p>
161
<li><p><strong>Единый формат времени (UTC)</strong>- облегчает анализ.</p>
162
</li>
162
</li>
163
</ol><p>Пример настройки в logback.xml (Java):</p>
163
</ol><p>Пример настройки в logback.xml (Java):</p>
164
<h2>Инструменты и стек логирования</h2>
164
<h2>Инструменты и стек логирования</h2>
165
<p>Современные системы логирования включают три уровня:</p>
165
<p>Современные системы логирования включают три уровня:</p>
166
<p>Также популярны<strong>Sentry</strong>,<strong>New Relic</strong>,<strong>Datadog</strong>- для APM (Application Performance Monitoring) с логами и трассировками.</p>
166
<p>Также популярны<strong>Sentry</strong>,<strong>New Relic</strong>,<strong>Datadog</strong>- для APM (Application Performance Monitoring) с логами и трассировками.</p>
167
<h2>FAQ</h2>
167
<h2>FAQ</h2>
168
<ol><li><p><strong>Лог-файлы - что это простыми словами?</strong>Это текстовые файлы, где программы записывают всё, что с ними происходит.</p>
168
<ol><li><p><strong>Лог-файлы - что это простыми словами?</strong>Это текстовые файлы, где программы записывают всё, что с ними происходит.</p>
169
</li>
169
</li>
170
<li><p><strong>Что такое логи в программировании?</strong>Журналы работы программ: действия, запросы, ошибки, системные сообщения.</p>
170
<li><p><strong>Что такое логи в программировании?</strong>Журналы работы программ: действия, запросы, ошибки, системные сообщения.</p>
171
</li>
171
</li>
172
</ol><p><strong>3. Какой формат у логов?</strong>Часто - Common Log Format, syslog или JSON.</p>
172
</ol><p><strong>3. Какой формат у логов?</strong>Часто - Common Log Format, syslog или JSON.</p>
173
<p><strong>4. Как открыть файл .log?</strong>Любым текстовым редактором (Notepad, VS Code) или через консоль (cat, less, tail -f).</p>
173
<p><strong>4. Как открыть файл .log?</strong>Любым текстовым редактором (Notepad, VS Code) или через консоль (cat, less, tail -f).</p>
174
<p><strong>5. Что значит “отправить лог”?</strong>Передать файл с журналом событий специалисту для анализа проблемы.</p>
174
<p><strong>5. Что значит “отправить лог”?</strong>Передать файл с журналом событий специалисту для анализа проблемы.</p>
175
<p><strong>6. Что такое логирование ошибок?</strong>Фиксация исключений, сбоев программы в журнал.</p>
175
<p><strong>6. Что такое логирование ошибок?</strong>Фиксация исключений, сбоев программы в журнал.</p>
176
<p><strong>7. Что означает “юз лог”?</strong>Обычно имеется в виду “используй лог”, то есть проверь журнал событий для диагностики.</p>
176
<p><strong>7. Что означает “юз лог”?</strong>Обычно имеется в виду “используй лог”, то есть проверь журнал событий для диагностики.</p>
177
<h2>Глоссарий</h2>
177
<h2>Глоссарий</h2>
178
<ul><li><p><strong>Log</strong>- журнал событий.</p>
178
<ul><li><p><strong>Log</strong>- журнал событий.</p>
179
</li>
179
</li>
180
<li><p><strong>Логирование (logging)</strong>- процесс записи событий.</p>
180
<li><p><strong>Логирование (logging)</strong>- процесс записи событий.</p>
181
</li>
181
</li>
182
<li><p><strong>Log file</strong>- текстовый файл с записями.</p>
182
<li><p><strong>Log file</strong>- текстовый файл с записями.</p>
183
</li>
183
</li>
184
<li><p><strong>Syslog</strong>- стандарт обмена сообщениями журналов.</p>
184
<li><p><strong>Syslog</strong>- стандарт обмена сообщениями журналов.</p>
185
</li>
185
</li>
186
<li><p><strong>Log rotation</strong>- ротация логов по времени или размеру.</p>
186
<li><p><strong>Log rotation</strong>- ротация логов по времени или размеру.</p>
187
</li>
187
</li>
188
<li><p><strong>Severity level</strong>- уровень важности сообщения.</p>
188
<li><p><strong>Severity level</strong>- уровень важности сообщения.</p>
189
</li>
189
</li>
190
<li><p><strong>JSON</strong>- структурированный формат логов.</p>
190
<li><p><strong>JSON</strong>- структурированный формат логов.</p>
191
</li>
191
</li>
192
<li><p><strong>Correlation ID</strong>- уникальный идентификатор цепочки событий.</p>
192
<li><p><strong>Correlation ID</strong>- уникальный идентификатор цепочки событий.</p>
193
</li>
193
</li>
194
<li><p><strong>Aggregator / Collector</strong>- программа, собирающая логи.</p>
194
<li><p><strong>Aggregator / Collector</strong>- программа, собирающая логи.</p>
195
</li>
195
</li>
196
<li><p><strong>Retention policy</strong>- политика хранения логов.</p>
196
<li><p><strong>Retention policy</strong>- политика хранения логов.</p>
197
</li>
197
</li>
198
</ul><h2>Ссылки и источники</h2>
198
</ul><h2>Ссылки и источники</h2>
199
<ul><li><p><a>RFC 3164: The BSD Syslog Protocol</a></p>
199
<ul><li><p><a>RFC 3164: The BSD Syslog Protocol</a></p>
200
</li>
200
</li>
201
<li><p><a>RFC 5424: The Syslog Protocol</a></p>
201
<li><p><a>RFC 5424: The Syslog Protocol</a></p>
202
</li>
202
</li>
203
<li><p><a>Apache HTTP Server Log Formats</a></p>
203
<li><p><a>Apache HTTP Server Log Formats</a></p>
204
</li>
204
</li>
205
<li><p><a>Linux man: journalctl, logrotate</a></p>
205
<li><p><a>Linux man: journalctl, logrotate</a></p>
206
</li>
206
</li>
207
<li><p><a>Microsoft Docs: Event Viewer</a></p>
207
<li><p><a>Microsoft Docs: Event Viewer</a></p>
208
</li>
208
</li>
209
<li><p>Elastic Stack Documentation:<a>https://www.elastic.co/</a></p>
209
<li><p>Elastic Stack Documentation:<a>https://www.elastic.co/</a></p>
210
</li>
210
</li>
211
<li><p>Sentry, Grafana, Splunk official docs</p>
211
<li><p>Sentry, Grafana, Splunk official docs</p>
212
</li>
212
</li>
213
</ul>
213
</ul>