Просмотр логов в реальном времени windows

Описываются различные способы замены команды tail на платформе Windows.

Утилита tail идеально подходит для просмотра в реальном времени (с опцией -f) живых логов сетевого оборудования, серверов, а также логов отлаживаемых программ. В среде Linux и FreeBSD с этой утилитой проблем нет, она всегда под рукой, но как быть на платформе Windows?

Microsoft Windows [Version 6.3.9600]
(c) Корпорация Майкрософт (Microsoft Corporation), 2013. Все права защищены.
C:UsersAsus>tail
"tail" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Здесь опишу несколько альтернативных вариантов замены tail, которые можно установить и использовать на Windows.

[MinGW]

Это набор утилит Unix, перенесенных в среду Windows [1]. Установка вопросов не возникает, все происходит как обычно. После установки в переменной %Path% автоматом прописывается путь до бинарных файлов утилит, среди которых находится и tail.exe, так что теперь Вы можете пользоваться этой утилитой без проблем.

tail -f \путь_до_файлаlogfile.txt

Можно также скачать и установить утилиту tail отдельно [2]. Поместите файлы *.dll и tail.exe архива в папку system32 (cd %SystemRoot%system32), и Вы также сможете запускать tail из любого каталога.

C:temp>tail —help
Использование: tail [OPTION]… [FILE]…
Печатает последние 10 строк каждого файла FILE в стандартный вывод. Когда указано больше одного FILE, выводу каждого файла предшествует заголовок из имени файла. Если FILE не указан, или когда FILE указан как -, то для чтения используется стандартный ввод.

Можно использовать как длинные опции командной строки, так и короткие.

-c, —bytes=K выводятся последние K байт; альтернативно используйте -c +K для вывода байт, начиная с K-того байта в каждом файле.
-f, —follow[={name|descriptor}] вывод добавляемых данных по мере того, как файл растет (отслеживание содержимого файла в реальном времени). Опции -f, —follow, и —follow=descriptor эквивалентны друг другу. -F работает так же, как и —follow=name —retry.
-n, —lines=K выводит последние K строк, вместо того чтобы вывести последние 10 строк. Можете также использовать -n +K для вывода строк, начиная со строки  K.
—max-unchanged-stats=N с опцией —follow=name заново открывает FILE, который не изменялся после N (по умолчанию 5) итераций — чтобы посмотреть, был ли он удален или переименован (это обычно используется для ротации лог-файлов). С появлением inotify эта опция стала мало полезна и используется редко.
—pid=PID с опцией -f прервать вывод после того, как завершится процесс с идентификатором ID, т. е. тут указан PID завершения.
-q, —quiet, —silent никогда не выводить заголовки, в которых указаны имена файлов.
—retry пытаться открыть файл даже если он стал недоступен; полезно, когда используется опция следования за файлом, например —follow=name.
-s, —sleep-interval=N с опцией -f указывает засыпать примерно на N секунд (по умолчанию 1.0) между отдельными итерациями. Вместе с inotify и —pid=P процесс P проверяется как минимум каждые N секунд.
-v, —verbose всегда выводить заголовки, в которых указано имя файла.
—help отобразить подсказку по командной строке и выйти.
—version отобразить информацию о версии и выйти.

Если первый символ K (количество байт или строк) является символом +, выведутся строки начиная с K-той от начала каждого файла, иначе будут выводиться последние K элементов файла. K может иметь суффикс множителя *, например:
b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024, и так далее для T, P, E, Z, Y.

С опцией —follow (-f), tail по умолчанию следует за дескриптором файла. Это подразумевает, что даже если файл, отслеживаемый в настоящий момент tail, был переименован, то tail все равно продолжит его отслеживание его конца. Это поведение по умолчанию не желательно, когда Вы на самом деле вместо дескриптора хотите отслеживать файл под своим настоящим именем (например, это может быть при ротации лога). Тогда используйте опцию —follow=name. Это приведет к тому, что tail будет отслеживать именованный файл по его полному пути, отражающему переименование, удаление и создание файла.

Сообщайте об ошибках на почту bug-coreutils@gnu.org
Домашняя страница основных утилит GNU: < http://www.gnu.org/software/coreutils/>;
Информация помощи по GNU software: < http://www.gnu.org/gethelp/>;
Сообщайте от ошибках перевода на < http://translationproject.org/team/>;
Для просмотра полной документации запустите команду: info coreutils ‘tail invocation’

C:temp>

[Tail для Win32]

Tail for Win32 — специальная версия UNIX-утилиты tail для Windows. Она может использоваться по своему обычному назначению, для мониторинга изменения содержимого файлов. Утилита распространяется в скомпилированном виде и с открытым исходным кодом, и снабжена архитектурой плагинов, которая позволяет выдавать оповещения при появлении в отслеживаемых файлов определенных ключевых слов. В настоящий момент доступен плагин MAPI, и ведутся работы по созданию версии SMTP. Утилита имеет следующие возможности:

• Можно сразу отслеживать содержимое нескольких файлов в реальном времени.
• Можно детектировать появление ключевых слов и подсвечивать их.
• Можно отправлять оповещение через SMTP или MAPI о появлении ключевых слов.
• Архитектура плагинов позволит Вам написать специализированные обработчики отслеживаемых логов.
• Можно обрабатывать файлы любого размера на всех типах носителей (расположенных как локально, так и в сети).

Подробнее информацию см. на страничке проекта [3].

[Другие варианты замены tail на платформах Windows и Unix]

Powershell — наверное самый мощный инструмент на платформе Windows, однако его часто почему-то оставляют без внимания. Хотя использование Powershell для целей tail не дает никаких дополнительных функций, но это хороший способ быстрого использования командной строки в целях слежения за состоянием файла. Используйте следующий простой синтаксис, чтобы отобразить хвост файла, и отслеживать его состояние в реальном времени:

Get-Content myTestLog.log –Wait

Вы можете также отфильтровать лог, если укажете справа в командной строке регулярное выражение:

Get-Content myTestLog.log -wait | where { $_ -match “WARNING” }

Особенности использования Powershell для целей tail:

• Быстрое и простое использование.
• Практически нулевые затраты времени на обучение.
• На новых системах Windows не требуется делать никаких инсталляций (PowerShell доступен на всех версиях Windows начиная с Windows XP SP2 и SP3).
• Медленно работает с большими файлами.
• Имеет только базовый функционал, однако есть сторонние расширения. Например, с ними можно отслеживать одновременно несколько файлов.

