Coder Social home page Coder Social logo

wainermora / diskover Goto Github PK

View Code? Open in Web Editor NEW

This project forked from diskoverdata/diskover-community

0.0 2.0 0.0 27.1 MB

File system crawler, disk space usage, file search engine and file system analytics powered by Elasticsearch

Home Page: https://shirosaidev.github.io/diskover

License: Apache License 2.0

Shell 4.74% Python 95.26%

diskover's Introduction

diskover - File system crawler, disk space usage, storage search engine and analytics powered by Elasticsearch

License Release Sponsor Patreon Donate PayPal

diskover

diskover is an open source file system crawler and disk space usage software that uses Elasticsearch to index and manage data across heterogeneous storage systems. Using diskover, you are able to more effectively search and organize files and system administrators are able to manage storage infrastructure, efficiently provision storage, monitor and report on storage use, and effectively make decisions about new infrastructure purchases.

As the amount of file data generated by business' continues to expand, the stress on expensive storage infrastructure, users and system administrators, and IT budgets continues to grow.

Using diskover, users can identify old and unused files and give better insights into data change, file duplication and wasted space.

diskover is written and maintained by Chris Park (shirosai) and runs on Linux and OS X/macOS using Python 2/3.

diskover diagram

Screenshots

diskover crawler and workerbots running in terminal
diskover crawler diskover worker bot
diskover-web (diskover's web file manager, analytics app, file system search engine, rest-api)
diskover-web dashboard diskover-web file tree diskover-web advanced search diskover-web tags
Kibana dashboards/saved searches/visualizations and support for Gource
kibana-screenshot diskover-gource

diskover Gource videos

gource video gource video

Installation Guide

Requirements

  • Linux or OS X/macOS (tested on OS X 10.11.6, Ubuntu 16.04/18.04)
  • Python 2.7. or Python 3.5./3.6. (tested on Python 2.7.14, 3.5.3, 3.6.4) Python 3 recommended.
  • Python elasticsearch client module
  • Python requests module
  • Python scandir module
  • Python progressbar2 module
  • Python redis module
  • Python rq module
  • Elasticsearch 5 (local or AWS ES Service, tested on Elasticsearch 5.4.2, 5.6.4, 5.6.9) Elasticsearch 6 is not supported yet.
  • Redis (tested on 4.0.8)

Install the above Python modules using pip.

Optional Installs

  • diskover-web (diskover's web file manager and analytics app)
  • Redis RQ Dashboard (for monitoring redis queue)
  • sharesniffer (for scanning your network for file shares and auto-mounting for crawls)
  • Kibana (for visualizing Elasticsearch data, tested on Kibana 5.4.2, 5.6.4)
  • X-Pack (Kibana plugin for graphs, reports, monitoring and http auth)
  • Gource (for Gource visualizations of diskover Elasticsearch data, see videos above)
  • Python qumulo-api module (for using Qumulo storage api, --qumulo cli option, install with pip, Python 2.7. only)

Download

$ git clone https://github.com/shirosaidev/diskover.git
$ cd diskover

Download latest version

OVA image file (for vmware, etc)

If you don't want to set up everything yourself, I have OVA files running the latest version of diskover/diskover-web. Fastest and best way to get up and running with diskover. Sponsoring/donating to the project on Patreon or PayPal gives you access to the OVA downloads.

Requirements

You need to have at least Python 2.7. or Python 3.5. and have installed required Python dependencies using pip.

$ pip install -r requirements.txt

Getting Started

Copy diskover config diskover.cfg.sample to diskover.cfg and edit for your environment.

Start diskover worker bots (a good number might be cores x 2) with:

$ cd /path/with/diskover
$ python diskover_worker_bot.py

Worker bots can be added during a crawl to help with the queue. To run a worker bot in burst mode (quit after all jobs done), use the -b flag. If the queue is empty these bots will die, so use rq info or rq-dashboard to see if they are running. Run diskover-bot-launcher.sh to spawn and kill multiple bots. Bots can be run on any host in the network as long as they have the same nfs/cifs mountpoint as rootdir (-d path) and can connect to ES and Redis (see wiki for more info).

Start diskover main job dispatcher and file tree crawler with:

$ python /path/to/diskover.py -d /rootpath/you/want/to/crawl -i diskover-indexname -a

Defaults for crawl with no flags is to index from . (current directory) and files >0 Bytes and 0 days modified time. Empty files and directores are skipped (unless you use -s 0 and -e flags). Use -h to see cli options.

User Guide

Read the wiki for more documentation on how to use diskover.

Discussions/Questions

For discussions or questions about diskover, please ask on Google Group.

Bugs

For bugs about diskover, please use the issues page.

Sponsor diskover

If you are using diskover and it's helping you save storage space and want me to continue developing it, please consider sponsoring the project on Patreon or PayPal. Thank you so much to all the users and supporters!

License

See the license file.

diskover's People

Contributors

shirosaidev avatar rapphil avatar

Watchers

Wainer Mora avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.