Skip to content

Commit a91dfcf

Browse files
authored
Merge pull request #62 from awest1339/master
Fix PDF endpoints, add docs
2 parents d60a268 + 44e0d92 commit a91dfcf

35 files changed

+314
-147
lines changed

docs/distributed_multiscanner.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Distributed MultiScanner is intended to solve any combination of these problems
3333
## Architecture ##
3434
This is the current architecture:
3535

36-
![alt text](https://raw.githubusercontent.com/awest1339/multiscanner/celery/docs/distributed_ms_diagram.PNG)
36+
![Distributed MultiScanner Architecture](imgs/distributed_ms_diagram.PNG)
3737

3838
When a sample is submitted (either via the web UI or the REST API), the sample is saved to the distributed file system (GlusterFS), a task is added to the distributed task queue (Celery), and an entry is added to the task management database (PostgreSQL). The worker nodes (Celery clients) all have the GlusterFS mounted, which gives them access to the samples for scanning. In our setup, we colocate the worker nodes with the GlusterFS nodes in order to reduce the network load of workers pulling samples from GlusterFS. When a new task is added to the Celery task queue, one of the worker nodes will pull the task and retrieve the corresponding sample from the GlusterFS via its SHA256 value. The worker node then performs the scanning work. Modules can be enabled / disabled via a configuration file. This configuration file is distributed to the workers by Ansible at setup time (details on this process later). When the worker finishes its scans, it will generate a JSON blob and index it into ElasticSearch for permanent storage. It will then update the task management database with a status of "Complete". The user will then be able view the report via the web interface or retrieve the raw JSON.
3939

docs/imgs/Selection_001.png

33.7 KB
Loading

docs/imgs/Selection_002.png

226 KB
Loading

docs/imgs/Selection_003.png

40.2 KB
Loading

docs/imgs/Selection_004.png

7.37 KB
Loading

docs/imgs/Selection_005.png

12.1 KB
Loading

docs/imgs/Selection_006.png

12.1 KB
Loading

docs/imgs/Selection_007.png

6.84 KB
Loading

docs/imgs/Selection_008.png

4.7 KB
Loading

docs/imgs/Selection_009.png

18.4 KB
Loading

0 commit comments

Comments
 (0)