Анализ log файлов windows

Пора поговорить про удобную работу с логами, тем более что в 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 Files\Update Services\LogFiles\SoftwareDistribution.log' | Out-Host -Paging

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

>Get-Content -Path "C:\Windows\WindowsUpdate.log" -Tail 5 -Wait

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

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

Select-String -Path "C:\Windows\System32\LogFiles\Firewall\pfirewall.log" -Pattern 'Drop' | Select-Object -Last 20 | Format-Table Line

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

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

Select-String 'C:\Windows\Cluster\Reports\Cluster.log' -Pattern ' err ' ‑Context 3

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

Get-Content 'C:\Windows\debug\netlogon.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:\Windows\System32\LogFiles\Firewall\pfirewall.log' 
WHERE action='DROP' AND port='3389'
ORDER BY date,time DESC

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

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

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

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

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

Не со всеми журналами Log Parser работает просто так ― к некоторым он не может получить доступ. В нашем случае просто скопируем журнал из %SystemRoot%\System32\Winevt\Logs\Microsoft-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 Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\MessageTracking\*.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.

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

Если вы подозреваете, что встроенный Windows Defender Firewall блокирует некоторые сетевые подключений (от определенной программы или сервиса), плохим решением будет его полное отключение. Вместо этого вы можете включить логирование сетевого трафика, проходящего через брандмауэр, определить заблокированные используемые порты и/или IP адреса источника/назначения и создать корректное разрешающее правило.

В этой статье мы покажем, как включить логирование сетевых подключений в Windows Firewall и выполнить поиск по логам.

Настройка логирования Windows Firewall в текстовый файл

Содержание:

  • Запись логов Windows Firewall в журнал событий Windows

Windows Defender Firewall позволяет записывать в лог файл как успешные так и заблокированные сетевые подключения. Логирование можно включить отдельно для каждого сетевого профиля (частная, общедоступная или доменная сеть). По умолчанию логирование трафика в брандмауэре отключено. Чтобы включить ведение логов в Windows Firewall:

  1. Откройте MMC оснастку Windows Firewall with Advanced Security (
    wf.msc
    ).
  2. Щелкните правой кнопкой по корню консоли и выберите Properties;
  3. Затем выберите вкладку сетевого профиля Windows, для которого вы хотите включить логирование (Domain, Private или Public Profile).
  4. На вкладке профиля в секции Logging нажмите кнопку Customize.
  5. Здесь можно изменить следующие настройки:
    Файл лога: по умолчанию
    %systemroot%\system32\LogFiles\Firewall\pfirewall.log

    Максимальный размер лога: увеличьте с 4 Мб до 20 Мб (
    20480
    Кб)

    Log dropped packets: нужно ли записывать в лог отфильтрованные сетевые пакеты

    Log successful connections: нужно ли логировать успешные сетевые подключения (может получиться очень большой лог)

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

  • %windir%\system32\logfiles\firewall\pfirewall_domain.log
  • %windir%\system32\logfiles\firewall\pfirewall_private.log
  • %windir%\system32\logfiles\firewall\pfirewall_public.log

Также можно включить эти же параметры логирования Windows Firewall с помощью PowerShell:

Set-NetFireWallProfile -Profile Public -LogBlocked True -LogMaxSize 20480 -LogFileName "%systemroot%\system32\LogFiles\Firewall\pfirewall.log" -Verbose

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

Get-NetFirewallProfile| select Name, Enabled, Log*|ft

Включить ведение логов брандмауэра Windows Firewall

Теперь Windows Firewall будет записывать в лог файлы все сетевые подключения. Вы можете открыть файл лога вручную или выполнить поиск по нему с помощью PowerShell. Командлет Select-String совмещает в себе аналог grep и tail для Windows.

Например, следующая команда будет выводить в реальном времени на экран все отфильтрованные (DROP) сетевые подключения на порт TCP порт 445 (SMB):

Get-Content C:\Windows\System32\LogFiles\Firewall\pfirewall.log -wait | Select-String -pattern "DROP.*TCP.*445"

Вывести лог Windows Firewall в реальном времени PowerShell

Используется такой формат лог файла:

date time action protocol src-ip dst-ip src-port dst-port size tcpflags tcpsyn tcpack tcpwin icmptype icmpcode info path pid

Для анализа лог файлов файервола можно воспользоваться такой PowerShell функцией, которая представит лог в виде удобной графической таблицы Out-GridView:

function Get-WindowsFirewallLog {
param(
[parameter(Position=0,Mandatory=$false)]
[ValidateScript({Test-Path $_})]
[string]$LogFilePath = "$env:SystemRoot\System32\LogFiles\Firewall\pfirewall.log"
)
$headerFields = @("date","time", "action","protocol","src-ip","dst-ip","src-port","dst-port","size", "tcpflags","tcpsyn", "tcpack","tcpwin","icmptype","icmpcode", "info","path")
$firewallLogs = Get-Content $LogFilePath | ConvertFrom-Csv -Header $headerFields -Delimiter ' '
$firewallLogs | Out-GridView
}
Get-WindowsFirewallLog

Поиск в логах файервола Windows Firewall

Запись логов Windows Firewall в журнал событий Windows

По сравнению с текстовыми файлам иногда более удобно записывать логи сетевых подключений Windows Firewall в журнал событий (Event Viewer). Для этого нужно включить политики аудита в локальной GPO:

  1. Откройте редактор локальной GPO (
    gpedit.msc
    )
  2. Перейдите в раздел Computer Configuration -> Windows Settings -> Security Settings -> Advanced Audit Policy Configuration -> System Audit Policies — Local Group Policy Object -> Object Access
  3. Параметр Audit Filtering Platform Packet drop позволяет включить аудит заблокированных подключений Windows Firewall. Откройте настройки политики и активируйте опцию Failure.
    Включить политику Audit Filtering Platform Packet drop

  4. Audit Filtering Platform Connection позволяет логировать успешные подключения. Используется эта политика аудита довольно редко, т.к. в лог будет писаться очень много событий (потребуется увеличение размеров журнала Event Viewer)
  5. Обновите настройки локальной GPO командой
    gpupdate /force

Такую политику аудита можно включить командой:

Auditpol /set /category:"System" /SubCategory:"Filtering Platform Packet Drop" /failure:enable

Вывести текущие настройки политика аудита Windows Firewall:

auditpol /get /subcategory:"Filtering Platform Packet Drop","Filtering Platform Connection"

Auditpol включить аудит событий брандмауэра Windows

Чтобы посмотреть события Windows Firewall, откройте Event Viewer (
eventvwr.msc
). Разверните Windows Logs -> Security. Включите фильтр событий по категории Filtering Platform Packet Drop.

В списке событий появится все сетевые подключения, заблокированные Windows Firewall. Такие события будут иметь Event ID 5152 (
The Windows Filtering Platform has blocked a packet
). В описании события можно получить сетевую информацию: номер протокола (TCP-6, UDP-17, ICMP-1), IP адрес и порт источника/приемника, направление (Inbound, Outbound), процесс (для исходящих подключений).

Для поиска и фильтрации событий Windows Firewall в Event Viewer можно использовать PowerShell командлет Get-WinEvent. Следующий PowerShell скрипт выполнит поиск всех заблокированных брандмауэром событий (попыток) подключений на порт 3388 и выведет таблицу с временем подключения и источником:

$destinationPort = "3388"
$filterXml = @"
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[System[(EventID=5152)]]
and
*[EventData[Data[@Name='DestPort'] and (Data='$destinationPort')]]
</Select>
</Query>
</QueryList>
"@
$FirewallLogs = @()
$events=Get-WinEvent -FilterXml $filterXml
foreach ($event in $events) {
$eventXml = [xml]$event.ToXml()
$SourceAddress = $eventXml.Event.EventData.Data | Where-Object { $_.Name -eq 'SourceAddress' } | Select-Object -ExpandProperty '#text'
$DestPort = $eventXml.Event.EventData.Data | Where-Object { $_.Name -eq 'DestPort' } | Select-Object -ExpandProperty '#text'
$FirewallLog = New-Object PSObject -Property @{
SourceAddress= $SourceAddress
Time=$event.TimeCreated
DestPort=$DestPort
}
$FirewallLogs += $FirewallLog
}
$FirewallLogs

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

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

Что такое логи и зачем они нужны

Лог — это файл, в который система или приложение записывают информацию о событиях, происходящих во время их работы. Журнал сервера (server log) содержит записи о различных аспектах функционирования сервера: от успешных операций до критических ошибок.

Основные причины использовать логи:

  • Диагностика ошибок. Быстрое обнаружение и устранение сбоев.
  • Мониторинг безопасности. Отслеживание несанкционированного доступа и подозрительной активности.
  • Анализ производительности. Оптимизация ресурсов и улучшение отклика системы.
  • Аудит действий. Контроль изменений и действий пользователей.

Где хранятся логи в системах Windows и Linux

Windows

