API для разбора лог-файлов

Я ищу API, который может помочь мне проанализировать файлы журнала, которые я могу вызвать из своего кода C#. Мне не нужен просмотрщик, так как нет необходимости просматривать логи. Синтаксический анализ необходим для генерации данных для приложения машинного обучения. Итак, любой API, который может дать мне список записей, если я укажу путь, достаточно хорош.

Я пытаюсь найти его сам, но все, что я могу найти, это просмотрщики журналов, которые пытаются отображать данные в своем собственном стиле, выполняют много случайной работы, имеют свой собственный интерфейс и архитектуру. Мне нужна только их бизнес-логика, желательно в DLL, если это имеет смысл. Если это в форме веб-сервиса, это тоже работает. Пока я могу сослаться на него, вызвать функцию, передать путь к файлу и получить проанализированные данные в формате JSON или объект.

Как служба/программное обеспечение узнает формат записей журнала? Различные регистраторы регистрируют информацию в очень разных форматах. Например, журнал nginx сильно отличается от журнала Rails .
Я могу заставить пользователя определить формат, используя простой пользовательский интерфейс, и сохранить этот формат в XML или что-то еще. Таким образом, программное обеспечение будет знать путь к серверу (настраиваемый через пользовательский интерфейс), тип журнала и формат журнала.
Итак, вы хотите иметь возможность сообщать службе разбора файла журнала о спецификации файла журнала? «Спецификация» кажется наиболее важной частью услуги, которую вы хотите, поэтому вы все равно пишете всю услугу самостоятельно…
Я знаю. Дело в том, что часть спецификации может измениться, поэтому в основном все, что я ищу, — это класс, который может принимать список параметров и путь к файлу и заботиться о всей синхронности, чтении файлов и управлении журналом USN и т. д. Более или менее Я ищу класс чтения файлов, я думаю.
Да, и, очевидно, если класс может справиться с чтением файла через сетевой диск, это даже лучше. Таким образом, если я передам адрес http или ftp, он все равно сможет прочитать файл, позаботится обо всем, что связано с ошибками сервера и т. д.

Ответы (2)

Splunk

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

Splunk предоставляет метод API для каждой функции. См. Учебное пособие по управлению объектами .

Если вам нужна помощь, задайте вопросы Splunk на Stack Overflow .

Логсташ

Вы можете использовать Logstash — конвейер обработки данных на стороне сервера с открытым исходным кодом, который одновременно принимает данные из множества источников.

Вы можете проверить существующие плагины на GitHub , можете ли вы найти то, что ищете, или вы можете написать свой собственный.