<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8 from src/site/markdown/metron-deployment/index.md at 2019-05-14
 | Rendered using Apache Maven Fluido Skin 1.7
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20190514" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Metron &#x2013; </title>
    <link rel="stylesheet" href="../css/apache-maven-fluido-1.7.min.css" />
    <link rel="stylesheet" href="../css/site.css" />
    <link rel="stylesheet" href="../css/print.css" media="print" />
    <script type="text/javascript" src="../js/apache-maven-fluido-1.7.min.js"></script>
<script type="text/javascript">
              $( document ).ready( function() { $( '.carousel' ).carousel( { interval: 3500 } ) } );
            </script>
  </head>
  <body class="topBarDisabled">
    <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="http://metron.apache.org/" id="bannerLeft"><img src="../images/metron-logo.png"  alt="Apache Metron" width="148px" height="48px"/></a></div>
        <div class="pull-right"></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
      <li class=""><a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
      <li class=""><a href="http://metron.apache.org/" class="externalLink" title="Metron">Metron</a><span class="divider">/</span></li>
      <li class=""><a href="../index.html" title="Documentation">Documentation</a><span class="divider">/</span></li>
    <li class="active "></li>
        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2019-05-14</li>
          <li id="projectVersion" class="pull-right">Version: 0.7.1</li>
        </ul>
      </div>
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
    <ul class="nav nav-list">
      <li class="nav-header">User Documentation</li>
    <li><a href="../index.html" title="Metron"><span class="icon-chevron-down"></span>Metron</a>
    <ul class="nav nav-list">
    <li><a href="../CONTRIBUTING.html" title="CONTRIBUTING"><span class="none"></span>CONTRIBUTING</a></li>
    <li><a href="../Upgrading.html" title="Upgrading"><span class="none"></span>Upgrading</a></li>
    <li><a href="../metron-analytics/index.html" title="Analytics"><span class="icon-chevron-right"></span>Analytics</a></li>
    <li><a href="../metron-contrib/metron-docker/index.html" title="Docker"><span class="none"></span>Docker</a></li>
    <li><a href="../metron-contrib/metron-performance/index.html" title="Performance"><span class="none"></span>Performance</a></li>
    <li class="active"><a href="#"><span class="icon-chevron-down"></span>Deployment</a>
    <ul class="nav nav-list">
    <li><a href="../metron-deployment/Kerberos-ambari-setup.html" title="Kerberos-ambari-setup"><span class="none"></span>Kerberos-ambari-setup</a></li>
    <li><a href="../metron-deployment/Kerberos-manual-setup.html" title="Kerberos-manual-setup"><span class="none"></span>Kerberos-manual-setup</a></li>
    <li><a href="../metron-deployment/amazon-ec2/index.html" title="Amazon-ec2"><span class="none"></span>Amazon-ec2</a></li>
    <li><a href="../metron-deployment/ansible/index.html" title="Ansible"><span class="icon-chevron-right"></span>Ansible</a></li>
    <li><a href="../metron-deployment/development/index.html" title="Development"><span class="icon-chevron-right"></span>Development</a></li>
    <li><a href="../metron-deployment/other-examples/index.html" title="Other-examples"><span class="icon-chevron-right"></span>Other-examples</a></li>
    <li><a href="../metron-deployment/packaging/ambari/index.html" title="Ambari"><span class="icon-chevron-right"></span>Ambari</a></li>
    <li><a href="../metron-deployment/packaging/docker/ansible-docker/index.html" title="Ansible-docker"><span class="none"></span>Ansible-docker</a></li>
    <li><a href="../metron-deployment/packaging/docker/deb-docker/index.html" title="Deb-docker"><span class="none"></span>Deb-docker</a></li>
    <li><a href="../metron-deployment/packaging/docker/rpm-docker/index.html" title="Rpm-docker"><span class="none"></span>Rpm-docker</a></li>
    <li><a href="../metron-deployment/packaging/packer-build/index.html" title="Packer-build"><span class="none"></span>Packer-build</a></li>
    </ul>