По умолчанию система PowerShell не установлена на Windows XP, однако есть возможность её установить на Windows XP SP3 вместе с пакетом обновления KB968930 Windows Management Framework Core [5]. Также можно установить PowerShell вместе с KB968930 на операционных системах Windows Server 2003 (x86 и x64), Windows Server 2008 (x86 и x64), Windows Vista (x86 и x64).

Утилита Stackify предоставляет все, что нужно для поддержки Ваших приложений. Встроен простой, основанный на WEB доступ к просмотру файлов, а также их окончаний (tail).

Stackify-vim plugin

Особенности Stackify:

• Можно просматривать файлы лога удаленно, подключаясь к WEB-серверу через сеть, прямо в WEB-браузере.
• Можно осуществлять поиск по файлам лога.
• Поддерживаются системы Windows и Linux.
• Распространяется на условиях Free trial, малая месячная оплата.

Этот плагин был разработан Martin Krischik. Наверное, это самый лучший плагин для Vim, который можно получить для функционала tail. Особенности:

• Вы можете прямо в своем любимом редакторе Vim отслеживать файлы лога, не покидая редактор.
• С использованием закладок можно отслеживать несколько файлов одновременно.
• Окно предпросмотра «Preview» обновляется в соответствии с использованием Vim.
• Перед установкой прочтите информацию об открытых багах (open issues) на Google Code.

Чтобы отслеживать хвост файла в Emacs, нажмите M-x (нажатые вместе кнопки Alt и x), и введите tail-file. Затем введите имя файла, который должен отслеживаться. В результате будет порожден процесс tail -f.

Утилита MultiTail была разработана Folkert van Heusden. Возможно, что это самая полная реализация функционала tail на платформах UNIX. Особенности:

• Все еще находится в активной разработке (на момент написания статьи последняя версия была выпущена 4 недели назад).
• Можно использовать маски wildcard для имен файлов. Это позволяет отслеживать только что появляющиеся файлы лога.
• Для фильтрации можно использовать регулярные выражения.
• Исходный код доступен для закачки из публичного репозитория SVN.
• Поддерживаются все основные платформы UNIX.

Утилита BareTail разработана компанией Bare Metal Software. Фича программы — цветовая маркировка, которая наносится в GUI интерфейсе при просмотре файлов.

BareiTail

Особенности программы BareTail:

• Разработана для Windows.
• Позволяет отслеживать несколько файлов с использованием закладок.
• Конфигурируемая подсветка.
• Позволяет делать немедленный скроллинг в любую точку файла, что работает даже на больших файлах.
• Распространяется на условиях Free demo. Стоимость лицензии $25.

Разработка John Walker из Fourmilab. Эта утилита давно не обновлялась (на сайте указан 1997 год), поэтому возможно она не будет хорошо работать на последних дистрибутивах Unix. Особенности:

• Можно отслеживать сразу несколько файлов, расположенных на разных серверах.
• Автоматически проверяет запуск нужного процесса и обновляет файл лога, подстраивая соответственно просмотр.
• Скрипт старый (1997 года), и может не работать на новых дистрибутивах Unix и патчах Perl (скрипт основан на Perl 4.0, патч уровня 36).
• Работает только в UNIX.

Разработка Thierry Patent (см. CodeProject Page). Этот проект отлично поможет разработчикам .Net, которые хотели бы встроить функционал tail в свои программы. В коде заложено несколько мощных возможностей, но наверное это будет не лучший выбор, если Вам нужно просто быстро запустить tail-отслеживание файла.

TraceTool

Особенности:

• Мощный инструмент, который можно настроить через правку кода.
• Инструмент довольно сложен и требует время на освоение — в зависимости от того, что Вы хотите получить от TraceTool. Просмотрите скриншот «TraceTool Overview» на странице CodeProject, чтобы получить общее представление.
• Ошибки исправляются довольно медленно. Если Вам нужно просто запустить исполняемый файл, и получить простое отслеживание хвоста лога, то выберите не TraceTool, а какую-нибудь другую утилиту. Этим Вы экономите время на настройке и конфигурировании.
• Вместе с силой приходит и большая ответственность. На страничке проекта есть комментарии пользователей, которые сообщают о различных проблемах. Несмотря на наличие проблем у пользователей они все равно довольно высоко оценивают страницу проекта — средним голосованием на уровне около 4.97 (на момент написания статьи).
• Исходный код распространяется свободно и доступен для загрузки, но Вам нужно рабочее окружение разработки .Net, чтобы Вы смогли скомпилировать проект.
• Работает только на платформе Windows.

Разработано SnakeNest. Особенности:

• Малые затраты памяти и малая нагрузка на CPU при работе даже с большими файлами.
• Настраиваемые горячие клавиши для быстрого перемещения по файлам.
• Может делать tail-отслеживание директории логов, где сохраняются последние файлы лога.
• Работает только на Windows.

SnakeTail Main Window

Мне больше всего понравилась именно эта утилита. Для просмотра текста в кодировке UTF-8 (кириллица ANSI) следует открыть настроку опций через меню Edit -> View Options… -> закладка Log File -> в выпадающем списке выберите System.Text.UTF8Encoding. После этого нажмите кнопку Apply to All (применится ко всем открытым логам, если их несколько) и Save as default (сохранение текущей настройки как настройки по умолчанию).

SnakeTail Options

Фанаты текстового редактора Notepad++ оценят возможность функционала tail с новым плагином Document Monitor. Теперь можно отслеживать файлы, не покидая Notepad++. Чтобы воспользоваться этим плагином, выполните следующие шаги:

1. Запустите Notepad++, выберите в меню Plugins -> Plugin Manager -> Show Plugin Manager, поставьте галочку на плагине «Document Monitor», и кликните «Install».
2. Notepad++ предложит Вам перезапустить программу, перезапустите Notepad++ (без перезапуска компьютера). 
3. Как только Notepad++ откроется снова, выберите «Plugins», и Вы должны теперь увидеть опцию «Document Monitor -> Start to monitor». Это приведет к обновлению вида Вашего документа каждые 3 секунды.

Notepad-pp-tail

