Что такое файлы журналов windows

Обновлено: 02.07.2024

Журналы событий это специальные файлы в которые система и приложения записывают значимые для вашего компьютера события, такие как события входа пользователей в систему или ошибки, возникающие при работе приложений. Когда возникают подобные типы событий, система Windows создает записи в журналах событий. В детальных описаниях событий пользователи могут найти информацию, полезную для устранения неисправностей, обнаружения причин проблем с системой, приложениями, оборудованием компьютера.

Журналы событий Windows это не текстовые файлы (не как UNIX syslog) и их нельзя просматривать и исследовать простыми текстовыми редакторами. Журналы событий Windows это бинарные файлы специального формата, похожие на файлы баз данных, состоящие из специальных записей - событий Windows.

Microsoft Windows запускает специальную службу (сервис) Журнал событий Windows для обслуживания задач, связанных с журналами событий - управления журналами событий, записью новых событий в журналы, обслуживанием запросов на чтение данных из журналов и т.п. Служба Журнал событий Windows предоставляет специальное API, которое позволяет приложениям работать с журналами событий.

Как просматривать журналы событий?

Просматривать и исследовать события Windows можно стандартным приложением Проосмотр событий или специальными программами, поставляемыми независимыми разработчиками. Мы рекомендуем использовать нашу программу Event Log Explorer, которая дает существенно больше возможностей, чем стандартное приложение Просмотр событий.

Что такое служба "Журнал событий Windows"?

Служба (сервис) "Журнал событий Windows" - это специальная служба (сервис) для управления событиями и журналами событий. Она поддерживает выполнение операций записи новых событий, чтения событий приложениями, подписки на событий, резервного копирования и архивирования журналов событий и т.п. По умолчанию, после установки системы Windows служба "Журнал событий Windows" включена и запускается автоматически. Не стоит останавливать или выключать эту службу. Остановка службы "Журнал событий Windows" может ухудшить стабильность и безопасность системы.

Что такое файлы журналов событий Windows?

Журналы событий Windows хранятся в специальных файлах с системном каталоге Windows. Служба (сервис) "Журнал событий Windows" позволяет пользователям сохранять журналы и делать резервные копии журналов в файлы. Windows NT, 2000 и XP/Server 2003 хранят журналы событий в файлах EVT формата. Windows Vista/Server 2008 и более новые системы хранят журналы событий в EVTX формате. Анализ файлов журналов событий и их резервных копия является основой расследования различных инцидентов.

Рабочие версии файлов журналов событий Windows обычно заблокированы системой, точнее службой "Журнал событий Windows" и их невозможно непосредственно открыть на живой, работающей системе. Но если компьютер будет загружен другой системой с другого диска, то рабочие файлы журналов системы можно открыть или скопировать. Также их можно скопировать или открыть, если подключить системный диск к другому компьютеру. По умолчанию, файлы журналов событий Windows Vista/Server 2008 хранятся в каталоге
"C:\Windows\System32\winevt\Logs\"
Открыть файл журнала событий в приложении Просмотр событий Windows можно выполнив следующие шаги:

Запустите приложение Просмотр событий.

Нажмите "Открыть сохраненный журнал" в панели "Действия", расположенной в правой части окна.

Найдите и выберите нужный вам файл в списке файлов, нажмите кнопку "Открыть" и его содержимое отобразиться в области просмотра событий в приложении.

Наша программа Event Log Explorer также работает с файлами журналов событий и работает лучше, чем "Просмотр событий". Например, в Event Log Explorer вы можете прочитать данные даже из поврежденных файлов журналов событий.

Что такое журнал событий Приложения?