</li>
    <li><a href="../metron-interface/index.html" title="Interface"><span class="icon-chevron-right"></span>Interface</a></li>
    <li><a href="../metron-platform/index.html" title="Platform"><span class="icon-chevron-right"></span>Platform</a></li>
    <li><a href="../metron-sensors/index.html" title="Sensors"><span class="icon-chevron-right"></span>Sensors</a></li>
    <li><a href="../metron-stellar/stellar-3rd-party-example/index.html" title="Stellar-3rd-party-example"><span class="none"></span>Stellar-3rd-party-example</a></li>
    <li><a href="../metron-stellar/stellar-common/index.html" title="Stellar-common"><span class="icon-chevron-right"></span>Stellar-common</a></li>
    <li><a href="../metron-stellar/stellar-zeppelin/index.html" title="Stellar-zeppelin"><span class="none"></span>Stellar-zeppelin</a></li>
    <li><a href="../use-cases/index.html" title="Use-cases"><span class="icon-chevron-right"></span>Use-cases</a></li>
    </ul>
</li>
</ul>
          <hr />
          <div id="poweredBy">
            <div class="clear"></div>
            <div class="clear"></div>
            <div class="clear"></div>
            <div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
            </div>
          </div>
        </div>
        <div id="bodyColumn"  class="span10" >
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<p>This project contains tools for building, packaging, and deploying Apache Metron.  Please refer to the following sections for more information on how to get Apache Metron running in your environment.</p>
<ul>

<li><a href="#How_do_I_deploy_Metron_with_Ambari">How do I deploy Metron with Ambari?</a></li>
<li><a href="#How_do_I_deploy_Metron_on_a_single_VM">How do I deploy Metron on a single VM?</a></li>
<li><a href="#How_do_I_build_RPM_packages">How do I build RPM packages?</a></li>
<li><a href="#How_do_I_build_DEB_packages">How do I build DEB packages?</a></li>
<li><a href="#How_do_I_deploy_Metron_within_AWS">How do I deploy Metron within AWS?</a></li>
<li><a href="#How_do_I_build_Metron_with_Docker">How do I build Metron with Docker?</a></li>
</ul>
<div class="section">
<h2><a name="How_do_I_deploy_Metron_with_Ambari.3F"></a>How do I deploy Metron with Ambari?</h2>
<p>This provides a Management Pack (MPack) extension for <a class="externalLink" href="https://ambari.apache.org/">Apache Ambari</a> that simplifies the provisioning, management and monitoring of Metron on clusters of any size.</p>
<p>This allows you to easily install Metron using a simple, guided process.  This also allows you to monitor cluster health and even secure your cluster with kerberos.</p>
<div class="section">
<div class="section">
<h4><a name="What_is_this_good_for.3F"></a>What is this good for?</h4>
<ul>

<li>

<p>If you want to see how Metron can really scale by deploying it on your own hardware, or even in the cloud, this is the best option for you.</p>
</li>
<li>

<p>If you want to run a proof-of-concept to see how Apache Metron can benefit your organization, then this is the way to do it.</p>
</li>
</ul></div>
<div class="section">
<h4><a name="How.3F"></a>How?</h4>
<p>To deploy Apache Metron using Ambari, follow the instructions at <a href="packaging/ambari/metron-mpack/index.html">packaging/ambari/metron-mpack</a>.</p></div></div></div>
<div class="section">
<h2><a name="How_do_I_deploy_Metron_on_a_single_VM.3F"></a>How do I deploy Metron on a single VM?</h2>
<p>This will deploy Metron and all of its dependencies on a virtual machine running on your computer.</p>
<div class="section">
<div class="section">
<h4><a name="What_is_this_good_for.3F"></a>What is this good for?</h4>
<ul>

<li>

<p>If you are new to Metron and want to explore the functionality that it offers, this is good place to start.</p>
</li>
<li>

<p>If you are a developer contributing to the Apache Metron project, this is also a great way to test your changes.</p>
</li>
</ul></div>
<div class="section">
<h4><a name="What_is_this_not_good_for.3F"></a>What is this <b>not</b> good for?</h4>
<ul>

<li>

<p>This VM is <b>not</b> intended for processing anything beyond the most basic, low volume work loads.</p>
</li>
<li>

<p>Additional services should <b>not</b> be installed along side Metron in this VM.</p>
</li>
<li>

