Как посмотреть логи windows server 2012
Перейти к содержимому

Как посмотреть логи windows server 2012

  • автор:

Как посмотреть логи windows

Как посмотреть логи windows

Настройка серверов windows и linux

Всем привет, тема стать как посмотреть логи windows. Что такое логи думаю знают все, но если вдруг вы новичок, то логи это системные события происходящие в операционной системе как Windows так и Linux, которые помогают отследить, что, где и когда происходило и кто это сделал. Любой системный администратор обязан уметь читать логи windows.

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

Как открыть в просмотр событий

Зайти в оснастку Просмотр событий можно очень просто, подойдет для любой версии Windows. Нажимаете волшебные кнопки

Win+R и вводите eventvwr.msc

Откроется у вас окно просмотр событий windows в котором вам нужно развернуть пункт Журналы Windows. Пробежимся по каждому из журналов.

Журнал Приложение, содержит записи связанные с программами на вашем компьютере. В журнал пишется когда программа была запущена, если запускалась с ошибкоу, то тут это тоже будет отражено.

логи windows-01

Журнал аудит, нужен для понимания кто и когда что сделал. Например вошел в систему или вышел, попытался получить доступ. Все аудиты успеха или отказа пишутся сюда.

логи windows-02

Пункт Установка, в него записывает Windows логи о том что и когда устанавливалось Например программы или обновления.

логи windows-03

логи windows-04

логи windows-05

Фильтрация в просмотре событий

Предположим у вас в журнале Безопасность более миллиона событий, наверняка вы сразу зададите вопрос есть ли фильтрация, так как просматривать все из них это мазохизм. В просмотре событий это предусмотрели, логи windows можно удобно отсеять оставив только нужное. Справа в области Действия есть кнопка Фильтр текущего журнала.

Фильтрация в просмотре событий

Вас попросят указать уровень событий:

  • Критическое
  • Ошибка
  • Предупреждение
  • Сведения
  • Подробности

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

Фильтрация в просмотре событий-2

Так что как видите разобрать логи windows очень просто, ищем, находим, решаем. Так же может быть полезным быстрая очистка логов windows:

  • Как очистить просмотр событий с помощью PowerShell
  • Как почистить все журналы windows с помощью скрипта

Посмотреть логи windows PowerShell

Get-EventLog -Logname ‘System’

В итоге вы получите список логов журнала Система

Тоже самое можно делать и для других журналов например Приложения

Get-EventLog -Logname ‘Application’

небольшой список абревиатур

  • Код события — EventID
  • Компьютер — MachineName
  • Порядковый номер события — Data, Index
  • Категория задач — Category
  • Код категории — CategoryNumber
  • Уровень — EntryType
  • Сообщение события — Message
  • Источник — Source
  • Дата генерации события — ReplacementString, InstanceID, TimeGenerated
  • Дата записи события — TimeWritten
  • Пользователь — UserName
  • Сайт — Site
  • Подразделение — Conteiner

Например, для того чтобы в командной оболочке вывести события только со столбцами «Уровень», «Дата записи события», «Источник», «Код события», «Категория» и «Сообщение события» для журнала «Система», выполним команду:

Get-EventLog –LogName ‘System’ | Format-Table EntryType, TimeWritten, Source, EventID, Category, Message

вывести события

Если нужно вывести более подробно, то заменим Format-Table на Format-List

Get-EventLog –LogName ‘System’ | Format-List EntryType, TimeWritten, Source, EventID, Category, Message

Как видите формат уже более читабельный.

Format-List

Так же можно пофильтровать журналы например показать последние 20 сообщений

Get-EventLog –Logname ‘System’ –Newest 20

показать последние 20 сообщений

Или выдать список сообщение позднее 1 ноября 2014

Get-EventLog –LogName ‘System’ –After ‘1 ноября 2014’

Дополнительные продукты

Так же вы можете автоматизировать сбор событий, через такие инструменты как:

  • Комплекс мониторинга Zabbix
  • Через пересылку событий средствами Windows на сервер коллектор
  • Через комплекс аудита Netwrix
  • Если у вас есть SCOM, то он может агрегировать любые логи Windows платформ
  • Любые DLP системы

Удаленный просмотр логов

Не так давно в появившейся операционной системе Windows Server 2019, появился компонент удаленного администрирования Windows Admin Center. Он позволяет проводить дистанционное управление компьютером или сервером, подробнее он нем я уже рассказывал. Тут я хочу показать, что поставив его себе на рабочую станцию вы можете подключаться из браузера к другим компьютерам и легко просматривать их журналы событий, тем самым изучая логи Windows. В моем примере будет сервер SVT2019S01, находим его в списке доступных и подключаемся (Напомню мы так производили удаленную настройку сети в Windows).

