Как посмотреть ошибки системы в Windows Server 2019
При работе с различным программным обеспечением на Windows VDS может возникнуть задача посмотреть лог ошибок Windows. Также это может быть полезно для режим отладки, периодического контроля Windows, проверки что все работает должным образом.
Итак. Сначала мы должны войти на наш сервер, затем нажать на “Пуск”, а затем нажать на “Просмотр событий”.
После этого как открылось новое окно мы можем посмотреть логи системы – нажимаем на “Журналы Windows” и выбираем “Система”. Тут мы можем посмотреть все логи, которые связаны с самой системой.
Как сохранить логи системы
Если вы хотите посмотреть логи на другом ПК, вы можете их сохранить. Нажимаем на “Сохранить все события как”, выбираем где мы хотим сохранить лог и нажимаем на “Сохранить”.
Сохранить лог вы можете также в текстовом формате, если вам будет удобнее смотреть логи именно так.
Услуги
Журнал событий Windows Server — это инструмент, без которого администраторы не смогут контролировать состояние целой системы. В статье рассказали, как посмотреть журнал событий Windows Server и разобрали методы работы с логами сервера.
Журнал событий Windows Server — это инструмент, который помогает администраторам контролировать состояние системы, выявлять проблемы и диагностировать ошибки. Этот компонент является важной частью управления сервером, позволяя отслеживать действия пользователей, работу приложений и состояние оборудования.
По сути, это чёрный ящик системы, где фиксируются все действия, ошибки и изменения, происходящие на сервере. Однако в отличие от авиационных чёрных ящиков, журнал событий Windows Server предоставляет возможность не только ретроспективного анализа, но и проактивного мониторинга, что делает его важным инструментом для предотвращения сбоев.
Каждое событие в системе записывается в виде структурированных данных, включая такие параметры, как дата и время события, источник, уникальный идентификатор и уровень серьёзности (например, «Информация», «Предупреждение» или «Ошибка»). Это позволяет администраторам быстро находить важные события среди тысяч записей, которые могут накапливаться ежедневно в больших системах.
Ранее в блоге рассказали, как установить Windows Server.
Структура журнала событий
Windows Server организует данные в логах по категориям, что делает их использование интуитивно понятным. Вот ключевые категории и их значение:
- Системные события. Эта категория фиксирует все события, связанные с работой самого Windows Server, включая запуск и остановку служб, обновления системы, ошибки оборудования или драйверов. Например, если служба DNS перестала работать, системный журнал покажет причину сбоя.
- Приложения. Этот раздел хранит события, связанные с установленным на сервере ПО. Логи из этой категории помогают понять, почему приложение, например, SQL Server или «1С», работает некорректно.
- Безопасность. Категория «Безопасность» содержит информацию о попытках входа в систему, изменении учётных записей или прав доступа. Это важнейший раздел для отслеживания несанкционированного доступа и построения аудита безопасности.
Эти три категории — основа, но в Windows Server 2019 появились дополнительные инструменты, такие как каналы «Перенаправленные события», которые нужны для агрегирования событий с нескольких серверов для централизованного анализа.
Как журнал событий помогает в работе
Представьте себе ситуацию: сервер внезапно перестал отвечать на сетевые запросы. Вместо того чтобы слепо пытаться перезагрузить систему или искать проблему вручную, администратор может сразу открыть журнал событий и посмотреть, не было ли предупреждений в разделе «Система». Записи могут указать, например, на сбой сетевого драйвера или перегрузку аппаратного оборудования.
Другой пример — анализ неудачных попыток входа в систему. Если кто-то неоднократно вводит неправильный пароль для учётной записи администратора, события в разделе «Безопасность» покажут IP-адрес источника и время каждой попытки. Эти данные помогут быстро идентифицировать возможную атаку.
Для крупных организаций журнал событий часто становится частью политики соответствия стандартам, таким как ISO 27001 или GDPR. Все записи можно экспортировать в syslog-системы для централизованного хранения и анализа.
В ИТ-инфраструктуре отказоустойчивость и безопасность являются приоритетами, и журнал событий Windows Server создаёт фундамент для их достижения. Он не только позволяет восстанавливать систему после сбоя, но и помогает предупреждать проблемы, выявляя аномалии в работе служб или аппаратного обеспечения.
Для мониторинга и анализа логов на высоконагруженных серверах важно иметь стабильное оборудование. Например, провайдер AdminVPS предлагает аренду выделенных серверов, которые обеспечивают высокую производительность и надёжность для управления системой.
Возможности журнала событий
Windows Server можно интегрировать с системой уведомлений и автоматизации. Например, используя PowerShell, администратор может настроить автоматическое создание предупреждений, если в журнале появляется определённое событие. Допустим, если сервер регистрирует высокую загрузку процессора, система может отправить уведомление на электронную почту или создать задачу в системе мониторинга.
Каналы событий (Event Channels) — это специализированные журналы для отдельных служб или приложений, например, событий, связанных только с Hyper-V или Windows Firewall. Работа с этими каналами даёт возможность получать точечную информацию, избегая перегруженности основного журнала.
Начиная с Windows Server 2019, журнал событий получил поддержку более гибких методов фильтрации и экспорта. Например, администратор может экспортировать только события, связанные с определённым периодом или источником, и использовать их для углублённого анализа. Вместе с этим поддержка формата XML позволяет интегрировать данные из Windows Server с различными BI-инструментами для визуализации.
Услуга аренды VPS/VDS с опцией «Всё включено» у хостера AdminVPS избавит вас от необходимости администрирования — её на себя возьмут наши специалисты.
Инструкция по работе с журналом событий Windows Server
Для просмотра журнала событий в Windows Server используется встроенное приложение «Просмотр событий». Оно доступно во всех версиях сервера, включая Windows Server 2019.
Шаг 1. Откройте меню «Пуск» на сервере и найдите приложение «Просмотр событий». Вы также можете запустить его с помощью команды eventvwr через окно «Выполнить» (сочетание клавиш Win+R).
В окне «Просмотр событий» вы увидите иерархическое меню, где логи сервера Windows разделены на основные категории: «Приложение», «Безопасность», «Установка», «Система» и «Перенаправленные события».
Шаг 2. Для анализа выберите интересующий вас раздел и откройте его. Здесь вы найдёте список событий с такими параметрами, как дата и время, уровень серьёзности (ошибка, предупреждение или информация), источник и идентификатор события.
Если вы работаете с сервером Windows Server 2019, вы можете воспользоваться дополнительными функциями фильтрации, чтобы быстрее найти интересующую информацию. Например, для поиска конкретной ошибки можно использовать параметры «Источник» или «Идентификатор события». Это значительно упрощает работу с большими объёмами данных.
Логи сервера Windows и их использование
Логи сервера Windows — это не просто набор текстовых записей, а ценный источник информации для мониторинга и анализа. Они отражают запуск и остановку служб, проблемы с оборудованием, сетевые подключения и другие события, которые помогают выявлять неполадки и предотвращать сбои.
Например, если вы хотите проверить, почему сервер Windows работает нестабильно, достаточно посмотреть события Windows Server за определённый промежуток времени. Ошибки или предупреждения, записанные в логи, могут указать на проблемы с драйверами, недоступность файлов или некорректные настройки безопасности.
Для продвинутых пользователей доступен экспорт логов в формат .evtx или .txt для последующего анализа. Это позволяет загружать файлы в специализированные программы, такие как syslog-серверы, которые помогают автоматизировать сбор и обработку данных.
Автоматизация сбора данных с помощью syslog
Если вы администрируете крупную сеть серверов или несколько экземпляров Windows Server, использование syslog поможет значительно упростить управление логами. Хотя Windows Server по умолчанию не использует протокол syslog, сторонние утилиты, такие как NxLog, позволяют настроить интеграцию.
Протокол syslog необходим для централизованного сбора данных с разных серверов и устройств, что особенно полезно в распределённых системах. Вы можете настроить отправку событий из журнала Windows Server на syslog-сервер, где данные будут обработаны и визуализированы. Это ускоряет диагностику и позволяет оперативно реагировать на проблемы.
Типичные ошибки и как их исправить
Работа с журналом событий Windows Server — это не анализ состояния системы, но и процесс, который может сопровождаться своими проблемами. Знание типичных ошибок и способов их исправления помогает администраторам поддерживать бесперебойную работу серверной инфраструктуры и минимизировать время простоя. Рассмотрим наиболее распространённые проблемы, которые возникают при использовании журнала событий.
Одной из наиболее частых проблем является переполнение журнала событий. В крупных системах с активным сетевым взаимодействием количество событий может быстро нарастать, что приводит к исчерпанию доступного пространства для хранения логов. Когда это происходит, система перестаёт записывать новые события, что создаёт риск упустить важную информацию, например, о сбое службы или попытке взлома. Чтобы избежать этого, администратор должен заранее настроить автоматическое удаление старых записей. В Windows Server это можно сделать через настройки журнала событий, выбрав опцию «Перезаписывать события». Альтернативным решением является увеличение максимального размера файла журнала, что позволит хранить больше записей перед началом перезаписи.
Ещё одной распространённой проблемой является отсутствие прав доступа к просмотру определённых логов. Это может произойти, если пользователь, пытающийся открыть журнал событий, не имеет соответствующих прав. Например, системный администратор может столкнуться с ситуацией, когда учётная запись не имеет доступа к журналу безопасности, где хранятся данные о попытках входа или изменении прав пользователей. Для исправления этой ситуации необходимо убедиться, что учётная запись пользователя включена в группу администраторов сервера. Если же доступ требуется предоставить отдельному пользователю, можно настроить делегирование прав через групповые политики (Group Policy), разрешив доступ к нужным разделам журнала.
Кроме этих типичных случаев встречаются ошибки, связанные с повреждением файлов журнала событий. Это может произойти из-за сбоев в работе дисковой подсистемы или некорректного завершения работы сервера. При повреждении файлов логов система может перестать записывать новые события или выдавать ошибки при попытке открыть журнал. Для восстановления работы в таком случае рекомендуется очистить повреждённый журнал через консоль «Просмотр событий» или команду PowerShell Clear-EventLog. Однако перед этим важно создать резервную копию файла журнала, если это возможно, так как он может содержать ценные данные для анализа.
Также следует учитывать возможность пропуска важных событий из-за неправильной настройки фильтров. Например, администратор может случайно исключить из отображения определённые источники событий или уровни серьёзности. Это приводит к тому, что важные предупреждения остаются незамеченными. Чтобы исправить ситуацию, необходимо пересмотреть настройки фильтрации в «Просмотре событий» или использовать PowerShell для экспорта всех записей в отдельный файл и их последующего анализа.
Ещё одна ошибка — это проблемы с интеграцией журнала событий Windows Server с внешними системами мониторинга, такими как syslog. Если события из Windows Server не поступают на syslog-сервер, причиной может быть неправильная конфигурация отправки данных или проблемы с сетевым подключением. В таком случае важно проверить настройки программы-коннектора, например, NxLog или SolarWinds, и убедиться, что порты, используемые для передачи данных, открыты на брандмауэре.
Заключение
Журнал событий Windows Server — это незаменимый инструмент для диагностики и мониторинга, который позволяет поддерживать стабильную работу сервера.
Встроенное приложение «Просмотр событий» обеспечивает удобный доступ к логам сервера Windows, включая системные ошибки, предупреждения и информационные сообщения. Для более сложных систем стоит рассмотреть использование syslog, который позволяет автоматизировать сбор данных и управлять логами в масштабах всей сети.
Читайте в блоге:
- Автоматическая загрузка Windows Server: способы настройки
- Установка Windows Server: комплексный подход к сетевой инфраструктуре и защите данных
- Настройка DFS на Windows Server
- Устанавливаем бесплатный сертификат Let’s Encrypt на IIS с Windows Server 2016/2012 R2
- Популярные способы защиты VPS/VDS на Windows Server
Как посмотреть ошибки системы в Windows Server 2019
Когда вы работаете с различным программным обеспечением на Windows VDS, может возникнуть необходимость просмотра логов ошибок Windows. Это также полезно для отладки, периодического контроля работы Windows и проверки корректности функционирования системы.
Cперва войдите на ваш сервер. После этого откройте меню «Пуск» и выберите «Просмотр событий».
Когда откроется новое окно, перейдите к логам системы, нажав на «Журналы Windows» и выбрав «Система». Здесь вы найдете все записи журнала, связанные с работой операционной системы.
Как сохранить логи системы
Если вам нужно просмотреть журналы на другом компьютере, вы можете их сохранить. Просто нажмите «Сохранить все события как», выберите место сохранения журнала и нажмите «Сохранить».
Вы также можете сохранить журнал в текстовом формате, если вам будет удобнее просматривать его в таком виде.
Наши услуги
Юридическим лицам
Договор и полный комплект бухгалтерских документов по почте.
How to View System Errors in Windows Server 2019
When working with various software on Windows VDS, it may be necessary to look at the Windows error log. It can also be useful for debugging mode, periodically monitoring Windows, checking that everything is working properly.
First we have to login to our server, then click on “Start” and then click on “Event Viewer”.
After that, as a new window has opened, we can see the system logs – click on “Windows Logs” and select “System”. Here we can see all the logs that are associated with the system itself.
How to save system logs
If you want to view the logs on another PC, you can save them. Click on “Save all events as”, select where we want to save the log and click on “Save”.
You can also save the log in text format, if it is more convenient for you to view the logs that way.
Журнал событий Windows (Event Log) — это важный инструмент, который позволяет администратору отслеживать ошибки, предупреждения и другие информационные сообщения, которые регистрируются операционной системой, ее компонентами и различными программами. Для просмотра журнала событий Windows можно использовать графическую MMC оснастку Event Viewer (
eventvwr.msc
). В некоторых случаях для поиска информации в журналах событий и их анализа гораздо удобнее использовать PowerShell. В этой статье мы покажем, как получать информацию из журналов событий Windows с помощью командлета Get-WinEvent.
Содержание:
- Получение логов Windows с помощью Get-WinEvent
- Get-WinEvent: быстрый поиск в событиях Event Viewer с помощью FilterHashtable
- Расширенный фильтры событий Get-WinEvent с помощью FilterXml
- Получить логи Event Viewer с удаленных компьютеров
На данный момент в 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 -ListLog *
Например, чтобы вывести события 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 {($_.LevelDisplayName -eq "Error" -or $_.LevelDisplayName -eq "Warning") -and ($_.TimeCreated -ge $StartDate )}
Чтобы вывести только определенные поля событий, можно использовать Select-Object или Format-Table:
Get-WinEvent -LogName System | Format-Table Machinename, TimeCreated, Id, UserID
Можно выполнить дополнительные преобразования с полученными данными. Например, в этом примере мы сразу преобразуем имя пользователя в SID:
Get-WinEvent -filterhash @{Logname = 'system'} |
Select-Object @{Name="Computername";Expression = {$_.machinename}},@{Name="UserName";Expression = {$_.UserId.translate([System.Security.Principal.NTAccount]).value}}, TimeCreated
Get-WinEvent: быстрый поиск в событиях Event Viewer с помощью FilterHashtable
Рассмотренный выше способ выбора определенных событий из журналов Event Viewer с помощью Select-Object прост для понимая, но выполняется крайне медленно. Это особенно заметно при выборке большого количества событий. В большинстве случаев для выборки событий нужно использовать фильтрацию на стороне службы Event Viewer с помощью параметра FilterHashtable.
Попробуем сформировать список ошибок и предупреждений за 30 дней с помощью Where-Object и FilterHashtable. Сравнима скорость выполнения этих двух команд PowerShell с помощью Measure-Command:
$StartDate = (Get-Date).AddDays(-30)
Проверим скорость выполнения команды с Where-Object:
(Measure-Command {Get-WinEvent Application,System | Where-Object {($_.LevelDisplayName -eq "Error" -or $_.LevelDisplayName -eq "Warning") -and ($_.TimeCreated -ge $StartDate )}}).TotalMilliseconds
Аналогичная команда с FilterHashtable:
(Measure-Command {Get-WinEvent -FilterHashtable @{LogName = 'System','Application'; Level =2,3; StartTime=$StartDate }})..TotalMilliseconds
В данном примере видно, что команда выборки событий через FilterHashtable выполняется в 30 раз быстрее, чем если бы обычный Where-Object (
2.5
сек vs
76
секунд).
Если вам нужно найти события по EventID, используйте следующую команду с FilterHashtable:
Get-WinEvent -FilterHashtable @{logname='System';id=1074}|ft TimeCreated,Id,Message
В параметре 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 @{LogName='System'; StartTime=(get-date).AddDays(-7); EndTime=(get-date).AddHours(-1); ID=1234}
Если нужно найти определенный текст в описании события, можно использовать такую команду:
Get-WinEvent -FilterHashtable @{logname='System'}|Where {$_.Message -like "*USB*"}
Расширенный фильтры событий Get-WinEvent с помощью FilterXml
Фильтры Get-WinEvent с параметром FilterHashtable являются несколько ограниченными. Если вам нужно использовать для выборки событий сложные запросы с множеством условий, нужно использовать параметр FilterXml, который позволяет сформировать запрос на выбор событий в Event Viewer с помощью XML запроса. Как и FilterHashtable, фильтры FilterXml выполняется на стороне сервера, поэтому результат вы получите довольно быстро.
Например, аналогичный запрос для получения последних ошибок из журнала System за последние 30 дней может выглядеть так:
$xmlQuery = @'
<QueryList>
<Query Id="0" Path="System">
<Select Path="System">*[System[(Level=2 or Level=3) and TimeCreated[timediff(@SystemTime) <= 2592000000]]]</Select>
</Query>
</QueryList>
'@
Get-WinEvent -FilterXML $xmlQuery
Для построения кода сложных XML запросов можно использовать графическую консоль Event Viewer:
- Запустите
eventvwr.msc
; - Найдите журнал для которого вы хотите создать и выберите Filter Current Log;
- Выберите необходимые параметры запроса в форме. В этом примере я хочу найти события с определенными EventID за последние 7 дней от определенного пользователя;
- Чтобы получить код XML запроса для параметра FilterXML, перейдите на вкладку XML и скопируйте полученный код (CTRL+A, CTRL+C);
- Если нужно, вы можете вручную отредактировать данный запрос.
Для экспорта списка событий в 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 @{LogName="System"; StartTime=(get-date).AddHours(-24)} | 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'; ID= 1234
} | 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 {$_.Computer + " " +$_.Properties[1].value + ' ' + $_.TimeCreated}
}