<p>This VM should <b>not</b> be used to run a proof-of-concept for Apache Metron within your organization.</p>
</li>
</ul>
<p>Running Metron within the resource constraints of a single VM is incredibly challenging. Failing to respect this warning, will cause various services to fail mysteriously as the system runs into memory and processing limits.</p></div>
<div class="section">
<h4><a name="How.3F"></a>How?</h4>
<p>To deploy Metron in a VM running on your computer, follow the instructions at <a href="development/centos6/index.html">development/centos6</a>.</p></div>
<div class="section">
<h4><a name="How_do_I_address_services_crashing_when_running_Metron_on_a_single_VM.3F"></a>How do I address services crashing when running Metron on a single VM?</h4>
<p>We recommend looking at Ambari and shutting down any services you may not be using. For example, we recommend turning off Metron Profiler, as this commonly causes REST services to crash when running on a single VM.</p></div></div>
<div class="section">
<h3><a name="Parser_Aggregation_Feature"></a>Parser Aggregation Feature</h3>
<p>The <a href="../metron-platform/metron-parsing/metron-parsing-storm/index.html#Parser_Aggregation">Parser Aggregation</a> feature does not currently exist in the management UI. In order to address resource limitations in the full dev development environments, bro, yaf, and snort have been aggregated into a single parser topology. However, the Management UI is not currently able to display its status until the feature is added. Aggregated parsers can still be created via Ambari and the command line scripts.</p>
<p>Here are some tips for working with parser aggregation while the UI feature is being developed.</p>
<ul>

<li>

<p><b>How are parsers picked up by the UI?:</b> This is based entirely on what is currently stored in the Zookeeper configs. See <a href="../metron-platform/metron-common/index.html#Management_Utility">Management Utility</a> &#x201c;DUMP&#x201d; option with &#x201c;-c PARSER&#x201d; to see all of what is currently loaded. The management UI does not update the configurations stored locally on disk, so Zookeeper is the source of truth.</p>
</li>
<li>

<p><b>Removing an existing aggregation:</b> In the <a class="externalLink" href="http://node1:8080">Ambari UI</a> click on the Metron serice and select &#x201c;Metron Parsers.&#x201d; Select &#x201c;stop&#x201d; from the dropdown for the parser component. Click &#x201c;back,&#x201d; &#x201c;configs,&#x201d; and then navigate to &#x201c;Parsers.&#x201d; In the text field option labeled &#x201c;parsers&#x201d;. Remove the double quotes from around the listed parsers. Save and choose &#x201c;Restart&#x201d; when prompted. This will deploy three individual parsers rather than a single aggregated parser: bro, snort, and yaf. Be aware, you may need to shut down other topologies to free up resources so that you can run the parsers without aggregation. Stopping the profiler, pcap, or batch_indexing are a few options that will still allow data to pass through the system end-to-end.</p>
</li>
<li>

<p><b>Managing parser lifecycle:</b> Starting and stopping parsers in the management UI will in no way affect a parser running as aggregated. The exception to this is if you create a parser via the management UI that has the same name as the aggregation, e.g. &#x201c;bro__snort__yaf.&#x201d; We recommend against this. It will appear as thought you now have the ability to manage the aggregated parser now, but you will only be able to start/stop it.</p>
</li>
<li>

<p><b>Editing parser configuration:</b> In order to modify the aggregated parsers&#x2019; configurations, you will need to first pull all of the configuration from Zookeeper to the local configuration directory by executing the following commands</p>

<div>
<div>
<pre class="source">source /etc/default/metron
$METRON_HOME/bin/zk_load_configs.sh -m PULL -o ${METRON_HOME}/config/zookeeper -z $ZOOKEEPER -f
</pre></div></div>

<p>Make your changes to an individual parser&#x2019;s configuration json, e.g. <tt>${METRON_HOME}/config/zookeeper/parsers/bro.json</tt>, save locally, and then push them back up to Zookeeper</p>

<div>
<div>
<pre class="source">$METRON_HOME/bin/zk_load_configs.sh -m PUSH -i $METRON_HOME/config/zookeeper/ -z $ZOOKEEPER
</pre></div></div>

<p>See <a href="../metron-platform/metron-common/index.html#Management_Utility">Management Utility</a> for more detail.</p>
</li>
<li>

<p><b>Other gotchas:</b> Stop the aggregated parsers in Ambari before removing or adding grouping quotes. Otherwise, you will end up with both the individual parsers and the aggregated topology running concurrently. Ambari only manages the parser topology lifecycle via the current parser name list provided, so changing that list removes Ambari&#x2019;s ability to reference the old topology names.</p>
</li>
</ul></div></div>
<div class="section">
<h2><a name="How_do_I_build_RPM_packages.3F"></a>How do I build RPM packages?</h2>
<p>This provides RPM packages that allow you to install Metron on an RPM-based operating system like CentOS.</p>
<div class="section">
<div class="section">
<h4><a name="What_is_this_good_for.3F"></a>What is this good for?</h4>
<ul>

<li>

<p>If you want to manually install Apache Metron on an RPM-based system like CentOS, installation can be simplified by using these packages.</p>
</li>
<li>

