Как адаптировать модели logpai loglizer для поиска аномалий в логах java приложения?
Всем привет.
Пытаюсь разобраться в репах https://github.com/logpai. Насколько я понял, самыми важными являются https://github.com/logpai/logparser, который содержит парсеры логов, подготавливающих логи для скармливания моделям из https://github.com/logpai/loglizer. У меня получилось подготовить .log_structured.csv и .log_templates.csv с помощью парсера Drain, используя следующий код:
# Define the log format and regex log_format = '<Date> <Time> <Level>:<Content>' regex = [r'(/|)([0-9]+.){3}[0-9]+(:[0-9]+|)(:|)'] # IP # Define other parameters st = 0.5 depth = 4 parser = LogParser(log_format, indir=input_dir, outdir=output_dir, depth=depth, st=st, rex=regex) |
# Define the log format and regex log_format = '<Date> <Time> <Level>:<Content>' regex = [r'(/|)([0-9]+.){3}[0-9]+(:[0-9]+|)(:|)'] # IP # Define other parameters st = 0.5 depth = 4 parser = LogParser(log_format, indir=input_dir, outdir=output_dir, depth=depth, st=st, rex=regex)
Все демо моделей loglizer используют .log_structured.csv для тренировки. Например, InvariantsMiner_demo.py. Все модели используют dataloader.load_HDFS() для подготовки логов и anomaly_label.csv с маркировкой аномальных и нормальных BlockId в логах и работают только с логами HDFS (Hadoop Distributed File System). Есть возможность загрузить в модель InvariantsMiner логи без использования anomaly_label.csv, а потом проверить их на anomaly_label.csv.
Я попытался использовать dataloader.load_HDFS() для java-логов, в которых есть RID (requestID), который присутствует во всех сообщениях логов, изменив паттерн с
blkId_list = re.findall(r'(blk_-?d+)', row['Content'])
на
blkId_list = re.findall(r'(RID:([w-]+))', row['Content']) в методе load_HDFS(), запустил код и получил вывод:
Total: 196 instances, train: 98 instances, test: 98 instances ====== Transformed train data summary ====== Train data shape: 98-by-34 Train phase: |
Total: 196 instances, train: 98 instances, test: 98 instances ====== Transformed train data summary ====== Train data shape: 98-by-34 Train phase:
после чего код работал почти сутки, но из фазы тренировки так и не вышел.
Прошу помочь разобраться в следующих вопросах:
1. Правильно ли я подготовил логи для loglizer и изменил код loglizer модели для обучения ее на логах java?
2. Как правильно подготовить anomaly_label.csv для моих логов?
Дополнительно:
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для адаптации моделей logpai loglizer для поиска аномалий в логах java приложения, необходимо выполнить следующие шаги:
1. Подготовьте данные: соберите логи вашего java приложения в удобном формате для анализа. Обычно логи представляют собой текстовые файлы с различными уровнями логирования.
2. Установите необходимые библиотеки: для работы с logpai loglizer вам понадобятся библиотеки Python, такие как pandas, numpy, scikit-learn и др. Установите их с помощью pip.
3. Загрузите модели logpai loglizer: скачайте и загрузите предобученные модели logpai loglizer, которые предназначены для анализа логов. Вы можете найти их на официальном сайте logpai.
4. Адаптируйте код для работы с java логами: используйте функции и методы моделей logpai loglizer для анализа и поиска аномалий в ваших java логах. Преобразуйте данные в необходимый формат для подачи их на вход моделям.
Пример кода на Python для адаптации моделей logpai loglizer для поиска аномалий в логах java приложения:
import pandas as pd from loglizer.models import PCA from loglizer import dataloader, preprocessing # Загрузка данных data_dir = 'path_to_your_log_data' x_data, y_data = dataloader.load_data(data_dir) # Предобработка данных feature_extractor = preprocessing.FeatureExtractor() x_data = feature_extractor.fit_transform(x_data) # Обучение модели model = PCA() model.fit(x_data) # Поиск аномалий anomaly_score = model.predict(x_data)
Следуя этим шагам и используя подходящие методы и функции моделей logpai loglizer, вы сможете успешно адаптировать их для поиска аномалий в логах вашего java приложения.