В Windows логи хранятся в «Просмотре событий». Это встроенная утилита, которая собирает и отображает системные и события приложения.

Как открыть «Просмотр событий»:

  1. Нажмите Win + R и введите eventvwr.msc, нажмите Enter.
  2. В открывшемся окне вы увидите разделы:
    • Журналы Windows: включает в себя системные, приложенческие, установочные и другие логи.
    • Журналы приложений и сервисов: специфические логи для отдельных приложений.

Где хранятся файлы логов. Логи Windows сохраняются в файлах с расширением .evtx и находятся по пути:

C:\Windows\System32\winevt\Logs\

Linux

В Linux системные логи обычно находятся в каталоге /var/log/. Этот каталог содержит множество файлов логов для различных системных компонентов и приложений.

Основные файлы логов:

  • /var/log/syslog или /var/log/messages: общесистемные сообщения.
  • /var/log/auth.log: события аутентификации и безопасности.
  • /var/log/kern.log: сообщения ядра системы.
  • /var/log/dmesg: информация о загрузке системы и аппаратных компонентах.
  • /var/log/apache2/: логи веб-сервера Apache.

Где хранятся логи Nginx

Чтение логов и их анализ

Windows

Использование «Просмотра событий»:

  1. В «Просмотре событий» выберите нужный журнал в левой панели.
  2. В центральной панели отобразятся события с деталями: дата и время, источник, уровень (информация, предупреждение, ошибка).
  3. Двойным щелчком по событию откройте подробную информацию.

Поиск и фильтрация:

  • Используйте функцию «Фильтр текущего журнала» для отображения только необходимых событий.
  • Можно фильтровать по ключевым словам, уровням и источникам событий.

Чтение логов в Linux

Командная строка. Просмотр последних строк лога:

tail -n 100 /var/log/syslog

Реальное время обновления:

tail -f /var/log/syslog

Поиск по ключевому слову:

grep "ошибка" /var/log/syslog

Использование специальных приложений:

less: удобный просмотр больших файлов.

less /var/log/syslog

logwatch: утилита для анализа и создания отчетов по логам.

logwatch --detail High --mailto admin@example.com --service all --range today

Примеры использования логов для решения проблем

Пример 1. Устранение ошибки приложения в Linux

Ситуация. Веб-приложение на сервере перестало отвечать.

Действия. Проверить лог веб-сервера:

tail -n 50 /var/log/apache2/error.log
  1. Найти строки с ошибками и обратить внимание на время события.

Если ошибка связана с базой данных, проверить лог базы:

tail -n 50 /var/log/mysql/error.log
  1. По полученной информации принять меры: перезапустить сервис, исправить конфигурацию или обратиться к разработчикам.

Пример 2. Обнаружение несанкционированного доступа в Windows

Ситуация. Подозрение на взлом учётной записи.

Действия:

  1. В «Просмотре событий» открыть «Журналы Windows» Безопасность.
  2. Фильтровать события по ID 4625 (неудачная попытка входа).
  3. Проанализировать время и частоту попыток, IP-адреса.
  4. При необходимости изменить пароли, настроить политику блокировки и уведомить службу безопасности.

Особенности настройки журналов сервера

Настройка логирования в Linux с помощью syslog

syslog — это системный сервис для обработки и хранения логов.

Конфигурационный файл:

  • /etc/rsyslog.conf: основной файл настроек rsyslog.

Настройка уровня логирования:

  • Измените уровень логирования для определенных сервисов.

Например, чтобы записывать только ошибки:

*.err /var/log/errors.log

Удалённое логирование. Настройте отправку логов на удаленный сервер для централизованного хранения.

*.* @logserver.example.com:514

Настройка логирования в приложениях

  • Уровни логирования: DEBUG, INFO, WARNING, ERROR, CRITICAL.
  • Формат логов. Настройте формат записи для удобства чтения и анализа.
  • Ротация логов. Используйте утилиты вроде logrotate для автоматического архивирования и удаления старых логов.

Инструменты для просмотра и анализа логов

Windows

  • Event Log Explorer — расширенная замена стандартному «Просмотру событий», предоставляющая больше возможностей для поиска, фильтрации и анализа журналов Windows.
  • Microsoft Log Parser — утилита для анализа логов с помощью SQL-подобных запросов, позволяющая быстро извлекать нужные данные из большого объёма журналов.