Удаленное подключение через Windows Admin Center

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

Просмотр логов Windows через Windows Admin Center

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

Фильтрация логов в Windows Admin Center

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

Настройка фильтрации логов Windows через Windows Admin Center

Вот пример фильтрации по событию 19.

Удаленный просмотр логов Windows

Очень удобно экспортировать полностью журнал в формат evxt, который потом легко открыть через журнал событий. Так, что Windows Admin Center, это мощное средство по просмотру логов.

Второй способ удаленного просмотров логов Windows, это использование оснастки управление компьютером или все той же «Просмотр событий». Чтобы посмотреть логи Windows на другом компьютере или сервере, в оснастке щелкните по верхнему пункту правым кликом и выберите из контекстного меню «Подключиться к другому компьютеру«.

Подключиться к другому компьютеру

Указываем имя другого компьютера, в моем примере это будет SVT2019S01

Указание имени удаленного компьютера для просмотра логов

Если все хорошо и нет блокировок со стороны брандмауэра или антивируса, то вы попадете в удаленный просмотр событий .если будут блокировки, то получите сообщение по типу, что не пролетает трафик COM+.

Ошибка удаленного просмотра логов Windows

Так же хочу отметить, что есть целые системы агрегации логов, такие как Zabbix или SCOM, но это уже другой уровень задач. На этом у меня все, с вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Популярные Похожие записи:
  • Get-ClusterLog и поиск ошибок в Failover ClustersGet-ClusterLog и поиск ошибок в Failover Clusters
  • Настройка сервера сбора логов на Windows Server
  • Где найти логи IIS
  • Ошибка the request failed or the services did not respond in a timely fashionОшибка the request failed or the services did not respond in a timely fashion
  • Directum ошибка поддержки безопасных каналов
  • Ошибка someone is currently logged into the APC

Как посмотреть логи shutdown и restart в Windows Server

Средство просмотра событий Windows обрабатывается основной службой журнала событий. Средство просмотра событий регистрирует историю запуска и завершения работы сервера. Так же она отслеживает действия каждого пользователя во время работы устройства. Записывает ошибки, и другие сообщения и предупреждения которые возникают на Windows Server.

В этой статье мы узнаем, как проверить журналы выключения/перезагрузки на VPS серверах Windows 2012, 2016 и 2019.

Рассмотрим некоторые наиболее распространенные коды связанные со временем запуска и завершения работы сервера.

41: показывает, что ваш сервер перезагрузился, но не выключился полностью.
6005: показывает, что служба журнала событий была запущена.
1074: это событие показывает, когда приложение принудительно выключает или перезагружает ваш VPS сервер. Благодаря этому можно узнать, когда вы, или кто-то другой перезапустил или выключил сервер из меню «Пуск» или через CTRL+ALT+DEL.
6008: это событие появляется если ваш компьютер был выключен, или ушел в перезагрузку, через синий экран смерти.
6006: это событие показывает когда сервер корректно завершил свою работу.

Как просмотреть данные события?

Нажмите Win + R и введите eventvwr

Как посмотреть логи shutdown и restart в Windows Server - 1

В левой части панели откройте «Журналы Windows => Система»

Как посмотреть логи shutdown и restart в Windows Server - 2

В колонке Event ID мы увидим список событий, произошедших во время работы Windows. Журнал событий можно сортировать по идентификатору события.

Для того что бы отсортировать нужные намо события, с правой стороны, выберем «Фильтр текущего журнала»

Как посмотреть логи shutdown и restart в Windows Server - 3

Теперь введите нужные нам события, через запятую, 41, 1074, 6006, 6008, 6006 и нажмите Ок.

Как посмотреть логи shutdown и restart в Windows Server - 4

Теперь мы можем наблюдать журнал событий с завершением работы нашего сервера VPS.

Так же мы можем просмотреть журнал событий безотказной работы сервера. Этому соответствует идентификатор 6013.

Как посмотреть логи shutdown и restart в Windows Server - 5

Просмотр журнала выключения и перезапуска сервера с помощью PowerShell

Если нам нужно быстро просмотреть журналы выключения/перезагрузки сервера, можно воспользоваться коммандой Get-EventLog в оболочке PowerShell.

