Full Development Platform

This project fully automates the provisioning and deployment of Apache Metron and all necessary prerequisites on a single, virtualized host running on Virtualbox.

Metron is composed of many components and installing all of these on a single host, especially a virtualized one, will greatly stress the resources of the host. The host will require at least 8 GB of RAM and a fair amount of patience. It is highly recommended that you shut down all unnecessary services. To that end the vagrant file configuration defaults to disabling solr and yaf.

Getting Started


The computer used to deploy Apache Metron will need to have the following components installed.


Any platform that supports these tools is suitable, but the following instructions cover installation on macOS. The easiest means of installing these tools on a Mac is to use the excellent Homebrew project.

  1. Install Homebrew by following the instructions at Homebrew.

  2. Run the following command in a terminal to install all of the required tools.

    brew cask install vagrant virtualbox java docker
    brew install maven@3.3 git
    pip install ansible==
    vagrant plugin install vagrant-hostmanager
    open /Applications/Docker.app

Deploy Metron

  1. Ensure that the Docker service is running.

  2. Deploy Metron

    cd metron-deployment/vagrant/full-dev-platform
    vagrant up

    Should the process fail before completing the deployment, the following command will continue the deployment process without re-instantiating the host.

    vagrant provision

Explore Metron

Navigate to the following resources to explore your newly minted Apache Metron environment.

Connecting to the host through SSH is as simple as running the following command.

vagrant ssh

Working with Metron

In addition to re-running the entire provisioning play book, you may now re-run an individual Ansible tag or a collection of tags in the following ways. The following commands will re-run the web role on the Vagrant image. This will install components (if necessary) and start the UI.

./run_ansible_role.sh web


vagrant --ansible-tags="web" provision

Using Tags

A collection of tags is specified as a comma separated list.

./run_ansible_role.sh "sensors,enrichment"

Tags are listed in the playbooks, some frequently used tags:

  • hdp-install - Install HDP
  • hdp-deploy - Deploy and Start HDP Services (will start all Hadoop Services)
  • sensors - Deploy and Start Sensors.
  • enrichment - Deploy and Start Enrichment Topology.

Note also that there is a convenience script ./run_enrichment_role.sh which executes Vagrant with the enrichment tag.