Linux

  • GoAccess — интерактивный инструмент для анализа веб-логов в реальном времени, который отображает статистику по трафику, запросам и ошибкам прямо в терминале или веб-интерфейсе.
  • Graylog и ELK Stack (Elasticsearch, Logstash, Kibana) — системы для централизованного сбора, хранения и визуализации логов, позволяющие анализировать события, отслеживать аномалии и повышать безопасность инфраструктуры.
  • journald — системный журнал в дистрибутивах с systemd, сохраняющий структурированные логи и поддерживающий удобный поиск по параметрам.

Советы по эффективному использованию логов

  • Регулярный мониторинг. Настройте оповещения при появлении критических ошибок.
  • Автоматизация. Используйте скрипты и инструменты для автоматического анализа и отчётов.
  • Безопасность. Ограничьте доступ к логам, так как они могут содержать конфиденциальную информацию.
  • Оптимизация хранения. Следите за размером логов, чтобы избежать заполнения диска.

Заключение

Логи являются неотъемлемой частью системного администрирования и разработки. Понимание того, где хранятся логи и как их читать, позволяет эффективно решать проблемы, улучшать работу приложений и обеспечивать безопасность систем. Используйте предоставленную информацию и инструменты для углубленного анализа и оптимизации вашей инфраструктуры.

Читайте в блоге:

  • Где хранятся логи Nginx
  • Как установить и настроить веб-сервер Nginx на Ubuntu
  • Шесть способов узнать версию Nginx

Logs are constantly recording what is going on on your computer. They can
provide help in tracking what happens with your machine or with troubleshooting.
Logs are kept about both actions by a person or by a running process.

In Windows, logs that are saved contain information about applications and the
operating system itself. Moreover, these logs are structured and human-readable.
For viewing the logs, Windows uses its Windows Event Viewer. This
application displays the event logs and allows the user to search, filter,
export, and analyze background info. In this article, you will learn how to use
the features provided with this program. In addition, this article will also
explore the Event Viewer’s interface and features. Finally, you will also learn
about other application that has their own event viewer built-in, and we will
talk about creating your own repeating tasks.

Prerequisites

  • Windows 10 installed
  • Administration privileges

Step 1 — Accessing Event Viewer

Event viewer is a standard component and can be accessed in several ways. The
easiest way is to type event viewer to the start menu. If you prefer using
command prompt, you can access it by running the eventvwr command.

Event viewer is also accessible through the control panels. Open the control
panels and list them all by viewing them like small or large icons. After that,
select the Administrative Tools and find Event Viewer in the folder.

The application is user-friendly and provides an intuitive interface. The main
screen is divided into three column sections:

  • Navigation page
  • Detail page
  • Action page

You can also create your own section. We will explain how to do that later in
the tutorial.

Step 2 — Understanding Navigation Page

The navigation page, which is by default positioned on the very left, provides
you with an option to choose the event log to view. Five categories can be found
under Windows logs:

  • System — Logs created by the operating system
  • Application— Logged by an application hosted locally
  • Setup — Logs created in the process of installing or changing the Windows
    installation
  • Security — Logs related to logins, privileges, and other similar events
  • Forwarded Events — Events forwarded by other computers

There is also a category for Applications and Services Logs, which contains
logs of the individual applications and Hardware Events. Logs from PowerShell
and other command lines will also be stored there.

Step 3 — Viewing Log Details On Detail Page

When in the default tab, this page displays the Overview and Summary. Select
some item from the previously mentioned navigation page to see more details.
There are several log levels:

  • Information — Successful action
  • Warning — Occurring of an event that might bring problems
  • Error — Occurring of a significant problem
  • Critical — Severe problem occurred

You can also see Audit successes and failures, which are associated with
security events.

Events are listed chronologically, starting with the latest event on the very
top. You can furthermore click on the columns to edit the order and groupings.

You can click on the event to view more detailed information:

You can learn more about an event by double-clicking it:

Here you can see the name of the log, source, and other information about the
log.

The following popup window also has two tabs, General and Details. The
first tab shows more information about the error as described above. The second
tab shows the raw event data. You can switch between Friendly View and XML
View
.

Step 4 — Using Actions Page

The last page located by default on the right side is the Actions page,
which provides you quick access to the features available to you at the moment.
This page is divided into two parts, the first containing actions available for
the selected Navigation page. The second contains actions available to the
selected event itself.

Various options are available:

Filtering Current Log

Allows you to set criteria for events to be displayed on the Details page.

Clearing Log Events

You can choose this option if the list becomes too large. This will delete all
events stored in the current log. You can check the total number of events by
going to the top directory in the navigation page:

Exporting Log Events

You can click on the Save All Events Asor Save All Events in Custom View As
to export all of the selected events into the special event file with the
.EVTX extension.

