Все прекрасно знают, для чего нужно писать логи. Я выделяю следующие причины:
- для сбора отладочной информации, которая поможет увидеть/понять причины возникшей ошибки/сбоя работы в системе;
- для мониторинга состояния системы, например, для фиксации этапов выполнения фоновых задач;
- для сбора статистической информации о работе системы, например, запись факта вызовов методов сервиса со сбором дополнительной информации, такой как время выполнения запроса, код ошибки, идентификатор клиента и т.д.
Если с чтением/анализом первых двух типов логов в большинстве случаев еще можно справиться обычным текстовым редактором, без дополнительных инструментов, то с 3 типом логов не все так просто. Тут необходима группировка данных, интерактивная фильтрация, построение графиков и диаграмм для лучшего восприятия информации. Из-за этой сложности некоторые не пишут такой вид логов, некоторые пишут, но никогда ими не пользуются, некоторые начинают изобретать утилиты-велосипеды по анализу логов (и в некоторых случаях это очень оправдано), а некоторые используют уже готовые инструменты, как я узнал совсем недавно.
Log Parser
Просматривая ежегодную подборку полезных утилит для разработчиков от Скотта Хансельмана ( Scott Hanselman's 2014 Ultimate Developer and Power Users Tool List for Windows ), которую кстати ооочень рекомендую просмотреть, среди прочих интересных программ открыл для себя Log Parser от Microsoft. О ней можно почитать на хабре и тут, а так же в хэлпе, идущем вместе с утилитой.
Если кратко, то она позволяет с помощью запросов с SQL-синтаксисом выбирать/обрабатывать данные из различных источников ( например, логов ) и сохранять в определенном формате, а так же может строить диаграммы. Имеется масса преднастроенных стандартных форматов, например, для чтения журнала событий, логов IIS, файловой системы, однако, есть возможность читать свой тип лога, в котором значения разделены специальными символами (TSV) или даже написать собственный провайдер исходных данных ( подробнее тут и в последующих статьях, правда там описано создание плагина на VBScript ).
Если кратко, то она позволяет с помощью запросов с SQL-синтаксисом выбирать/обрабатывать данные из различных источников ( например, логов ) и сохранять в определенном формате, а так же может строить диаграммы. Имеется масса преднастроенных стандартных форматов, например, для чтения журнала событий, логов IIS, файловой системы, однако, есть возможность читать свой тип лога, в котором значения разделены специальными символами (TSV) или даже написать собственный провайдер исходных данных ( подробнее тут и в последующих статьях, правда там описано создание плагина на VBScript ).
Анализ лога собственного формата (TSV)
Чтобы выбрать данные из лога собственного формата, надо сначала сообщить парсеру о названии колонок (иначе они будут автоматически названы "Field1", "Field2", ... ). Это можно сделать двумя способами:
- если в файле лога первой строкой идут названия колонок - то headerRow = ON
- если нет - то надо создать файл с такой строкой и указать путь к этому файлу в свойстве iHeaderFile, при этом надо выставить headerRow = OFF, чтобы читались первые строки в файлах логов.
Тип данных в этих колонках он определит самостоятельно по первым dtLines записям в логе. Символ-разделитель задается при помощи свойства iSeparator ( по непонятным причинам парсер отказался понимать знак-разделитель "|", хотя забегая вперед, Log Parser Lizard GUI прекрасно его понял ). И все, задаем входные файлы логов, SQL-запрос и формат выходных данных.
GUI для Log Parser
Очевидно что гораздо удобнее пользоваться этой утилитой будет с помощью вменяемого графического интерфейса. Если погуглить, то можно найти несколько вариантов:
Однако самым лучшим вариантом является условно-бесплатная Log Parser Lizard GUI.
Основные фичи, которые выделил для себя:
- подсвечиваемый синтаксис SQL-запросов с интеллисенсом;
- параллельное выполнение несколько различных запросов;
- осуществление фильтрации и группировки результатов запроса (полезно, например, когда имеется очень много логов для анализа, из которых первоначальным долгим запросом выбирается какой-то базовый набор данных, который дальше надо проанализировать);
- настройка форматирования строк в результатах запроса по условиям;
- мастер построения диаграмм;
- для периодического анализа постоянно пополняемых логов можно задавать файл для хранения промежуточных результатов анализа, которые были получены на предыдущем запуске. Это позволяет значительно ускорить эту процедуру, так как при повторном запуске будут анализироваться только новые записи.
Ограничением бесплатной версии является лишь невозможность экспортировать результаты запроса.
Заключение
С Log Parser и Log Parser Lizard GUI анализ логов превращается в тривиальную задачу, не требующую много времени на решение. Надо лишь заготовить шаблоны форматов/запросов для наиболее часто используемых видов анализа.

Комментариев нет:
Отправить комментарий