Разработано Tobias Klauser. Базовый инструмент с минимальными опциями — если сравнивать с другими вариантами. Особенности:

• Доступен в репозиториях Git и Github.
• Использует inotify API, чтобы определить, нужно или нет перечитать отслеживаемый файл.

[PowerShell: отображение текста в правильной кодировке]

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

powershell Get-Content BitBangbinDebuglog.txt -Wait

PowerShell Encoding bad

Для правильного отображения текста используйте опцию -Encoding:

powershell Get-Content BitBangbinDebuglog.txt -Wait -Encoding UTF8

Тот же текст, отображаемый в правильной кодировке:

PowerShell Encoding OK

[Ссылки]

1. MinGW MinGW | Minimalist GNU for Windows site:mingw.org.
2. 141009tail-cygwin.zip.
3. Tail for Win32 site:tailforwin32.sourceforge.net.
4. 13 Ways to Tail a Log File on Windows & Linux site:stackify.com.
5. Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 и BITS 4.0) site:support.microsoft.com.
6. 180412tail-for-Windows.zip — русские обновления KB968930 для разных версий Windows, SnakeTail, Tail for Win32.

logfile-tail-000.pngЛюбая диагностика или наблюдение за состоянием системы начинается с изучения логов. При этом бывают ситуации, когда логи хотелось бы видеть в режиме реального времени, что позволит лучше понять причинно-следственные связи и увидеть реакцию системы на выполняемые действия. То, о чем мы расскажем в данной заметке — известно многим, но, как показывает практика, многие начинающие не знают этих способов, поэтому не будет лишним в очередной раз обратиться к этой теме.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Linux

В Linux подавляющее большинство логов являются обычным текстом, что делает работу с ними возможной при помощи широкого спектра утилит. Одна из них — это tail (англ. хвост), по умолчанию она выводит 10 последних строк указанного текстового файла. А еще она умеет выводить на экран последние строки по мере их добавления. Это как раз то, что нам нужно. Допустим мы хотим видеть в реальном времени лог доступа к сайту:

tail -f /var/log/apache2/access.log

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

logfile-tail-001.pngЭто удобно, теперь мы можем в одном окне выполнять какие-либо действия, а во втором сразу видеть реакцию на них.

Начинающим администраторам достаточно часто приходится обращаться за помощью к коллегам или на форумы и первое что от них попросят — это логи. Но взять и отправить файл лога целиком — это очень плохая идея, вряд ли кто-то захочет разбираться в чужих логах, да и вы тем самым покажете свое неуважение к тем, кто хотел бы вам помочь. Отправить случайный участок лога, в надежде что кто-то в нем разберется? Тоже нехорошо.

А тем временем сделать правильно очень просто. Достаточно использовать приведенную выше команду и направить ее вывод в файл:

tail -f /var/log/apache2/access.log > ~/my_log.log

На экране теперь строки лога появляться не будут, они будут записаны в файл my_log.log в домашней директории. После чего выполните с системой необходимые действия, результат которых должен попасть в лог, прервите действие команды по Ctrl+C и можете смело описывать проблему коллегам, не забыв приложить полученный файл.

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

tail -f /var/log/apache2/access.log | grep 192.168.16.187 > ~/my_log.log

Здесь мы перенаправили выходной поток от tail на вход команды grep, которая выберет только те строки, в которых присутствует искомый адрес. Подобную конструкцию можно использовать и при интерактивном выводе на экран.

А если мы хотим одновременно видеть лог на экране и при этом записывать его в файл? Все просто, вместо перенаправления вывода передадим результат по конвейеру еще одной команде:

tail -f /var/log/apache2/access.log | grep 192.168.16.187 | tee ~/my_log.log

Здесь мы использовали команду tee (тройник), которая одновременно выводит переданный ей стандартный поток ввода на экран и записывает в указанный файл.

Windows

Системные логи Windows хранятся в Журналах событий, которые имеют специализированный формат и хранятся в файлах .evt и .evtx, которые просмотреть подобным образом не удастся, но логи многих системных служб и приложений используют простой текстовый формат, а следовательно дают возможность работать с ними интерактивно.

В качестве аналога команды tail используем один из командлетов PowerShell:

Get-Content C:OpenVPNlogopenvpn.log -Wait

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

Get-Content C:OpenVPNlogopenvpn.log -Wait -Tail 5

logfile-tail-002.pngТочно также мы можем перенаправить вывод команды в файл:

Get-Content C:OpenVPNlogopenvpn.log -Wait -Tail 5 > S:my_log.log

Или выполнить отбор по интересующему нас вхождению используя возможности РowerShell, например отберем только события AUTH_FAILED, включив в отбор также последние сто строк лога:

Get-Content C:OpenVPNlogopenvpn.log -Wait -Tail 100 | where { $_ -match "AUTH_FAILED"}

logfile-tail-003.png

Точно также, как и в Linux мы можем одновременно просматривать и записывать логи, для этого используем аналогичную команду Tee-Object:

Get-Content C:OpenVPNlogopenvpn.log -Wait -Tail 100 | where { $_ -match "AUTH_FAILED"} | Tee-Object -FilePath S:my_log.log

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Если служба или приложение Windows пишет логи не в Event Viewer (.evt и .evtx файлы), а в текстовые лог-файлы, вам иногда необходимо выводить и отслеживать новые события в реальном времени.

В Linux, например, для вывода содержимого логов в реальном времени используется команда tail -f /var/log/syslog. Команда выводит на экран терминала любые новые записи, которые добавляются в этот файл.

В качестве аналога команды tail в Windows можно использовать командлет Get-Content.

Следующая команда выведет содержимое всего текстового лог-файла и будет выводить новые строки:

Get-Content "C:Usersuser1AppDataLocalTempMicrosoftEdgeUpdate.log" -Wait

Если файл лога большой, и вы не хотите выводить его целиком на экран, можно вывести только последние 10 строк:

Get-Content "C:Usersuser1AppDataLocalTempMicrosoftEdgeUpdate.log" -Wait -Tail 10

Get-Content просмотр текстового файла с логами

Можно перенаправить вывод команды в файл:

Get-Content C:MicrosoftEdgeUpdate.log -Wait -Tail 5 > C:PSnew_edgeupdate.log