Step 5 — Creating Custom Views

Event Viewer gives you the option to create a custom view. To do so, select the
Custom Views folder on the Navigation page and click Create Custom View
on the Actions page. You can, for example, create a custom view for all Windows
Azure events with log level error that occurred in the last 12 hours:

After saving, your new view will now show in the Navigation tab.

You can also export your Custom View. Select it in the Navigation Page and find
an option called Export Custom View on the Actions Page. Enter the name for
the new .XML file you are about to create, and it is done.

You can import the custom view to any other Event Viewer by selecting the option
Import Custom View.

Navigating Summary View

The summary view is the first thing you will come in contact with when opening
the Event Viewer. It is at the top of the Navigation panel.

It includes:

  • Overview
  • Summary of Administrative Events — displays data and totals related to the
    Event Viewer for the past week.
  • Recently Viewed Nodes — history of the viewed nodes filtered
    chronologically while the most recent is at the top. You can double-click on
    the node to open the location.
  • Log Summary — this section displays all of the major properties in each
    log file. Double-click to get more details like the events for the viewed log.

Step 6 — Finding Other Application Logs

There are other logs with their event logging:

  • DNS Manager
  • IIS Access
  • Task Scheduler History
  • Failover Cluster Manager
  • Windows Component Service

DNS Manager

If you run Windows Server that is provisioned as a DNS server, the DNS manager
is available. This manager has its list of events. From there, the DNS manager’s
event viewer works in a similar fashion as the one packed with Windows.

IIS Access

The Internet Information Services logs include info about requested URIs and
statuses. These logs are written in the location specified in the IIS Manager.
By default, the location is:

%SystemDrive%\\inetpub\\logs\\LogFiles

Task Scheduler Library

Task scheduler schedules many sorts of background tasks and applications. The
Task Scheduler Library is associated with it, and you can view it directly from
the application:

From the summary view, you can see the overview, task status, and active tasks.
In the task status, you can view all tasks started in some period.
Double-clicking on the task will give you more information.

In the section underneath, you can see all the active tasks that are currently
enabled and have not expired. Then, by double-clicking on the summary info about
the task, which includes the task name, next run time, triggers, and location,
you can again view more information.

Using this feature, you can display details about every single task and modify
it accordingly. The action page also slightly changes, and a new section for the
selected item is viewed. You can run, end, disable, delete or export information
about the task at your will.

From the action panel, you can also create your own task by selecting the option
Create Basic Task... or adding an existing one with Import Task... After
clicking the first opinion, you are presented with a task creator wizard to add
name, description, triggers, action, and finish statement to your custom task.

Failover Cluster Manager

This is a practical built-in application when running your Windows Server. This
service allows servers to work as a cluster. When one server’s hardware fails,
it is automatically detected and replaced by the other server. All network is
then re-routed to the working instance.

This application also has its local Event Viewer. Using this event viewer, you
can discover more in the events of your clusters failing or not working as
expected.

Windows Component Service

Another application is Windows Component Service Manager. It enables us to
configure DCOM applications on Windows. You can view its logs by clicking on the
local Event Viewer:

Conclusion

Windows and applications installed or associated with the operating system keep
records of various events. Understanding and finding these events can help you
if you are a system administrator, running your Windows server, or even just a
regular user.

Now you should know how to explore and use different methods to use these logs
to your advantage. In addition, you now know how to use the task scheduler and
create your own repeating tasks using it.

Jenda leads Growth at Better Stack. For the past 5 years, Jenda has been writing about exciting learnings from working with hundreds of developers across the world. When he’s not spreading the word about the amazing software built at Better Stack, he enjoys traveling, hiking, reading, and playing tennis.

Got an article suggestion?
Let us know

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

02:15 07.10.2019
Админу на заметку — 26. Как просматривать лог-файл в режиме реального времени в Windows и Linux

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

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

Windows

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

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

Get-Content C:\OpenVPN\log\openvpn.log -Wait

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

Get-Content C:\OpenVPN\log\openvpn.log -Wait -Tail 5

logfile-tail-002.png

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

Get-Content C:\OpenVPN\log\openvpn.log -Wait -Tail 5 > S:\my_log.log

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

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

logfile-tail-003.png

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

read more at Записки IT специалиста

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как запустить скрипт python в windows через командную строку
  • Приложения для смартфона windows 10
  • Минимальные требования для windows 10 ltsb
  • Ati flash bios windows 10
  • Ati radeon hd 5770 драйвера windows 10 64