<p>If you want a guided installation process using Ambari on an RPM-based system, then these RPMs are a necessary prerequisite.</p>
</li>
</ul></div>
<div class="section">
<h4><a name="What_is_this_not_good_for.3F"></a>What is this <b>not</b> good for?</h4>
<ul>

<li>If you want a complete, guided installation process, use Ambari rather than just these packages.  Installing Metron using <b>only</b> these RPMs still leaves a considerable amount of configuration necessary to get Metron running.  Installing with Ambari automates these additional steps.</li>
</ul></div>
<div class="section">
<h4><a name="How.3F"></a>How?</h4>
<p>To build the RPM packages, follow the instructions at <a href="packaging/docker/rpm-docker/index.html">packaging/docker/rpm-docker</a>.</p></div></div></div>
<div class="section">
<h2><a name="How_do_I_build_DEB_packages.3F"></a>How do I build DEB packages?</h2>
<p>This builds installable DEB packages that allow you to install Metron on an APT-based operating system like Ubuntu.</p>
<div class="section">
<div class="section">
<h4><a name="What_is_this_good_for.3F"></a>What is this good for?</h4>
<ul>

<li>

<p>If you want to manually install Metron on a APT-based system like Ubuntu, installation can be simplified by using these packages.</p>
</li>
<li>

<p>If you want a guided installation process using Ambari on an APT-based system, then these DEBs are a necessary prerequisite.</p>
</li>
</ul></div>
<div class="section">
<h4><a name="What_is_this_not_good_for.3F"></a>What is this <b>not</b> good for?</h4>
<ul>

<li>If you want a complete, guided installation process, use Ambari rather than just these packages.  Installing Metron using <b>only</b> these RPMs still leaves a considerable amount of configuration necessary to get Metron running.  Installing with Ambari automates these additional steps.</li>
</ul></div>
<div class="section">
<h4><a name="How.3F"></a>How?</h4>
<p>To build the DEB packages, follow the instructions at <a href="packaging/docker/deb-docker/index.html">packaging/docker/deb-docker</a>.</p></div></div></div>
<div class="section">
<h2><a name="How_do_I_deploy_Metron_within_AWS.3F"></a>How do I deploy Metron within AWS?</h2>
<p>This deploys Apache Metron on an automatically provisioned 10-node cluster running in Amazon Web Service&#x2019;s EC2 platform.</p>
<p>This installs real sources of telemetry like Bro, Snort, and YAF, but feeds those sensors with canned pcap data.</p>
<div class="section">
<div class="section">
<h4><a name="What_is_this_good_for.3F"></a>What is this good for?</h4>
<ul>

<li>If you are a Metron developer wanting to test at-scale on a multi-node cluster, then this is the right option for you.</li>
</ul></div>
<div class="section">
<h4><a name="What_is_this_not_good_for.3F"></a>What is this <b>not</b> good for?</h4>
<ul>

<li>

<p>If you want to run Metron in AWS with real data for either testing or production, then this is NOT the right option for you.</p>
</li>
<li>

<p><b>WARNING</b> This is only intended for creating an ephemeral cluster for brief periods of testing.  This deployment method has the following severe limitations.</p>
<ul>

<li>The cluster is not secured in any way. It is up to you to manually secure it.</li>
<li>The cluster will not survive a reboot.</li>
</ul>
</li>
</ul></div>
<div class="section">
<h4><a name="How.3F"></a>How?</h4>
<p>Follow the instructions available at <a href="amazon-ec2/index.html">amazon-ec2</a>.</p></div></div></div>
<div class="section">
<h2><a name="How_do_I_build_Metron_with_Docker.3F"></a>How do I build Metron with Docker?</h2>
<p>This provides a Docker containing all of the prerequisites required to build Metron.  This allows you to easily build Metron without installing all of the build dependencies manually.</p>
<div class="section">
<div class="section">
<h4><a name="What_is_this_good_for.3F"></a>What is this good for?</h4>
<ul>

<li>If you want to build Metron, but do not want to manually install all of the build dependencies, then this is a good option.</li>
</ul></div>
<div class="section">
<h4><a name="How.3F"></a>How?</h4>
<p>Follow the instructions available at <a href="packaging/docker/ansible-docker/index.html">packaging/docker/ansible-docker</a>.</p></div></div></div>
        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
Â© 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo,
            and the Apache Metron project logo are trademarks of The Apache Software Foundation.
        </div>
      </div>
    </footer>
  </body>
</html>