Что бы отфильтровать последнюю 1000 записей в журнале, и отобразить только те события которые нам нужны, (41, 1074, 6006, 6008, 6006) выполним эту команду в PowerShell:

Get-EventLog System -Newest 1000 | ` Where EventId -in 41,1074,6006,6008 | ` Format-Table TimeGenerated,EventId,UserName,Message -AutoSize -wrap

Теперь вы можете самостоятельно проверить по какой причине был перезагружен/выключен ваш севрер.

Причина для SRV-события журнала системных событий: 2012 . При передаче или получении данных сервер обнаружил сетевую ошибку

В этой статье рассматривается системный журнал событий srv с идентификатором события 2012.

Применимо к: Windows Server 2008 R2 с пакетом обновления 1 (SP1)
Исходный номер базы знаний: 2885205

Аннотация

Рассмотрим следующий сценарий.

  • У вас есть файловый сервер на основе Windows Server 2012
  • Клиентские компьютеры под управлением Windows Server 2003, Windows Server 2003 R2 или Microsoft Windows XP Professional обращаются к файловму серверу по протоколу SMB версии 1
  • или любой другой компьютер на основе протокола SMB версии 1 со сторонней реализацией CIFS обращается к файловому серверу

В этом сценарии в журнале системных событий отображается несколько событий с исходным идентификатором Srv 2012:

Имя журнала: System
Источник: srv
Дата:
Идентификатор события: 2012
Категория задачи: Нет
Уровень: предупреждение
Ключевые слова: классический
Пользователь: Н/Д
Компьютер: FILEsrv.fqdn
Описание:
При передаче или получении данных сервер столкнулся с сетевой ошибкой. Ожидаются случайные ошибки, но большое их количество указывает на возможную ошибку в конфигурации сети. Код состояния ошибки содержится в возвращаемых данных (отформатированных в виде слов) и может указывать на проблему.

\Device\LanmanServer
0000040001002C0000000000DC0700800000840100C00000000000000000000000000000000003440600000000000034060000000000000000000000000000000340000000000000000000000000034000000000000000000340000000034000000000034000000000000340000000000000000034000000000000000000340000000000000000000<>

В словах
0000: 00040000 002C0001 0000000 800007DC
0008: 000000000 C0000184 00000000 000000000
0010: 00000000 00000000 00000634

Объяснение этих слов, зарегистрированных в этом событии:
800007DC = EVENT_SRV_NETWORK_ERROR,
C0000184 = STATUS_INVALID_DEVICE_STATE, устройство не находится в допустимом состоянии для выполнения этого запроса. 00000634 шестнадцатеричном формате = 1588 десятичных разрядов, это указывает на строку 1588 в коде Windows Server 2012 для клиентов нижнего уровня.
Это число зависит от операционной системы, пакета обновления и, возможно, от уровня исправления SRV.SYS.

Часто задаваемые вопросы:
———————————-
Является ли такой Srv 2012 индикатором серьезной ошибки?
Нет, это событие типа WARNING, обычно его можно игнорировать. Ниже приведены некоторые типичные сценарии, в которых ожидается такое событие.
Администраторы должны просто игнорировать предупреждение.

