Поиск наиболее распространенных ошибок в журналах событий с помощью Powershell.

Поиск наиболее распространенных ошибок в журналах событий с помощью Powershell.

У меня есть логи событий для одного из наших серверов локально в формате .evtx. Я могу загрузить файл журнала в PS с помощью команды:

Get-WinEvent -Path D:\Desktop\serverlogs.evtx

Что я хотел бы сделать, так это в поле Message group events, где текст совпадает на определенный процент (скажем, 80% того же самого). Поскольку у нас есть трассировки стека для ошибок в деталях, которые будут такими же, но мы также регистрируем IP клиента, URL, к которому был получен доступ, которые, вероятно, будут другими.

Я хочу сгруппировать их, чтобы можно было выделить наиболее распространенные ошибки и расставить приоритеты в их исправлении, а поскольку в файле журнала содержится более 25 000 ошибок, я бы предпочел не делать этого вручную.

Думаю, я смогу разобраться, как сделать большую часть этого, но не уверен, как сделать часть «группировать поля, которые в основном одинаковы». Есть ли в PowerShell что-то подобное?

решение1

Во-первых, вам нужно отфильтровать как можно больше, поскольку на следующем шаге используется Where-Objectкомандлет, который может быть медленным для такого рода вещей (к сожалению, похоже, что ни один из аргументов для Get-WinEventподдержки подстановочных знаков для свойства Message события не поддерживается).

Например, получите только события уровня «ошибка»:

$events = Get-WinEvent -FilterHashTable @{ Path="D:\Desktop\serverlogs.evtx";Level=2 }

Затем вы можете использовать -matchили -likeдля дальнейшей фильтрации по тем, которые имеют похожий текст:

$events = $events | ?{ $_.Message -match "your similar error here" }

Теперь, когда вы сузили список, вы можете передать результаты командлету Group-Object, указав, что вы хотите сгруппировать их по свойству «Сообщение» события:

$events | Group-Object -Property Message

решение2

Хотя вы спрашивали, как это сделать в Powershell, я бы посоветовал вам также взглянуть наАнализатор журналов MicrosoftЭто позволит вам писать SQL-подобные запросы к вашим журналам (и целый ряд других полезных трюков). Нет причин, по которым вы не могли бы управлять этим также из Powershell.

Связанный контент