Если вам нужно выводить на экран только строки, которые содержат ключевое слово (например, ERROR):

Get-Content C:MicrosoftEdgeUpdate.log -Wait -Tail 100 | where { $_ -match "ERROR"}

Можно одновременно выводить логи на экран и записывать полученные строки в новый файл:

Get-Content C:MicrosoftEdgeUpdate.log -Wait -Tail 100 | where { $_ -match "FAILED"} | Tee-Object -FilePath C:PSnew_edgeupdate.log

On windows how can I easily monitor a log file and see updates to the file in real time?

Basically, same functionality like tail -f log_file on Unix systems

Platform: Windows XP/2003/2008 server

[Update] this is quite handy for a quick monitoring(thanks to Ckarras’s answer)

Quick screen shot of PowerShell type -wait (type is an alias for get-content)
alt text

Rory's user avatar

Rory

4825 gold badges12 silver badges22 bronze badges

asked Apr 30, 2009 at 23:03

dance2die's user avatar

7

I’ve been using BareTailPro for awhile, and have been very pleased. It hasn’t been updated in awhile, but it still meets my needs. There’s also a free version.

Here’s some of the features:

  • View files of any size (> 2GB)
  • Configurable highlighting
  • Monitor multiple files simultaneously
  • High-performance search algorithm
  • Regular expression text search
  • Filter tail mode (include or exclude lines)

answered May 1, 2009 at 1:21

Rob Thomas's user avatar

Rob ThomasRob Thomas

2362 silver badges4 bronze badges

2

There’s also an equivalent to «tail -f» under Windows, if you have PowerShell installed:

type -wait

answered Sep 10, 2009 at 13:50

ckarras's user avatar

ckarrasckarras

4811 gold badge4 silver badges3 bronze badges

5

I use Notepad++ as my default text editor on all my systems, and it has the nice bonus of having this built-in — just go Plugins -> Document Monitor -> Start to monitor. You can also use File -> Reload from disk to manually reload it.

answered Apr 30, 2009 at 23:42

Zack Elan's user avatar

Zack ElanZack Elan

3703 silver badges5 bronze badges

4

You don’t mention which platform you’re using, but on Unix-like systems the tail command does this:

tail -f /var/log/messages

In fact there are implementations of tail for Windows also (eg. unxutils).

answered Apr 30, 2009 at 23:05

Greg Hewgill's user avatar

Greg HewgillGreg Hewgill

6,7893 gold badges29 silver badges26 bronze badges

0

Actually, Log-Expert does what you want, plus a lot of nice feature

Features for Log-Exprt

montonero's user avatar

answered May 1, 2009 at 0:10

VonC's user avatar

VonCVonC

2,6635 gold badges30 silver badges48 bronze badges

6

If windows is your thing you could try Tail for Win32.

edit: Another alternative I just found is TailXP. It’s free, but not opensource. Looks ok from the description but I haven’t tried it.

answered Apr 30, 2009 at 23:08

Jorge Alves's user avatar

Jorge AlvesJorge Alves

4002 silver badges7 bronze badges

3

I have had good luck with the windows program mtail. It does a very nice job of monitoring an active log. You can configure quite a few options but in general I have found the defaults work very well.

mtail

answered May 2, 2009 at 23:51

John Dyer's user avatar

John DyerJohn Dyer

7251 gold badge10 silver badges12 bronze badges

1

Like tail -f file.log?

answered Apr 30, 2009 at 23:05

Sophie Alpert's user avatar

Sophie AlpertSophie Alpert

1,6391 gold badge12 silver badges16 bronze badges

4

«tail -f logname»?

answered Apr 30, 2009 at 23:05

Paul Tomblin's user avatar

Paul TomblinPaul Tomblin

5,2251 gold badge27 silver badges39 bronze badges

2

I love the Kiwi Log Viewer. They were just bought out by Solarwinds — I assume the product is still for sale (or maybe they’re giving it away for free now? They’re giving away a few other Kiwi products).

answered May 2, 2009 at 23:39

DougN's user avatar

DougNDougN

6702 gold badges7 silver badges16 bronze badges

2

If you install Cygwin on your Windows machine, you can run tail

answered May 1, 2009 at 0:55

Gary Richardson's user avatar

Gary RichardsonGary Richardson

1,8073 gold badges20 silver badges21 bronze badges

1

I typically do this with TextPad. It has the option to monitor that a file has been modified. It is an option to either automatically update the window or to prompt you whether or not you want to reload the file.

answered May 1, 2009 at 1:51

bruceatk's user avatar

bruceatkbruceatk

1211 silver badge4 bronze badges

1

If you’re using eclipse there’s a fully sick plugin called Log Watcher

http://graysky.sourceforge.net/

It supports multiple files, plus color highlighting.

answered May 8, 2009 at 6:25

chickeninabiscuit's user avatar

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

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

Журналы и командная строка

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

findstr "Fail" *.log >> fail.txt

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

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

Get-Content -Path 'C:Program FilesUpdate ServicesLogFilesSoftwareDistribution.log' | Out-Host -Paging

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

>Get-Content -Path "C:WindowsWindowsUpdate.log" -Tail 5 -Wait


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

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

Select-String -Path "C:WindowsSystem32LogFilesFirewallpfirewall.log" -Pattern 'Drop' | Select-Object -Last 20 | Format-Table Line


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

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

Select-String 'C:WindowsClusterReportsCluster.log' -Pattern ' err ' ‑Context 3

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

Get-Content 'C:Windowsdebugnetlogon.log' | Select-Object -First 30 -Skip 45

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

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

Get-WinEvent -ListLog *


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

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

Get-WinEvent -LogName 'System' -MaxEvents 20


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

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

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

Get-WinEvent -FilterHashTable @{LogName='System';ID='1','6013'}

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

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

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

Get-WinEvent -FilterHashtable @{LogName='system'} | Where-Object -FilterScript {($_.Level -eq 2) -or ($_.Level -eq 3)}


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

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

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

  • Get-EventLog.
  • Get-WinEvent.

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

Работаем с журналами посредством запросов SQL

Утилита Log Parser появилась на свет в начале «нулевых» и с тех пор успела обзавестись официальной графической оболочкой. Тем не менее актуальности своей она не потеряла и до сих пор остается для меня одним из самых любимых инструментов для анализа логов. Загрузить утилиту можно в Центре Загрузок Microsoft, графический интерфейс к ней ― в галерее Technet. О графическом интерфейсе чуть позже, начнем с самой утилиты.

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

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

SELECT 
 extract_token(text, 0, ' ') as date, 
 extract_token(text, 1, ' ') as time,
 extract_token(text, 2, ' ') as action, 
 extract_token(text, 4, ' ') as src-ip,  
 extract_token(text, 7, ' ') as port 
FROM 'C:WindowsSystem32LogFilesFirewallpfirewall.log' 
WHERE action='DROP' AND port='3389'
ORDER BY date,time DESC

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


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

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

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

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

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

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

SELECT
 timegenerated as Date, 
 extract_token(strings, 0, '|') as user,
 extract_token(strings, 2, '|') as sourceip 
FROM '%temp%test.evtx'
WHERE EventID = 21
ORDER BY Date DESC


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

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

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

SELECT
 TO_LOCALTIME(TO_TIMESTAMP(EXTRACT_PREFIX(TO_STRING([#Fields: date-time]),0,'T'), 'yyyy-MM-dd')) AS Date,
 COUNT(*) AS [Daily Email Traffic] 
FROM 'C:Program FilesMicrosoftExchange ServerV15TransportRolesLogsMessageTracking*.LOG'
WHERE (event-id='RECEIVE') GROUP BY Date ORDER BY Date ASC

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


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


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

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

$LogQuery = New-Object -ComObject "MSUtil.LogQuery"
$InputFormat = New-Object -ComObject "MSUtil.LogQuery.FileSystemInputFormat"
$InputFormat.Recurse = -1
$OutputFormat = New-Object -ComObject "MSUtil.LogQuery.CSVOutputFormat"
$SQLQuery = "SELECT Top 20 Path, Size INTO '%temp%output.csv' FROM 'C:*.*' ORDER BY Size DESC"
$LogQuery.ExecuteBatch($SQLQuery, $InputFormat, $OutputFormat)
$CSV = Import-Csv  $env:TEMP'output.csv'
$CSV | fl 
Remove-Item $env:TEMP'output.csv'
$LogQuery=$null
$InputFormat=$null
$OutputFormat=$null

Ознакомиться с документацией о работе компонента можно в материале Log Parser COM API Overview на портале SystemManager.ru.

Благодаря этой возможности для облегчения работы существует несколько утилит, представляющих из себя графическую оболочку для 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.

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

Thanks to these powerful tools, you’ll be able to debug your system

by Tashreef Shareef

Tashreef Shareef is a software developer turned tech writer. He discovered his interest in technology after reading a tech magazine accidentally. Now he writes about everything tech from… read more


Updated on September 13, 2022

Reviewed by
Vlad Turiceanu

Vlad Turiceanu

Passionate about technology, Windows, and everything that has a power button, he spent most of his time developing new skills and learning more about the tech world. Coming… read more

  • Event log analyzer is an essential tool for troubleshooting and optimizing your IT infrastructure.
  • It can detect failed services and alerts the administrator for quick troubleshooting.
  • While Open-source event log analyzers provide sufficient features, other app offer more insight.

What are the Best Event Log Analyzer Tools

Troubleshooting and prevention are the two important tasks that the Event Log analyzer helps you perform and are essential to keep your network and business up and running.

The event log data is a critical aspect of troubleshooting any issue within your network or system.

While you can use Windows Event Viewer, dedicated log analyzer tools are an excellent alternative offering better visualization and GUI experience.

What is an event log analysis?

Event log analysis is the process of analyzing logs to diagnose problems and disruptions and to find the source of the problem.

Specialized log monitoring tools allow you to diagnose with a more detailed analysis and a comprehensive overview.

In this article, we take a look at the best event log analysis tools that provide more visibility into logs for network administrators.

ManageEngine EventLog Analyzer – Best tool for event analyzing

ManageEngine EventLog Analyzer allows you to understand what’s happening in your network and gain insights into potential security risks and prevent them before they happen by analyzing your logs.

Real-time event log correlation allows you to instantly detect attack attempts and trace potential security threats. It can audit log data from perimeter devices, including routers, switches, and provide valuable insights.

ManageEngine EventLog Analyzer also comes with in-depth auditing capabilities, augmented threat intelligence, comprehensive log management, and high-speed log processing capabilities to offer an all-in-one log management solution. Thus, we regarded it as one of the best free Windows event log analyzer tools.

Key features of ManageEngine EventLog Analyzer:

  • Detect attacks attempts and log data from multiple devices 
  • Integrated compliance management 
  • Augments threat intelligence 
  • Comprehensive log management, including analysis 

ManageEngine EventLog Analyzer

Keep an eye on all key events on your network and secure it with a tool that offers augmented threat intelligence.

Log360 – Great tool for event reporting

If you need more than an event analyzer tool, Log360 is also a great threat detection solution that will provide security solutions for your business.

The tool analyzes events from all network devices, file servers, databases, web servers, Microsoft 365, Exchange servers, and Active Directory allowing you to manage any incidents quickly.

Moreover, Log360 will even monitor widely-used public cloud platforms, like Amazon Web Services (AWS), Microsoft Azure, Salesforce, and more. Moreover, this event log analyzer works in Windows 10 as well as 11.

According to your specific needs, you will be able to customize the alert profiles and get extensive reports that will trigger a fast reaction from your IT management team.

The tool relies on a global IP threat database and the built-in STIX/TAXII threat feed processor to identify external threats instantly.

Log360 is not limited to breach detection but also focuses on file integrity, spotting any critical changes made to confidential files and folders within your devices.

And being a professional solution, it even integrates with ServiceDesk Plus, Jira Service Desk, Kayako, and more ticketing tools.

Take a look at some of its best features:

  • Analyzes logs from any network devices, including file servers and databases
  • Customizable alerts and profiles
  • File integrity monitoring
  • Ticketing tools integration
  • Monitors cloud platforms like AWS and Microsoft Azure

Log360

Secure all the devices on your network and analyze all logs with this complete suite of professional tools.

PRTG Network Monitor – Great tool for network monitoring

PRTG Network Monitor is an all-in-one network monitoring solution that analyzes your entire network and alerts you in case of an event.

For network analysis, it uses the Windows Event Log Sensors to let you monitor Windows log files.

With the PRTG Network Monitor, you can keep an eye on all the most important logs. It can also monitor servers, bandwidth, and applications. All the data is presented in a visual format on a centralized dashboard. 

Network admins can configure alarms to send alerts only if a certain situation arises. The personalized dashboard displays all your monitoring data on a dashboard.

Key features of PRTG Network Monitor:

  • Centralized tool to monitor network, servers, bandwidth, and applications
  • Customizable alarm with filter criteria for log sensors 
  • Personalized dashboard for reading monitoring data 
  • Multiple log sensors compatible with Windows Event logger

PRTG Network Monitor

Keep a close eye on your network and analyze event logs with PRTG Network Monitor software.

InsightOps – Ideal tool for infrastructure monitoring

InsightOps, previously known as Logentries, is an event log analyzer tool that combines log management with infrastructure monitoring.

You can easily consolidate logs in real time from your IT infrastructure on a centralized console.

With InsightOps, you can analyze live logs and performance metrics with real-time alerts, track software usage, and audio user logins, identify network misconfiguration, and more.

Key features of InsightOps:

  • Centralized data collection from any source in multiple formats 
  • Monitor metrics like CPU, memory, disk usage in real-time
  • Quickly identify and resolve errors 
  • Helps maintain compliance standard 

⇒ Get InsightOps

LOGalyze – Great for log centralized management

LOGalyze is an open-source event log analyzer, centralized on log management, and network monitoring software. It can handle all your log data from Linux servers, network devices, and Windows hosts in one place.

LOGalyze can identify the collected logs, and classify them by source host, severity, type, and splits them into fields and stores for efficient analysis.

Key features of LOGalyze:

  • Collects event logs from multiple sources 
  • Offers multi-dimensional statistics 
  • Predefined compliance reports and custom reports
  • Collects event logs from distributed Windows hosts
  • Automated classification for efficient analysis 

⇒ Get LOGalyze

Splunk – Perfect tool for event viewing

Splunk is a known name in the world of log management. Its log analysis software can collect, index, and visualize reports generated from Windows, Linux, and other machines in any format.

Some PC issues are hard to tackle, especially when it comes to corrupted repositories or missing Windows files. If you are having troubles fixing an error, your system may be partially broken.
We recommend installing Restoro, a tool that will scan your machine and identify what the fault is.
Click here to download and start repairing.

Splunk log analysis software applies structure and scheme only at search time.

It also gives the option to zoom in and out of timelines and uses proprietary Splunk Search Processing Language for search queries.

Key features of Splunk:

  • Collects and indexes data from multiple sources 
  • 140+ commands to perform searches, calculate metrics, and more
  • Utilizes Splunk Search Processing Language for search 

⇒ Get Splunk

Sematext Logs – Great integration features

Sematext Logs Logsene is a security and scalable monitoring and logging service.

It offers a fast, powerful search with over 75+ integration for third-party apps such as PagerDuty, HipChat, BigPanda, and more.

Sematext Logs allows you to ship data with your favorite log shipper, offers centralized logging to store logs from any data source, and customizes alerts for troubleshooting.

Key features of Sematext Logs:

  • Multi-user access control for administrator 
  • 75+ built-in third-party apps integration 
  • Hosted ELK as a service with centralized logging 
  • Customized alerts on logs 

⇒ Get Sematext Logs

Site24x7 Log Management – Perfect for massive volumes of data

Site24x7 Log Management allows you to manage massive volumes of log data with threshold-based alerting via email, SMS, and voice calls.

This easy-to-use web client helps you derive quick and actionable insights from the logs.

Agile log monitoring with visual aids allows you to troubleshoot faster with keyword-based searches and visual aids like the graph.

It can recognize common application logs, including Apache, NGIN, Log4Net, NLog, and more out of the box.

Key features of Site24x7 Log Management:

  • Agile log monitoring with visual aids 
  • Support for common application logs
  • Log management from different cloud service providers
  • Customized alerts 

⇒ Get Site24x7 Log Management

Netwrix Event Log Manager – Ideal for collecting Windows event logs

Netwrix Event Log Manager is a freeware tool that collects Windows server event logs from systems across your network and alerts on critical events in real-time.

It compresses collected logs and achieves them in a file system for further analysis.

Netwrix Event Log Manager Eliminates the need to sift through separate logs from multiple Windows servers in your network.

Key features of Netwrix Event Log Manager:

  • Offers all event log data in a single view
  • Be notified about critical events 
  • Keep event logs stored for further analysis 

⇒ Get Netwrix Event Log Manager

LogRhythm – Great for SIEM management

LogRhythm is a cloud-based SIEM platform that allows you to manage SEIM infrastructure, administration, upgrades, or troubleshooting capacity issues. 

LogRhythm offers high-performance search analytics, integrated threat and business context, IOC-and TTP-based scenarios analytics, pervasive forensic visibility, and comprehensive compliance automation.

Key features of LogRhythm:

  • High-performance search analytics 
  • Layered security operations metrics 
  • Machine Assisted threat hunting 

⇒ Get LogRhythm

DataDog – Very easy to use

DataDog is a log management solution that unifies logs, metrics, and traces in a single view offering a rich context for analyzing log data.

Insights offered by the tool can be used to troubleshoot issues, optimize performance or investigate security threats. 

Some of the notable features offered by DataDog include search, filter, and the ability to analyze logs on the go, build consistent, structured databases from your raw log data, and the ability to generate metrics from all logs.

Key features of DataDog:

  • Seamless dashboard navigation for faster troubleshooting 
  • Ingest, Live Tail, and archive everything 
  • Support for 170+ common technologies 

⇒ Get DataDog 

Read more about this topic

  • How to Fix The Network Security Key Isn’t Correct on Windows
  • WiFi Shows No Internet But Internet Works: 11 Easy Solutions
  • This WiFi Uses An Older Security Standard: Quick Fixes

A dedicated event log analyzer can offer more insights than the Windows Event Viewer. You can analyze the log files to monitor network infrastructure and security threats. 

Explore the log management tools listed in this article to efficiently manage Windows event log data to optimize and troubleshoot your IT infrastructure.

You might want to look at our list including the best PC audit tools for your devices because it might also help you keep the network safe.

Have you tried any of the tools above? Tell us about your experience in the comments section below.

newsletter icon

Newsletter

Thanks to these powerful tools, you’ll be able to debug your system

by Tashreef Shareef

Tashreef Shareef is a software developer turned tech writer. He discovered his interest in technology after reading a tech magazine accidentally. Now he writes about everything tech from… read more


Updated on September 13, 2022

Reviewed by
Vlad Turiceanu

Vlad Turiceanu

Passionate about technology, Windows, and everything that has a power button, he spent most of his time developing new skills and learning more about the tech world. Coming… read more

  • Event log analyzer is an essential tool for troubleshooting and optimizing your IT infrastructure.
  • It can detect failed services and alerts the administrator for quick troubleshooting.
  • While Open-source event log analyzers provide sufficient features, other app offer more insight.

What are the Best Event Log Analyzer Tools

Troubleshooting and prevention are the two important tasks that the Event Log analyzer helps you perform and are essential to keep your network and business up and running.

The event log data is a critical aspect of troubleshooting any issue within your network or system.

While you can use Windows Event Viewer, dedicated log analyzer tools are an excellent alternative offering better visualization and GUI experience.

What is an event log analysis?

Event log analysis is the process of analyzing logs to diagnose problems and disruptions and to find the source of the problem.

Specialized log monitoring tools allow you to diagnose with a more detailed analysis and a comprehensive overview.

In this article, we take a look at the best event log analysis tools that provide more visibility into logs for network administrators.

ManageEngine EventLog Analyzer – Best tool for event analyzing

ManageEngine EventLog Analyzer allows you to understand what’s happening in your network and gain insights into potential security risks and prevent them before they happen by analyzing your logs.

Real-time event log correlation allows you to instantly detect attack attempts and trace potential security threats. It can audit log data from perimeter devices, including routers, switches, and provide valuable insights.

ManageEngine EventLog Analyzer also comes with in-depth auditing capabilities, augmented threat intelligence, comprehensive log management, and high-speed log processing capabilities to offer an all-in-one log management solution. Thus, we regarded it as one of the best free Windows event log analyzer tools.

Key features of ManageEngine EventLog Analyzer:

  • Detect attacks attempts and log data from multiple devices 
  • Integrated compliance management 
  • Augments threat intelligence 
  • Comprehensive log management, including analysis 

ManageEngine EventLog Analyzer

Keep an eye on all key events on your network and secure it with a tool that offers augmented threat intelligence.

Log360 – Great tool for event reporting

If you need more than an event analyzer tool, Log360 is also a great threat detection solution that will provide security solutions for your business.

The tool analyzes events from all network devices, file servers, databases, web servers, Microsoft 365, Exchange servers, and Active Directory allowing you to manage any incidents quickly.

Moreover, Log360 will even monitor widely-used public cloud platforms, like Amazon Web Services (AWS), Microsoft Azure, Salesforce, and more. Moreover, this event log analyzer works in Windows 10 as well as 11.

According to your specific needs, you will be able to customize the alert profiles and get extensive reports that will trigger a fast reaction from your IT management team.

The tool relies on a global IP threat database and the built-in STIX/TAXII threat feed processor to identify external threats instantly.

Log360 is not limited to breach detection but also focuses on file integrity, spotting any critical changes made to confidential files and folders within your devices.

And being a professional solution, it even integrates with ServiceDesk Plus, Jira Service Desk, Kayako, and more ticketing tools.

Take a look at some of its best features:

  • Analyzes logs from any network devices, including file servers and databases
  • Customizable alerts and profiles
  • File integrity monitoring
  • Ticketing tools integration
  • Monitors cloud platforms like AWS and Microsoft Azure

Log360

Secure all the devices on your network and analyze all logs with this complete suite of professional tools.

PRTG Network Monitor – Great tool for network monitoring

PRTG Network Monitor is an all-in-one network monitoring solution that analyzes your entire network and alerts you in case of an event.

For network analysis, it uses the Windows Event Log Sensors to let you monitor Windows log files.

With the PRTG Network Monitor, you can keep an eye on all the most important logs. It can also monitor servers, bandwidth, and applications. All the data is presented in a visual format on a centralized dashboard. 

Network admins can configure alarms to send alerts only if a certain situation arises. The personalized dashboard displays all your monitoring data on a dashboard.

Key features of PRTG Network Monitor:

  • Centralized tool to monitor network, servers, bandwidth, and applications
  • Customizable alarm with filter criteria for log sensors 
  • Personalized dashboard for reading monitoring data 
  • Multiple log sensors compatible with Windows Event logger

PRTG Network Monitor

Keep a close eye on your network and analyze event logs with PRTG Network Monitor software.

InsightOps – Ideal tool for infrastructure monitoring

InsightOps, previously known as Logentries, is an event log analyzer tool that combines log management with infrastructure monitoring.

You can easily consolidate logs in real time from your IT infrastructure on a centralized console.

With InsightOps, you can analyze live logs and performance metrics with real-time alerts, track software usage, and audio user logins, identify network misconfiguration, and more.

Key features of InsightOps:

  • Centralized data collection from any source in multiple formats 
  • Monitor metrics like CPU, memory, disk usage in real-time
  • Quickly identify and resolve errors 
  • Helps maintain compliance standard 

⇒ Get InsightOps

LOGalyze – Great for log centralized management

LOGalyze is an open-source event log analyzer, centralized on log management, and network monitoring software. It can handle all your log data from Linux servers, network devices, and Windows hosts in one place.

LOGalyze can identify the collected logs, and classify them by source host, severity, type, and splits them into fields and stores for efficient analysis.

Key features of LOGalyze:

  • Collects event logs from multiple sources 
  • Offers multi-dimensional statistics 
  • Predefined compliance reports and custom reports
  • Collects event logs from distributed Windows hosts
  • Automated classification for efficient analysis 

⇒ Get LOGalyze

Splunk – Perfect tool for event viewing

Splunk is a known name in the world of log management. Its log analysis software can collect, index, and visualize reports generated from Windows, Linux, and other machines in any format.

Some PC issues are hard to tackle, especially when it comes to corrupted repositories or missing Windows files. If you are having troubles fixing an error, your system may be partially broken.
We recommend installing Restoro, a tool that will scan your machine and identify what the fault is.
Click here to download and start repairing.

Splunk log analysis software applies structure and scheme only at search time.

It also gives the option to zoom in and out of timelines and uses proprietary Splunk Search Processing Language for search queries.

Key features of Splunk:

  • Collects and indexes data from multiple sources 
  • 140+ commands to perform searches, calculate metrics, and more
  • Utilizes Splunk Search Processing Language for search 

⇒ Get Splunk

Sematext Logs – Great integration features

Sematext Logs Logsene is a security and scalable monitoring and logging service.

It offers a fast, powerful search with over 75+ integration for third-party apps such as PagerDuty, HipChat, BigPanda, and more.

Sematext Logs allows you to ship data with your favorite log shipper, offers centralized logging to store logs from any data source, and customizes alerts for troubleshooting.

Key features of Sematext Logs:

  • Multi-user access control for administrator 
  • 75+ built-in third-party apps integration 
  • Hosted ELK as a service with centralized logging 
  • Customized alerts on logs 

⇒ Get Sematext Logs

Site24x7 Log Management – Perfect for massive volumes of data

Site24x7 Log Management allows you to manage massive volumes of log data with threshold-based alerting via email, SMS, and voice calls.

This easy-to-use web client helps you derive quick and actionable insights from the logs.

Agile log monitoring with visual aids allows you to troubleshoot faster with keyword-based searches and visual aids like the graph.

It can recognize common application logs, including Apache, NGIN, Log4Net, NLog, and more out of the box.

Key features of Site24x7 Log Management:

  • Agile log monitoring with visual aids 
  • Support for common application logs
  • Log management from different cloud service providers
  • Customized alerts 

⇒ Get Site24x7 Log Management

Netwrix Event Log Manager – Ideal for collecting Windows event logs

Netwrix Event Log Manager is a freeware tool that collects Windows server event logs from systems across your network and alerts on critical events in real-time.

It compresses collected logs and achieves them in a file system for further analysis.

Netwrix Event Log Manager Eliminates the need to sift through separate logs from multiple Windows servers in your network.

Key features of Netwrix Event Log Manager:

  • Offers all event log data in a single view
  • Be notified about critical events 
  • Keep event logs stored for further analysis 

⇒ Get Netwrix Event Log Manager

LogRhythm – Great for SIEM management

LogRhythm is a cloud-based SIEM platform that allows you to manage SEIM infrastructure, administration, upgrades, or troubleshooting capacity issues. 

LogRhythm offers high-performance search analytics, integrated threat and business context, IOC-and TTP-based scenarios analytics, pervasive forensic visibility, and comprehensive compliance automation.

Key features of LogRhythm:

  • High-performance search analytics 
  • Layered security operations metrics 
  • Machine Assisted threat hunting 

⇒ Get LogRhythm

DataDog – Very easy to use

DataDog is a log management solution that unifies logs, metrics, and traces in a single view offering a rich context for analyzing log data.

Insights offered by the tool can be used to troubleshoot issues, optimize performance or investigate security threats. 

Some of the notable features offered by DataDog include search, filter, and the ability to analyze logs on the go, build consistent, structured databases from your raw log data, and the ability to generate metrics from all logs.

Key features of DataDog:

  • Seamless dashboard navigation for faster troubleshooting 
  • Ingest, Live Tail, and archive everything 
  • Support for 170+ common technologies 

⇒ Get DataDog 

Read more about this topic

  • How to Fix The Network Security Key Isn’t Correct on Windows
  • WiFi Shows No Internet But Internet Works: 11 Easy Solutions
  • This WiFi Uses An Older Security Standard: Quick Fixes

A dedicated event log analyzer can offer more insights than the Windows Event Viewer. You can analyze the log files to monitor network infrastructure and security threats. 

Explore the log management tools listed in this article to efficiently manage Windows event log data to optimize and troubleshoot your IT infrastructure.

You might want to look at our list including the best PC audit tools for your devices because it might also help you keep the network safe.

Have you tried any of the tools above? Tell us about your experience in the comments section below.

newsletter icon

Newsletter

Обновлено 23.03.2022

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

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

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

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

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

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

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

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

логи windows-01

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

логи windows-02

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

логи windows-03

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

логи windows-04

Так же есть логи windows для более специфических служб, например DHCP или DNS. Просмотр событий сечет все :).

логи windows-05

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

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

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

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

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

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

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

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

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

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

Было бы странно если бы PowerShell не умел этого делать, для отображения log файлов открываем 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 системы

Так что вам выбирать будь то просмотр событий или PowerShell для просмотра событий windows, это уже ваше дело. Материал сайта pyatilistnik.org



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

  • Первый метод

Не так давно в появившейся операционной системе 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.

Журнал событий 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 *

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 {($_.LevelDisplayName -eq "Error" -or $_.LevelDisplayName -eq "Warning") -and ($_.TimeCreated -ge $StartDate )}

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

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

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

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

Можно выполнить дополнительные преобразования с полученными данными. Например, в этом примере мы сразу преобразуем имя пользователя в 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
секунд).

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

Если вам нужно найти события по 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 поиск текста в событиях

Расширенный фильтры событий 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) &lt;= 2592000000]]]</Select>
</Query>
</QueryList>
'@
Get-WinEvent -FilterXML $xmlQuery

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:psFilterSYSEvents.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:psservers.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}
}

  • Remove From My Forums
  • Вопрос

  • Есть лог-файл, который постоянно обновляется. Какой командой воспользоваться чтобы видеть все его обновления в реальном времени.
    Знаю есть команда tail, но она не входит в стандартный набор PowerShell-а, так вот задача — просматривать именно стандартными средствами.

Ответы

    • Помечено в качестве ответа

      16 января 2010 г. 18:51

  • Это графическая утилита. Для её использования надо щелкнуть правой клавишей по лог-файлу и открыть его с помощью trace32. Также можно ассоциировать её для открытия файлов с раширениями логов (чтобы они открывались её по умолчанию).

    • Помечено в качестве ответа
      iron-snow
      16 января 2010 г. 18:51

Понравилась статья? Поделить с друзьями:
  • Проседает фпс в доте 2 windows 10
  • Пропало меню выбора операционной системы при загрузке windows 10
  • Просмотр лога в реальном времени windows
  • Проседает fps в играх windows 11
  • Пропало интернет соединение на компьютере windows 10