Как должно выглядеть обычное взаимодействие по протоколу SMB?
В соответствии со спецификацией протокола CIFS ([MS-CIFS]: протокол COMMON INTERNET File System (CIFS)
СОГЛАСОВАНИЕ ДИАЛЕКТА — НАСТРОЙКА СЕАНСА — ДРЕВОВИДНОЕ ПОДКЛЮЧЕНИЕ — ДРЕВОВИДНОЕ ОТКЛЮЧЕНИЕ — ВЫХОД

После обновления файлового сервера до Windows Server 2012 мы чаще сталкиваемся с этим событием, почему?

  • у вас есть среда со многими клиентами SMB1 нижнего уровня, такими как Windows XP или Windows Server 2003.
    Неудачные попытки входа (ответ session setup с состоянием ошибки), за которыми следует TCP FIN, приводят к событию 2012.
    Эти клиенты, как правило, завершают свой последний сеанс SMB командой LOGOFF и TREE DISCONNEcT SMB, а затем корректно завершают сеанс транспорта с помощью TCP FIN.
    Эта последовательность команд SMB не полностью соответствует CIFS, см. выше, что приводит к событию 2012.
  • у вас есть среда с некоторыми клиентами SMB1 на основе SAMBA,UNIX/MAC.
    Эти клиенты часто завершают сеансы SMB, не соответствующие CIFS (пропуская команду LOGOFF), что приводит к событию 2012.
  • Клиенты нижнего уровня с перенаправленными папками на файловом сервере на основе Windows Server 2012 отключаются от сети без надлежащего завершения работы.
    В такой ситуации файловый сервер отправляет пакеты TCP KeepAlive неактивным клиентам и сбрасывает транспортное подключение TCP, если от клиента больше нет ответа.
  • Клиенты SMB1 сталкиваются с некоторыми сетевыми проблемами (файловый сервер не отвечает на невыполненные команды SMB в течение одной минуты (SessTimeout = 60 с), поэтому клиент не отправляет logOFF, а завершает сеанс TCP с помощью RESET, а затем устанавливает новый сеанс TCP/SMB с новым виртуальным каналом (VcNumber: 0).
    Файловый сервер не знал о проблеме с сетью клиентов и выполняет очистку предыдущего сеанса клиента, как только обнаруживает тот же IP-адрес клиента SMB1 с параметром SESSION SETUP (VcNumber: 0). (это может произойти в сценарии NAT для разных клиентов, что приводит к тому же IP-адресу в подсети файлового сервера)

Дополнительная информация

Для получения дополнительных сведений об этой теме щелкните следующий номер статьи, чтобы просмотреть статью в Microsoft Web:

Просмотр и анализ событий (логов) Windows с помощью PowerShell

date

17.11.2022

user

itpro

directory

PowerShell, Windows 10, Windows Server 2019

comments

комментариев 7

Журнал событий Windows (Event Log) — это важный инструмент, который позволяет администратору отслеживать ошибки, предупреждения и другие информационные сообщения, которые регистрируются операционной системой, ее компонентами и различными программами. Для просмотра журнала событий Windows можно использовать графическую MMC оснастку Event Viewer ( eventvwr.msc ). В некоторых случаях для поиска информации в журналах событий и их анализа гораздо удобнее использовать PowerShell. В этой статье мы покажем, как получать информацию из журналов событий Windows с помощью командлета Get-WinEvent.

На данный момент в Windows доступны два командлета для доступа к событиям в Event Log: Get-EventLog и Get-WinEvent. В подавляющем большинстве случаев рекомендуем использовать именно Get-WinEvent, т.к. он более производителен, особенно в сценариях обработки большого количества событий с удаленных компьютеров. Командлет Get-EventLog является устаревшим и использовался для получения логов в более ранних версиях Windows. Кроме того, Get-EventLog не поддерживается в современных версиях PowerShell Core 7.x.

Получение логов Windows с помощью Get-WinEvent

Для использования команды Get-WinEvent нужно запустить PowerShell с правами администратора (при запуске Get-WinEvent от имени пользователя вы не сможете получить доступ к некоторым логам, например, к Security).

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

Get-WinEvent -LogName Application -MaxEvents 20

Чаще всего вам нужно будет получать информацию из журналов System, Application, Security или Setup. Но вы можете указать и другие журналы. Полный список журналов событий в Windows можно получить с помощью команды:

Get-WinEvent командлет PowerShell

Например, чтобы вывести события RDP подключений к компьютеру, нужно указать лог Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational:

Get-WinEvent -LogName Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational

Или получить логи SSH подключений к Windows из журнала OpenSSH/Operational:

Get-WinEvent -LogName OpenSSH/Operational

Можно выбрать события сразу из нескольких журналов. Например, чтобы получить информацию о ошибках и предупреждениях из журналов System и Application за последние 24 часа (сутки), можно использовать такой код:

$StartDate = (Get-Date) — (New-TimeSpan -Day 1)
Get-WinEvent Application,System | Where-Object

Get-WinEvent командлет для поиска событий в журнале Windows

Чтобы вывести только определенные поля событий, можно использовать Select-Object или Format-Table:

Get-WinEvent вывести определенные поля событий

Get-WinEvent -LogName System | Format-Table Machinename, TimeCreated, Id, UserID

Можно выполнить дополнительные преобразования с полученными данными. Например, в этом примере мы сразу преобразуем имя пользователя в SID:

Get-WinEvent: быстрый поиск в событиях Event Viewer с помощью FilterHashtable

Рассмотренный выше способ выбора определенных событий из журналов Event Viewer с помощью Select-Object прост для понимая, но выполняется крайне медленно. Это особенно заметно при выборке большого количества событий. В большинстве случаев для выборки событий нужно использовать фильтрацию на стороне службы Event Viewer с помощью параметра FilterHashtable.

Попробуем сформировать список ошибок и предупреждений за 30 дней с помощью Where-Object и FilterHashtable. Сравнима скорость выполнения этих двух команд PowerShell с помощью Measure-Command:

Проверим скорость выполнения команды с Where-Object:

Аналогичная команда с FilterHashtable:

В данном примере видно, что команда выборки событий через FilterHashtable выполняется в 30 раз быстрее, чем если бы обычный Where-Object ( 2.5 сек vs 76 секунд).

Get-WinEvent FilterHashtable выполняется намного быстрее

Если вам нужно найти события по EventID, используйте следующую команду с FilterHashtable:

Get-WinEvent -FilterHashtable @|ft TimeCreated,Id,Message

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

В параметре FilterHashtable можно использовать фильтры по следующим атрибутам событий:

  • LogName
  • ProviderName
  • Path
  • Keywords (для поиска успешных событий нужно использовать значение 9007199254740992 или для неуспешных попыток 4503599627370496)
  • ID
  • Level (1=FATAL, 2=ERROR, 3=Warning, 4=Information, 5=DEBUG, 6=TRACE, 0=Info)
  • StartTime
  • EndTime
  • UserID (SID пользователя)
  • Data

Пример поиска события за определенный промежуток времени:

Если нужно найти определенный текст в описании события, можно использовать такую команду:

Get-WinEvent -FilterHashtable @|Where

Get-WinEvent поиск текста в событиях

Расширенный фильтры событий Get-WinEvent с помощью FilterXml

Фильтры Get-WinEvent с параметром FilterHashtable являются несколько ограниченными. Если вам нужно использовать для выборки событий сложные запросы с множеством условий, нужно использовать параметр FilterXml, который позволяет сформировать запрос на выбор событий в Event Viewer с помощью XML запроса. Как и FilterHashtable, фильтры FilterXml выполняется на стороне сервера, поэтому результат вы получите довольно быстро.

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

Get-WinEvent -FilterXML

Для построения кода сложных XML запросов можно использовать графическую консоль Event Viewer:

  1. Запустите eventvwr.msc ;
  2. Найдите журнал для которого вы хотите создать и выберите Filter Current Log; Фильтр журнала событий Event Viewer
  3. Выберите необходимые параметры запроса в форме. В этом примере я хочу найти события с определенными EventID за последние 7 дней от определенного пользователя; формируем фильтр в Event Viewer
  4. Чтобы получить код XML запроса для параметра FilterXML, перейдите на вкладку XML и скопируйте полученный код (CTRL+A, CTRL+C); XML запрос в Event Viewer
  5. Если нужно, вы можете вручную отредактировать данный запрос.

Для экспорта списка событий в CSV файл нужно использовать командлет Export-CSV:

$Events= Get-WinEvent -FilterXML $xmlQuery
$events| Export-CSV «C:\ps\FilterSYSEvents.csv» -NoTypeInformation -Encoding UTF8

Получить логи Event Viewer с удаленных компьютеров

Для получения события с удаленного компьютер достаточно указать его имя в параметре -ComputerName:

$computer=’msk-dc01′
Get-WinEvent -ComputerName $computer -FilterHashtable @ | select Message,Id,TimeCreated

Можно опросить сразу несколько серверов/компьютеров и поискать на них определенные события. Список серверов можно получить из текстового файла:

$servers = Get-Content -Path C:\ps\servers.txt

Или из Active Directory:

$servers = (Get-ADComputer -Filter ‘operatingsystem -like «*Windows server*» -and enabled -eq «true»‘).Name
foreach ($server in $servers) Get-WinEvent -ComputerName $server -MaxEvents 5 -FilterHashtable @LogName = ‘System’; >> | Select-Object -Property ID, MachineName
>

Здесь есть другой пример для поиска событий блокировки учетной записи пользователя на всех контроллерах домена:

$Username = ‘a.ivanov’
Get-ADDomainController -fi * | select -exp hostname | % $GweParams = @‘Computername’ = $_
‘LogName’ = ‘Security’
‘FilterXPath’ = «*[System[EventID=4740] and EventData[Data[@Name=’TargetUserName’]=’$Username’]]»
>
$Events = Get-WinEvent @GweParams
$Events | foreach
>

Еще несколько примеров использования Get-WinEvent для поиска событий:

  • Удаления файла или папки на файловом сервере
  • Истории запуска программы в Windows
  • Поиска событий входа пользователя в Windows
  • Задачки Active Directory: кто создал пользователя, кто сбросил пароль пользователя или добавил его в группу безопасности AD

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *