Our paper's information can be found here:
- Title: LogTransfer: Robust Log-based Anomaly Detection for Emerging Services
- Authors:
- Paper link: LogTransfer
python 3.6.8
kreas 2.2.4
tensorflow 1.9.0
numpy 1.16.4
scikit-learn 0.21.2
├── checkpoint # Model_checkpoint
├── model # Init train model's checkpoint
├── transfer # Transfer model's checkpoint
├── codes # Code
├── data_processing # Data processing code
├── labels # Label files dir
├── Logs # Training data files dir
├── record # Record dir(for backtracking errors)
├── result # Predict results dir
├── README.md # README file
git clone https://github.com/logtransfergit/LogTransfer.git
cd LogTransfer
pip install -r requirements.txt
cd codes
bash test.sh
- Removing logs which containing keywords and the corresponding labels.
- Script example:
python data_keyword_remove.py --rootdir ../Logs --label_dir ../labels --removal log_in
- | Argument | Type | Default | Description |
|--------------------|------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
rootdir
| str |'../Logs'
| log data dir| |label_dir
| str |'../labels'
| label data dir | |removal
| str |r'logined the switch|logouted from the switch|logout from|logged in from|login from |logged out from|Service=login-UserName'
| keywords to be detect |
- Initially training a model with abundant labeled data.
- Script example:
python models.py --single_step 3 --window_size 20 --rootdir ../Logs --label_dir ../labels/S5/ --vector_path ../Logs/template_vec.dat --selected_switchid_list [30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50]
- | Argument | Type | Default | Description |
|--------------------|------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
window_size
| int |10
| the length of input | |single_step
| int |1
| the step span when choosing train data | |rootdir
| str |'../Logs'
| train data dir | |label_dir
| str |'../labels/'
| label data dir | |vector_path
| str |'../Logs/template_vec.dat'
| pretrained template vector | |selected_switchid_list
| list |[]
| train data file lists |
- Revising the trained model with a small amount of specific data.
- Script example:
python transferlearning.py --single_step 3 --window_size 20 --rootdir ../Logs --label_dir ../labels/B6220/ --vector_path ../Logs/template_vec.dat --selected_switchid_list [1,2,3,4,5]
- | Argument | Type | Default | Description |
|--------------------|------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
window_size
| int |10
| the length of input | |single_step
| int |1
| the step span when choosing train data | |rootdir
| str |'../Logs'
| train data dir| |label_dir
| str |'../labels/B6220/'
| label data dir | |vector_path
| str |'../Logs/template_vec.dat'
| pretrained template vector | |selected_switchid_list
| list |[]
| train data file lists|
- Predicting whether anomalies with trained models and evaluating predictions.
- Script example:
python predict.py --single_step 3 --window_size 20 --rootdir ../Logs --label_dir ../labels/B6220/ --vector_path ../Logs/template_vec.dat --selected_switchid_list [6,7,0] --save_model_dir ../checkpoint/transfer/ --save_result_dir ../result2/ --mode predict
- | Argument | Type | Default | Description |
|--------------------|------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
window_size
| int |10
| the length of input | |single_step
| int |1
| the step span when choosing train data | |rootdir
| str |'../Logs'
| train data dir| |label_dir
| str |'../labels/B6220/'
| label data dir | |vector_path
| str |'../Logs/template_vec.dat'
| pretrained template vector | |selected_switchid_list
| list |[]
| train data file lists | |save_model_dir
| str |'../checkpoint/transfer/'
| model checkpoint dir | |save_result_dir
| str |'../result/'
| save result dir | |mode
| str |'predict'
| choose wether to predict or calculate performance |
- Some tool functions.