
로그 기반 이상 탐지용 머신러닝 툴킷 [ISSRE'16]
Loglizer는 자동 이상 탐지를 위한 머신러닝 기반 로그 분석 툴킷입니다.
Loglizer는 AI 기반 로그 빅데이터 분석 도구로, 자동 이상 탐지, 지능형 장애 진단 등의 시나리오에 사용할 수 있습니다.
로그는 많은 소프트웨어 시스템의 개발 및 유지보수 과정에서 필수적입니다. 로그는 시스템 운영 중의 상세한 런타임 정보를 기록하여 개발자와 지원 엔지니어가 시스템을 모니터링하고 비정상적인 동작과 오류를 추적할 수 있게 해 줍니다. Loglizer는 자동 이상 탐지를 위한 다양한 머신러닝 기반 로그 분석 기법을 구현한 툴킷을 제공합니다.
🔭 연구 논문 게재를 위해 loglizer를 사용하신다면 다음 논문을 인용해 주시기 바랍니다.

이상 탐지를 위한 로그 분석 프레임워크는 일반적으로 다음 구성 요소로 이루어져 있습니다:
현재 사용 가능한 이상 탐지 모델:
연구 목적으로 loghub에 레이블이 지정된 로그 데이터셋 모음을 수집했습니다. 데이터셋에 관심이 있으시면 링크를 따라 액세스 요청을 제출해 주세요.
git clone https://github.com/logpai/loglizer.git
cd loglizer
pip install -r requirements.txt
# Load HDFS dataset. If you would like to try your own log, you need to rewrite the load function.
(x_train, y_train), (x_test, y_test) = dataloader.load_HDFS(...)
# Feature extraction and transformation
feature_extractor = preprocessing.FeatureExtractor()
feature_extractor.fit_transform(...)
# Model training
model = PCA()
model.fit(...)
# Feature transform after fitting
x_test = feature_extractor.transform(...)
# Model evaluation with labeled data
model.evaluate(...)
# Anomaly prediction
x_test = feature_extractor.transform(...)
model.predict(...) # predict anomalies on given data
자세한 내용은 docs의 데모를 따라 시작하세요. 모든 ML 모델은 마법이 아니라는 점에 유의하세요. 자신의 데이터에 적용하려면 파라미터를 튜닝하는 방법을 직접 파악해야 합니다.
다음 결과를 재현하려면 전체 HDFS 데이터셋에서 benchmarks/HDFS_bechmark.py를 실행하세요(HDFS100k는 데모 전용입니다).
질문이나 피드백이 있으시면 이슈 페이지에 게시해 주세요.
| Model | Paper reference |
|---|
| 지도 학습 모델 | |
| LR | [EuroSys'10] Fingerprinting the Datacenter: Automated Classification of Performance Crises, by Peter Bodík, Moises Goldszmidt, Armando Fox, Hans Andersen. [Microsoft] |
| Decision Tree | [ICAC'04] Failure Diagnosis Using Decision Trees, by Mike Chen, Alice X. Zheng, Jim Lloyd, Michael I. Jordan, Eric Brewer. [eBay] |
| SVM | [ICDM'07] Failure Prediction in IBM BlueGene/L Event Logs, by Yinglung Liang, Yanyong Zhang, Hui Xiong, Ramendra Sahoo. [IBM] |
| 비지도 학습 모델 | |
| LOF | [SIGMOD'00] LOF: Identifying Density-Based Local Outliers, by Markus M. Breunig, Hans-Peter Kriegel, Raymond T. Ng, Jörg Sander. |
| One-Class SVM | [Neural Computation'01] Estimating the Support of a High-Dimensional Distribution, by John Platt, Bernhard Schölkopf, John Shawe-Taylor, Alex J. Smola, Robert C. Williamson. |
| Isolation Forest | [ICDM'08] Isolation Forest, by Fei Tony Liu, Kai Ming Ting, Zhi-Hua Zhou. |
| PCA | [SOSP'09] Large-Scale System Problems Detection by Mining Console Logs, by Wei Xu, Ling Huang, Armando Fox, David Patterson, Michael I. Jordan. [Intel] |
| Invariants Mining | [ATC'10] Mining Invariants from Console Logs for System Problem Detection, by Jian-Guang Lou, Qiang Fu, Shengqi Yang, Ye Xu, Jiang Li. [Microsoft] |
| Clustering | [ICSE'16] Log Clustering based Problem Identification for Online Service Systems, by Qingwei Lin, Hongyu Zhang, Jian-Guang Lou, Yu Zhang, Xuewei Chen. [Microsoft] |
| DeepLog (예정) | [CCS'17] DeepLog: Anomaly Detection and Diagnosis from System Logs through Deep Learning, by Min Du, Feifei Li, Guineng Zheng, Vivek Srikumar. |
| AutoEncoder (예정) | [Arxiv'18] Anomaly Detection using Autoencoders in High Performance Computing Systems, by Andrea Borghesi, Andrea Bartolini, Michele Lombardi, Michela Milano, Luca Benini. |
| HDFS |
|---|
| 모델 | 정밀도 | 재현율 | F1 |
| LR | 0.955 | 0.911 | 0.933 |
| Decision Tree | 0.998 | 0.998 | 0.998 |
| SVM | 0.959 | 0.970 | 0.965 |
| LOF | 0.967 | 0.561 | 0.710 |
| One-Class SVM | 0.995 | 0.222 | 0.363 |
| Isolation Forest | 0.830 | 0.776 | 0.802 |
| PCA | 0.975 | 0.635 | 0.769 |
| Invariants Mining | 0.888 | 0.945 | 0.915 |
| Clustering | 1.000 | 0.720 | 0.837 |