Журнал событий Приложений содержит события, сгенерированные приложениями, а не системой. Например, сервер базы данных может записывать ошибки, возникающие при его работе в журнал приложений. Разработчики программ сами решают какие события имеет смысл протоколировать в журнале событий Приложения. Например, Microsoft SQL Server протоколирует подробную информцию о важных аварийных ситуациях возникающих при работе SQL-сервера, таких как "недостаточно памяти", "сбой при резервном копировании базы данных" и т.д. При этом события, сгенерированные разными приложениями, попадают в единый журнал приложений. Приложения идентифицируются как разные "источники" в базовом свойстве событий. Поэтому несложно выделить события конкретного приложения. Также стоит учитывать что ID события (код события) тоже определяется приложением, сгенерировавшим событие и коды могут дублироваться для разных источников. Таким образом события определенного типа идентифицируются и источником и кодом, а не только кодом, как для других журналов, например для журнала Безопасность.

Что такое журнал событий Система?

Журнал событий Система содержит события, сгенерированные системными компонентами. Например, отказы драйверов или других системных компонентов при запуске системы записываются в системный журнал событий. Типы и коды событий системных компонентов предопределены разработчиками операционной системы Windows. Аналогично журналу приложений, системный журнал содержит события из разных источников (системных компонентов) и следует учитывать что конкретные события идентифицируются не только кодом, но источником. Журнал событий Система - важный источник информации при поиске причин отказов и проблем системными администраторами и техническими специалистами.

Что такое журнал событий Безопасность?

Журнал событий Безопасность содержит события, влияющие на безопасность системы. Это попытки (иудачные и неудачные) входа в аккаунты системы, использование ресурсов (файлов, реестра, устройств), управление учетными записями, изменения прав и привилегий аккаунтов, запуск и остановка процессов (программ) и т.д. Администратор может сконфигурировать какие категории событий необходимо регистрировать. Например, по умолчанию система сконфигурирована регистрировать события управления учетными записями, события входа в систему, а аудит доступа к объектам не включен. Стоит быть осторожным при настройке аудита доступа к файлам, то это может привести к появлению большого количества событий, что в свою очередь может негативно отразиться на общей производительности системы и быстрому переполнению журнала безопасности.
Подробнее про аудит событий безопасности можно прочесть тут.
Запись в журнал безопасности производится только системными компонентам, коды событий однозначно идентифицируют события. Журнал событий Безопасность является важным источником информации при расследовании инцидентов нарушения безопасности и его анализ актуален для администраторов безопасности, специалистов по информационной безопасности и специалистов по цифровой криминалистической экспертизе.

Это тема уровня 400 (расширенный).
Полный список тем в этой статье см. в разделе Устранение ошибок при обновлении до Windows 10.

Во время каждого этапа процесса обновления создаются несколько файлов журнала. Эти файлы журнала необходимы для устранения неполадок при обновлении. По умолчанию папки, содержащие эти файлы журнала, скрыты на компьютере, где выполняется обновление. Для просмотра файлов журнала включите отображение скрытых элементов в проводнике Windows или используйте средство, чтобы автоматически собирать эти журналы. Самый полезный журнал — setupact.log. Файлы журнала находятся в разных папках в зависимости от этапа установки Windows. Как мы уже знаем, вы можете определить этап из кода расширения.

Кроме того, отчеты об ошибках Windows разделе в этом документе для справки по поиску кодов ошибок и файлов журналов.

В следующей таблице описаны некоторые файлы журнала и способы их использования для устранения неполадок.

Структура записи журнала

Запись setupact.log или setuperr.log (файлы расположены в C:\Windows) содержит следующие элементы:

См. перечисленные ниже примеры.

Анализ файлов журнала

Следующие инструкции предназначены для специалистов по ИТ. См. также раздел Коды ошибок обновления данного руководства, чтобы ознакомиться с кодами результатов и кодами расширения.

Анализ файлов журнала установки Windows

Например, предположим, что код ошибки — 0x8007042B — 0x2000D. Если выполнить поиск «8007042B», мы обнаружим следующее содержимое из файла setuperr.log:

Некоторые строки в тексте ниже сокращены для удобства. Дата и время в начале каждой строки (например, 2016-10-05 15:27:08) сокращены до минут и секунд, а имя файла сертификата, которое задано как длинная текстовая строка, сокращено до «CN».


Содержимое файла setuperr.log :

В первой строке указано, что произошла ошибка 0x00000570 с файлом C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18 [CN] (как показано ниже):

0x00000570 — это код ошибки Win32, соответствующий ошибке "ERROR_FILE_CORRUPT. Файл или папка повреждены. Чтение невозможно".

Поэтому программе установки Windows не удалось перенести поврежденный файл C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\ [CN]. Этот файл — локальный сертификат системы, и его можно удалить. После поиска в файле setupact.log дополнительных сведений найдена фраза «Приложение оболочки запросило отмену» в расположении с такой же меткой времени, как у строк в файле setuperr.log. Это подтверждает наши подозрение, что этот файл — причина сбоя обновления:


Содержимое файла setupact.log :

Этот анализ показывает, что ошибку обновления Windows можно устранить, удалив файл C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\ [CN]. Примечание. В этом примере полное имя файла — C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\be8228fb2d3cb6c6b0ccd9ad51b320b4_a43d512c-69f2-42de-aef9-7a88fabdaa3f.

Как открывать, редактировать и конвертировать файлы LOG

Например, антивирусное программное обеспечение может записывать информацию в файл LOG для описания результатов последнего сканирования, например, файлов и папок, которые были отсканированы или пропущены, и какие файлы были помечены как содержащие вредоносный код.

Программа резервного копирования файлов может также использовать файл LOG, который можно открыть позже, чтобы просмотреть предыдущее задание резервного копирования, прочитать все обнаруженные ошибки или посмотреть, куда были скопированы файлы.

Как открыть файл журнала

Как вы можете видеть в примерах ниже, данные, содержащиеся в этих файлах, представляют собой простой текст, что означает, что они являются обычными текстовыми файлами. Вы можете прочитать файл журнала в любом текстовом редакторе, например, в Windows Notepad.

Вы также можете открыть файл LOG в своем веб-браузере. Просто перетащите его прямо в окно браузера или используйте сочетание клавиш Ctrl-O , чтобы открыть диалоговое окно для поиска файла LOG.

Как конвертировать файл журнала

Если вы хотите, чтобы ваш файл LOG был в другом формате, например, CSV, PDF или в формате Excel, например XLSX, лучше всего скопировать данные в программу, которая поддерживает эти форматы файлов, а затем сохранить их как новый файл. ,

Например, вы можете открыть файл LOG с помощью текстового редактора, а затем скопировать весь текст, вставить его в программу для работы с электронными таблицами, например Microsoft Excel или OpenOffice Calc, а затем сохранить файл в CSV, XLSX и т. Д.

Преобразование LOG в JSON может быть выполнено после сохранения его в формате CSV. Как только вы это сделаете, используйте этот онлайн конвертер CSV в JSON.

Как выглядит файл журнала

Этот файл LOG, созданный EaseUS Todo Backup, выглядит так, как выглядит большинство файлов LOG:

Некоторые из них могут быть не очень хорошо структурированы, и их может быть сложно прочитать, например, этот файл LOG, созданный инструментом видео конвертера:

Другие могут даже казаться совершенно бессмысленными, так как нет никаких временных отметок. В подобных случаях журнал записывается в файл с расширением .LOG, но не соответствует стандарту, которому соответствует большинство файлов LOG:

Дополнительная информация о файлах журналов

Вы можете создать свой собственный файл LOG в Windows, используя встроенное приложение «Блокнот», и ему даже не нужно иметь расширение .LOG. Просто введите .LOG в самой первой строке и сохраните его как обычный файл TXT.

Вы можете видеть, как этот простой пример начинает выглядеть как гораздо более полные файлы LOG, показанные выше:

С помощью командной строки вы также можете автоматически создать файл LOG через командную строку при установке файла MSI.

Все еще не можете открыть файл?

Если вы получили ошибку разрешения или вам сообщили, что вы не можете просмотреть файл LOG, скорее всего, он либо все еще используется программой и не будет открываться до тех пор, пока не будет выпущен, либо что он был создан временно и уже был удален с время, когда вы пытались открыть его.

Вместо этого возможно, что файл LOG хранится в папке, к которой у вас нет прав.

На этом этапе, если ваш файл все еще не открывается так, как вы думаете, дважды проверьте, правильно ли вы читаете расширение файла. Он должен читать «.LOG», но не .LOG1 или .LOG2.

Последние два расширения файла связаны с реестром Windows как файлы журнала кустов и, как таковые, хранятся в двоичном формате и не читаются текстовым редактором. Они должны находиться в папке % systemroot% \ System32 \ config \ .


Пора поговорить про удобную работу с логами, тем более что в Windows есть масса неочевидных инструментов для этого. Например, Log Parser, который порой просто незаменим.

В статье не будет про серьезные вещи вроде Splunk и ELK (Elasticsearch + Logstash + Kibana). Сфокусируемся на простом и бесплатном.

До появления PowerShell можно было использовать такие утилиты cmd как find и findstr. Они вполне подходят для простой автоматизации. Например, когда мне понадобилось отлавливать ошибки в обмене 1С 7.7 я использовал в скриптах обмена простую команду:

Она позволяла получить в файле fail.txt все ошибки обмена. Но если было нужно что-то большее, вроде получения информации о предшествующей ошибке, то приходилось создавать монструозные скрипты с циклами for или использовать сторонние утилиты. По счастью, с появлением PowerShell эти проблемы ушли в прошлое.

Основным инструментом для работы с текстовыми журналами является командлет Get-Content, предназначенный для отображения содержимого текстового файла. Например, для вывода журнала сервиса WSUS в консоль можно использовать команду:

Для вывода последних строк журнала существует параметр Tail, который в паре с параметром Wait позволит смотреть за журналом в режиме онлайн. Посмотрим, как идет обновление системы командой:



Смотрим за ходом обновления Windows.

Если же нам нужно отловить в журналах определенные события, то поможет командлет Select-String, который позволяет отобразить только строки, подходящие под маску поиска. Посмотрим на последние блокировки Windows Firewall:



Смотрим, кто пытается пролезть на наш дедик.

При необходимости посмотреть в журнале строки перед и после нужной, можно использовать параметр Context. Например, для вывода трех строк после и трех строк перед ошибкой можно использовать команду:

Оба полезных командлета можно объединить. Например, для вывода строк с 45 по 75 из netlogon.log поможет команда:

Журналы системы ведутся в формате .evtx, и для работы с ними существуют отдельные командлеты. Для работы с классическими журналами («Приложение», «Система», и т.д.) используется Get-Eventlog. Этот командлет удобен, но не позволяет работать с остальными журналами приложений и служб. Для работы с любыми журналами, включая классические, существует более универсальный вариант ― Get-WinEvent. Остановимся на нем подробнее.

Для получения списка доступных системных журналов можно выполнить следующую команду:



Вывод доступных журналов и информации о них.

Для просмотра какого-то конкретного журнала нужно лишь добавить его имя. Для примера получим последние 20 записей из журнала System командой:



Последние записи в журнале System.

Для получения определенных событий удобнее всего использовать хэш-таблицы. Подробнее о работе с хэш-таблицами в PowerShell можно прочитать в материале Technet about_Hash_Tables.

Для примера получим все события из журнала System с кодом события 1 и 6013.

В случае если надо получить события определенного типа ― предупреждения или ошибки, ― нужно использовать фильтр по важности (Level). Возможны следующие значения:

  • 0 ― всегда записывать;
  • 1 ― критический;
  • 2 ― ошибка;
  • 3 ― предупреждение;
  • 4 ― информация;
  • 5 ― подробный (Verbose).

Собрать хэш-таблицу с несколькими значениями важности одной командой так просто не получится. Если мы хотим получить ошибки и предупреждения из системного журнала, можно воспользоваться дополнительной фильтрацией при помощи Where-Object:



Ошибки и предупреждения журнала System.

Аналогичным образом можно собирать таблицу, фильтруя непосредственно по тексту события и по времени.

Подробнее почитать про работу обоих командлетов для работы с системными журналами можно в документации PowerShell:

PowerShell ― механизм удобный и гибкий, но требует знания синтаксиса и для сложных условий и обработки большого количества файлов потребует написания полноценных скриптов. Но есть вариант обойтись всего-лишь SQL-запросами при помощи замечательного Log Parser.

О возможностях Log Parser уже рассказывалось в материале «LogParser — привычный взгляд на непривычные вещи», поэтому я начну с конкретных примеров.

Для начала разберемся с текстовыми файлами ― например, получим список подключений по RDP, заблокированных нашим фаерволом. Для получения такой информации вполне подойдет следующий SQL-запрос:

Посмотрим на результат:



Смотрим журнал Windows Firewall.

Разумеется, с полученной таблицей можно делать все что угодно ― сортировать, группировать. Насколько хватит фантазии и знания SQL.

Log Parser также прекрасно работает с множеством других источников. Например, посмотрим откуда пользователи подключались к нашему серверу по RDP.

Работать будем с журналом TerminalServices-LocalSessionManager\Operational.

Не со всеми журналами Log Parser работает просто так ― к некоторым он не может получить доступ. В нашем случае просто скопируем журнал из %SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx в %temp%\test.evtx.

Данные будем получать таким запросом:



Смотрим, кто и когда подключался к нашему серверу терминалов.

Особенно удобно использовать Log Parser для работы с большим количеством файлов журналов ― например, в IIS или Exchange. Благодаря возможностям SQL можно получать самую разную аналитическую информацию, вплоть до статистики версий IOS и Android, которые подключаются к вашему серверу.

В качестве примера посмотрим статистику количества писем по дням таким запросом:

Если в системе установлены Office Web Components, загрузить которые можно в Центре загрузки Microsoft, то на выходе можно получить красивую диаграмму.



Выполняем запрос и открываем получившуюся картинку…



Любуемся результатом.

Следует отметить, что после установки Log Parser в системе регистрируется COM-компонент MSUtil.LogQuery. Он позволяет делать запросы к движку утилиты не только через вызов LogParser.exe, но и при помощи любого другого привычного языка. В качестве примера приведу простой скрипт PowerShell, который выведет 20 наиболее объемных файлов на диске С.

Благодаря этой возможности для облегчения работы существует несколько утилит, представляющих из себя графическую оболочку для Log Parser. Платные рассматривать не буду, а вот бесплатную Log Parser Studio покажу.



Интерфейс Log Parser Studio.

Основной особенностью здесь является библиотека, которая позволяет держать все запросы в одном месте, без россыпи по папкам. Также сходу представлено множество готовых примеров, которые помогут разобраться с запросами.

Вторая особенность ― возможность экспорта запроса в скрипт PowerShell.

В качестве примера посмотрим, как будет работать выборка ящиков, отправляющих больше всего писем:


Выборка наиболее активных ящиков.

При этом можно выбрать куда больше типов журналов. Например, в «чистом» Log Parser существуют ограничения по типам входных данных, и отдельного типа для Exchange нет ― нужно самостоятельно вводить описания полей и пропуск заголовков. В Log Parser Studio нужные форматы уже готовы к использованию.

Помимо Log Parser, с логами можно работать и при помощи возможностей MS Excel, которые упоминались в материале «Excel вместо PowerShell». Но максимального удобства можно достичь, подготавливая первичный материал при помощи Log Parser с последующей обработкой его через Power Query в Excel.

Приходилось ли вам использовать какие-либо инструменты для перелопачивания логов? Поделитесь в комментариях.

Читайте также: