Как адаптировать модели logpai loglizer для поиска аномалий в логах java приложения?

Ссылка скопирована
1 ответ

Всем привет.
Пытаюсь разобраться в репах 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 для моих логов?

Дополнительно:

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Юрий Linux Ответ

Для адаптации моделей 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)

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 приложения.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно