Added: eagle/site/docs/v0.5.0/mkdocs/search_index.json
URL: 
http://svn.apache.org/viewvc/eagle/site/docs/v0.5.0/mkdocs/search_index.json?rev=1789961&view=auto
==============================================================================
--- eagle/site/docs/v0.5.0/mkdocs/search_index.json (added)
+++ eagle/site/docs/v0.5.0/mkdocs/search_index.json Mon Apr  3 11:29:31 2017
@@ -0,0 +1,739 @@
+{
+    "docs": [
+        {
+            "location": "/", 
+            "text": "What is Eagle\n\n\n Apache Eagle \n (incubating) is a 
highly extensible, scalable monitoring and alerting platform, designed with its 
flexible application framework and proven big data technologies, such as Kafka, 
Spark and Storm. It ships a rich set of applications for big data platform 
monitoring, e.g. HDFS/HBase/YARN service health check, JMX metrics, daemon 
logs, audit logs and yarn applications. External Eagle developers can define 
applications to monitoring their NoSQLs or Web Servers, and publish to Eagle 
application repository at your own discretion. It also provides the 
state-of-art alert engine to report security breaches, service failures, and 
application anomalies, highly customizable by the alert policy definition. 
\n\n\n\n\nTerminology\n\n\nSite\n\n\n\n\nA virtual concept in Apache Eagle. You 
can use it to manage a group of application instances, and distinguish the 
applications if you have a certain application installed for multiple 
times.\n\n\n\
 n\nApplication\n\n\n\n\nApplication(or Monitoring Application) is the 
first-class citizen in Apache Eagle, it stands for an end-to-end 
monitoring/alerting solution, which usually contains the monitoring source 
onboarding, source schema specification, alerting policy and dashboard 
definition.\n\n\n\n\nStream\n\n\n\n\nStream is the input for Alert Engine, each 
Application should have its own stream to be defined by the developer. Usually, 
it will have a POJO-like structure included in the stream definition. Once it's 
defined, Application should have the logic to write data into 
Kafka.\n\n\n\n\nData Activity Monitoring\n\n\n\n\nA built-in monitoring 
application to monitor HDFS/HBase/Hive operations, and allow users to define 
certain policies to detect sensitive data access and malicious data operations 
in real-time.\n\n\n\n\nAlert Engine\n\n\n\n\nA specific built-in application 
shared for all other monitoring applications, it reads data from Kafka, and 
processes the data by applying th
 e policy in real-time manner, and generates alert notification. So we call 
this application as the Alert Engine.\n\n\n\n\nPolicy\n\n\n\n\nA rule used by 
Alert Engine to match the data input from Kafka. Policy is defined in 
\nSiddhiQL\n format.\n\n\n\n\nAlert\n\n\n\n\nIf any data input to Alert Engine 
meets the policy, the Alert Engine will generate a message and publish it 
through alert publisher. We call such messages as the alerts.\n\n\n\n\nAlert 
Publisher\n\n\n\n\nIt will publish the alert to external channels which can be 
the SMTP channel, the Kafka channel, Slack channel or other storage 
systems.\n\n\n\n\nKey Qualities\n\n\nExtensible\n\n\n\n\nApache Eagle built its 
core framework around the application concept, application itself includes the 
logic for monitoring source data collection, pre-processing and normalization. 
Developer can easily develop his own out-of-box monitoring applications using 
Eagle's application framework, and deploy into 
Eagle.\n\n\n\n\nScalable\n\n\n\n\n
 The Eagle core team has chosen the proven big data technologies to build its 
fundamental runtime, and apply a scalable core to make it adaptive according to 
the throughput of data stream as well as the number of monitored 
applications.\n\n\n\n\nReal-time\n\n\n\n\nStorm or Spark Streaming based 
computing engine allow us to apply the policy to data stream and generate 
alerts in real-time manner.\n\n\n\n\nDynamic\n\n\n\n\nThe user can freely 
enable or disable a monitoring application without restarting the service. 
Eagle user can dynamically add/delet/change their alert policies without any 
impact to the underlying runtime.\n\n\n\n\nEasy-of-Use\n\n\n\n\nUser can enable 
the monitoring for a service within minutes effort by just choosing the 
corresponding monitoring application and configuring few parameters for the 
service.\n\n\n\n\nNon-Invasive\n\n\n\n\nApache Eagle uses the out-of-box 
applications to monitor services, you don't need any change to your existing 
services.\n\n\n\n\n\n\nU
 se Case Examples\n\n\nData Activity Monitoring\n\n\n\n\n\n\nData activity 
represents how user explores data provided by big data platforms. Analyzing 
data activity and alerting for insecure access are fundamental requirements for 
securing enterprise data. As data volume is increasing exponentially with 
Hadoop, Hive, Spark technology, understanding data activities for every user 
becomes extremely hard, let alone to alert for a single malicious event in real 
time among petabytes streaming data per day.\n\n\n\n\n\n\nSecuring enterprise 
data starts from understanding data activities for every user. Apache Eagle 
(incubating, called Eagle in the following) has integrated with many popular 
big data platforms e.g. Hadoop, Hive, Spark, Cassandra etc. With Eagle user can 
browse data hierarchy, mark sensitive data and then create comprehensive policy 
to alert for insecure data access.\n\n\n\n\n\n\nJob Performance 
Analysis\n\n\n\n\n\n\nRunning map/reduce job is the most popular way people use 
t
 o analyze data in Hadoop system. Analyzing job performance and providing 
tuning suggestions are critical for Hadoop system stability, job SLA and 
resource usage etc.\n\n\n\n\n\n\nEagle analyzes job performance with two 
complementing approaches. First Eagle periodically takes snapshots for all 
running jobs with YARN API, secondly Eagle continuously reads job lifecycle 
events immediately after the job is completed. With the two approaches, Eagle 
can analyze single job's trend, data skew problem, failure reasons etc. More 
interestingly, Eagle can analyze whole Hadoop cluster's performance by taking 
into account all jobs.\n\n\n\n\n\n\nCluster Performance 
Analytics\n\n\n\n\n\n\nIt is critical to understand why a cluster performs bad. 
Is that because of some crazy jobs recently on-boarded, or huge amount of tiny 
files, or namenode performance degrading?\n\n\n\n\n\n\nEagle in realtime 
calculates resource usage per minute out of individual jobs, e.g. CPU, memory, 
HDFS IO bytes, HDFS IO numO
 ps etc. and also collects namenode JMX metrics. Correlating them together will 
easily help system administrator find root cause for cluster 
slowness.\n\n\n\n\n\n\n\n\nDisclaimer\n\n\n\n\nApache Eagle now is being 
incubated, and therefore, across the whole documentation site, all appearances 
of case-insensitive word \neagle\n and \napache eagle\n represent \nApache 
Eagle (incubating)\n. This could be seen as a part of disclaimer.", 
+            "title": "Home"
+        }, 
+        {
+            "location": "/#what-is-eagle", 
+            "text": "Apache Eagle   (incubating) is a highly extensible, 
scalable monitoring and alerting platform, designed with its flexible 
application framework and proven big data technologies, such as Kafka, Spark 
and Storm. It ships a rich set of applications for big data platform 
monitoring, e.g. HDFS/HBase/YARN service health check, JMX metrics, daemon 
logs, audit logs and yarn applications. External Eagle developers can define 
applications to monitoring their NoSQLs or Web Servers, and publish to Eagle 
application repository at your own discretion. It also provides the 
state-of-art alert engine to report security breaches, service failures, and 
application anomalies, highly customizable by the alert policy definition.", 
+            "title": "What is Eagle"
+        }, 
+        {
+            "location": "/#terminology", 
+            "text": "", 
+            "title": "Terminology"
+        }, 
+        {
+            "location": "/#site", 
+            "text": "A virtual concept in Apache Eagle. You can use it to 
manage a group of application instances, and distinguish the applications if 
you have a certain application installed for multiple times.", 
+            "title": "Site"
+        }, 
+        {
+            "location": "/#application", 
+            "text": "Application(or Monitoring Application) is the first-class 
citizen in Apache Eagle, it stands for an end-to-end monitoring/alerting 
solution, which usually contains the monitoring source onboarding, source 
schema specification, alerting policy and dashboard definition.", 
+            "title": "Application"
+        }, 
+        {
+            "location": "/#stream", 
+            "text": "Stream is the input for Alert Engine, each Application 
should have its own stream to be defined by the developer. Usually, it will 
have a POJO-like structure included in the stream definition. Once it's 
defined, Application should have the logic to write data into Kafka.", 
+            "title": "Stream"
+        }, 
+        {
+            "location": "/#data-activity-monitoring", 
+            "text": "A built-in monitoring application to monitor 
HDFS/HBase/Hive operations, and allow users to define certain policies to 
detect sensitive data access and malicious data operations in real-time.", 
+            "title": "Data Activity Monitoring"
+        }, 
+        {
+            "location": "/#alert-engine", 
+            "text": "A specific built-in application shared for all other 
monitoring applications, it reads data from Kafka, and processes the data by 
applying the policy in real-time manner, and generates alert notification. So 
we call this application as the Alert Engine.", 
+            "title": "Alert Engine"
+        }, 
+        {
+            "location": "/#policy", 
+            "text": "A rule used by Alert Engine to match the data input from 
Kafka. Policy is defined in  SiddhiQL  format.", 
+            "title": "Policy"
+        }, 
+        {
+            "location": "/#alert", 
+            "text": "If any data input to Alert Engine meets the policy, the 
Alert Engine will generate a message and publish it through alert publisher. We 
call such messages as the alerts.", 
+            "title": "Alert"
+        }, 
+        {
+            "location": "/#alert-publisher", 
+            "text": "It will publish the alert to external channels which can 
be the SMTP channel, the Kafka channel, Slack channel or other storage 
systems.", 
+            "title": "Alert Publisher"
+        }, 
+        {
+            "location": "/#key-qualities", 
+            "text": "", 
+            "title": "Key Qualities"
+        }, 
+        {
+            "location": "/#extensible", 
+            "text": "Apache Eagle built its core framework around the 
application concept, application itself includes the logic for monitoring 
source data collection, pre-processing and normalization. Developer can easily 
develop his own out-of-box monitoring applications using Eagle's application 
framework, and deploy into Eagle.", 
+            "title": "Extensible"
+        }, 
+        {
+            "location": "/#scalable", 
+            "text": "The Eagle core team has chosen the proven big data 
technologies to build its fundamental runtime, and apply a scalable core to 
make it adaptive according to the throughput of data stream as well as the 
number of monitored applications.", 
+            "title": "Scalable"
+        }, 
+        {
+            "location": "/#real-time", 
+            "text": "Storm or Spark Streaming based computing engine allow us 
to apply the policy to data stream and generate alerts in real-time manner.", 
+            "title": "Real-time"
+        }, 
+        {
+            "location": "/#dynamic", 
+            "text": "The user can freely enable or disable a monitoring 
application without restarting the service. Eagle user can dynamically 
add/delet/change their alert policies without any impact to the underlying 
runtime.", 
+            "title": "Dynamic"
+        }, 
+        {
+            "location": "/#easy-of-use", 
+            "text": "User can enable the monitoring for a service within 
minutes effort by just choosing the corresponding monitoring application and 
configuring few parameters for the service.", 
+            "title": "Easy-of-Use"
+        }, 
+        {
+            "location": "/#non-invasive", 
+            "text": "Apache Eagle uses the out-of-box applications to monitor 
services, you don't need any change to your existing services.", 
+            "title": "Non-Invasive"
+        }, 
+        {
+            "location": "/#use-case-examples", 
+            "text": "", 
+            "title": "Use Case Examples"
+        }, 
+        {
+            "location": "/#data-activity-monitoring_1", 
+            "text": "Data activity represents how user explores data provided 
by big data platforms. Analyzing data activity and alerting for insecure access 
are fundamental requirements for securing enterprise data. As data volume is 
increasing exponentially with Hadoop, Hive, Spark technology, understanding 
data activities for every user becomes extremely hard, let alone to alert for a 
single malicious event in real time among petabytes streaming data per day.    
Securing enterprise data starts from understanding data activities for every 
user. Apache Eagle (incubating, called Eagle in the following) has integrated 
with many popular big data platforms e.g. Hadoop, Hive, Spark, Cassandra etc. 
With Eagle user can browse data hierarchy, mark sensitive data and then create 
comprehensive policy to alert for insecure data access.", 
+            "title": "Data Activity Monitoring"
+        }, 
+        {
+            "location": "/#job-performance-analysis", 
+            "text": "Running map/reduce job is the most popular way people use 
to analyze data in Hadoop system. Analyzing job performance and providing 
tuning suggestions are critical for Hadoop system stability, job SLA and 
resource usage etc.    Eagle analyzes job performance with two complementing 
approaches. First Eagle periodically takes snapshots for all running jobs with 
YARN API, secondly Eagle continuously reads job lifecycle events immediately 
after the job is completed. With the two approaches, Eagle can analyze single 
job's trend, data skew problem, failure reasons etc. More interestingly, Eagle 
can analyze whole Hadoop cluster's performance by taking into account all 
jobs.", 
+            "title": "Job Performance Analysis"
+        }, 
+        {
+            "location": "/#cluster-performance-analytics", 
+            "text": "It is critical to understand why a cluster performs bad. 
Is that because of some crazy jobs recently on-boarded, or huge amount of tiny 
files, or namenode performance degrading?    Eagle in realtime calculates 
resource usage per minute out of individual jobs, e.g. CPU, memory, HDFS IO 
bytes, HDFS IO numOps etc. and also collects namenode JMX metrics. Correlating 
them together will easily help system administrator find root cause for cluster 
slowness.", 
+            "title": "Cluster Performance Analytics"
+        }, 
+        {
+            "location": "/#disclaimer", 
+            "text": "Apache Eagle now is being incubated, and therefore, 
across the whole documentation site, all appearances of case-insensitive word  
eagle  and  apache eagle  represent  Apache Eagle (incubating) . This could be 
seen as a part of disclaimer.", 
+            "title": "Disclaimer"
+        }, 
+        {
+            "location": "/getting-started/", 
+            "text": "Architecture\n\n\n\n\nEagle 
Apps\n\n\n\n\nSecurity\n\n\nHadoop\n\n\nOperational Intelligence\n\n\n\n\nFor 
more applications, see \nApplications\n.\n\n\nEagle Interface\n\n\n\n\nREST 
Service\n\n\nManagement UI\n\n\nCustomizable Analytics 
Visualization\n\n\n\n\nEagle Integration\n\n\n\n\nApache 
Ambari\n\n\nDocker\n\n\nApache Ranger\n\n\nDataguise\n\n\n\n\nEagle 
Framework\n\n\nEagle has multiple distributed real-time frameworks for 
efficiently developing highly scalable monitoring applications.\n\n\nAlert 
Engine\n\n\n\n\n\n\nReal-time: Apache Storm (Execution Engine) + Kafka (Message 
Bus)\n\n\n\n\nDeclarative Policy: SQL (CEP) on Streaming\n        from 
hadoopJmxMetricEventStream\n        [metric == 
\"hadoop.namenode.fsnamesystemstate.capacityused\" and value \n 0.9] \n        
select metric, host, value, timestamp, component, site \n        insert into 
alertStream;\n\n\n\n\n\n\nDynamical onboarding \n correlation\n\n\n\n\nNo 
downtime migration and upgrading\n\n\n\n
 \nStorage Engine\n\n\n\n\n\n\n\n\nLight-weight ORM Framework for 
HBase/RDMBS\n\n\n@Table(\"HbaseTableName\")\n@ColumnFamily(\"ColumnFamily\")\n@Prefix(\"RowkeyPrefix\")\n@Service(\"UniqueEntitytServiceName\")\n@JsonIgnoreProperties(ignoreUnknown
 = true)\n@TimeSeries(false)\n@Indexes({\n    
@Index(name=\"Index_1_alertExecutorId\", columns = { \"alertExecutorID\" }, 
unique = true)})\npublic class AlertDefinitionAPIEntity extends 
TaggedLogAPIEntity{\n@Column(\"a\")\nprivate String 
desc;\n\n\n\n\n\n\n\nFull-function SQL-Like REST Query 
\n\n\nQuery=UniqueEntitytServiceName[@site=\"sandbox\"]{*}\n\n\n\n\n\n\n\nOptimized
 Rowkey design for time-series data, optimized for metric/entity/log, etc. 
different storage types\n\n\nRowkey ::= Prefix | Partition Keys | timestamp | 
tagName | tagValue | \u2026\n\n\n\n\n\n\n\nSecondary Index Support\n        
@Indexes(, unique = true/false)})\n\n\n\n\n\n\nNative HBase Coprocessor\n       
 org.apache.eagle.storage.hbase.query.coprocessor.AggregateProtocol
 EndPoint\n\n\n\n\n\n\nUI Framework\n\n\nEagle UI is consist of following 
parts:\n\n\n\n\nEagle Main UI\n\n\nEagle App 
Portal/Dashboard/Widgets\n\n\nEagle Customized Dashboard \n\n\n\n\nApplication 
Framework\n\n\nApplication\n\n\nAn \"Application\" or \"App\" is composed of 
data integration, policies and insights for one data source.\n\n\nApplication 
Descriptor\n\n\nAn \"Application Descriptor\" is a static packaged metadata 
information consist of basic information like type, name, version, description, 
and application process, configuration, streams, docs, policies and so on. 
\n\n\nHere is an example ApplicationDesc of \nJPM_WEB_APP\n\n\n    {\n    type: 
\"JPM_WEB_APP\",\n    name: \"Job Performance Monitoring Web \",\n    version: 
\"0.5.0-incubating\",\n    description: null,\n    appClass: 
\"org.apache.eagle.app.StaticApplication\",\n    jarPath: 
\"/opt/eagle/0.5.0-incubating-SNAPSHOT-build-20161103T0332/eagle-0.5.0-incubating-SNAPSHOT/lib/eagle-topology-0.5.0-incubating-SNAPSHOT-
 hadoop-2.4.1-11-assembly.jar\",\n    viewPath: \"/apps/jpm\",\n    
providerClass: \"org.apache.eagle.app.jpm.JPMWebApplicationProvider\",\n    
configuration: {\n        properties: [{\n            name: \"service.host\",\n 
           displayName: \"Eagle Service Host\",\n            value: 
\"localhost\",\n            description: \"Eagle Service Host, default: 
localhost\",\n            required: false\n        }, {\n            name: 
\"service.port\",\n            displayName: \"Eagle Service Port\",\n           
 value: \"8080\",\n            description: \"Eagle Service Port, default: 
8080\",\n            required: false\n        }]\n    },\n    streams: null,\n  
  docs: null,\n    executable: false,\n    dependencies: [{\n        type: 
\"MR_RUNNING_JOB_APP\",\n        version: \"0.5.0-incubating\",\n        
required: true\n    }, {\n        type: \"MR_HISTORY_JOB_APP\",\n        
version: \"0.5.0-incubating\",\n        required: true\n    }]\n    
}\n\n\n\nApplication Provider\n\n\n
 Appilcation Provider is a package management and loading mechanism leveraging 
\nJava SPI\n.\n\n\nFor example, in file 
\nMETA-INF/services/org.apache.eagle.app.spi.ApplicationProvider\n, place the 
full class name of an application 
provider:\n\n\norg.apache.eagle.app.jpm.JPMWebApplicationProvider\n\n\n\n\n\nConcepts\n\n\n\n\nHere
 are some terms we are using in Apache Eagle (incubating, called Eagle in the 
following), please check them for your reference. They are basic knowledge of 
Eagle which also will help to well understand Eagle.\n\n\n\n\nSite\n\n\n\n\nA 
site can be considered as a physical data center. Big data platform e.g. Hadoop 
may be deployed to multiple data centers in an 
enterprise.\n\n\n\n\nApplication\n\n\n\n\nAn \"Application\" or \"App\" is 
composed of data integration, policies and insights for one data 
source.\n\n\n\n\nPolicy\n\n\n\n\nA \"Policy\" defines the rule to alert. Policy 
can be simply a filter expression or a complex window based aggregation rules 
etc.\n\n\
 n\n\nAlerts\n\n\n\n\nAn \"Alert\" is an real-time event detected with certain 
alert policy or correlation logic, with different severity levels like 
INFO/WARNING/DANGER.\n\n\n\n\nData Source\n\n\n\n\nA \"Data Source\" is a 
monitoring target data. Eagle supports many data sources HDFS audit logs, Hive2 
query, MapReduce job etc.\n\n\n\n\nStream\n\n\n\n\nA \"Stream\" is the 
streaming data from a data source. Each data source has its own 
stream.\n\n\n\n\n\n\nQuick Start\n\n\nDeployment\n\n\nPrerequisites\n\n\nEagle 
requires the following dependencies:\n\n\n\n\nFor streaming platform 
dependencies\n\n\nStorm: 0.9.3 or later\n\n\nHadoop: 2.6.x or later\n\n\nHbase: 
0.98.x or later\n\n\nKafka: 0.8.x or later\n\n\nZookeeper: 3.4.6 or 
later\n\n\nJava: 1.8.x\n\n\n\n\n\n\nFor metadata database dependencies (Choose 
one of them)\n\n\nMangoDB 3.2.2 or later\n\n\nInstallation is 
required\n\n\n\n\n\n\nMysql 5.1.x or later\n\n\nInstallation is 
required\n\n\n\n\n\n\n\n\n\n\n\n\nNotice:  \n\n\n\n\nStorm
  0.9.x does NOT support JDK8. You can replace asm-4.0.jar with asm-all-5.0.jar 
in the storm lib directory. \nThen restart other 
services(nimbus/ui/supervisor).\n\n\n\n\n\nInstallation\n\n\nBuild 
Eagle\n\n\n\n\n\n\nDownload the latest version of Eagle source code.\n\n\ngit 
clone https://github.com/apache/incubator-eagle.git\n\n\n\n\n\n\n\nBuild the 
source code, and a tar.gz package will be generated under 
eagle-server-assembly/target\n\n\nmvn clean install 
-DskipTests\n\n\n\n\n\n\n\nDeploy Eagle\n\n\n\n\nCopy binary package to your 
server machine. In the package, you should find:\n\n\nbin/\n: scripts used for 
start eagle server\n\n\nconf/\n: default configurations for eagle server 
setup.\n\n\nlib/\n : all included software packages for eagle 
server\n\n\n\n\n\n\nChange configurations under 
\nconf/\n\n\neagle.conf\n\n\nserver.yml\n\n\n\n\n\n\n\n\nRun 
eagle-server.sh\n\n\n./bin/eagle-server.sh start\n\n\n\n\n\n\n\nCheck eagle 
server\n\n\n\n\nVisit http://host:port/ in your web browser.\
 n\n\n\n\n\n\n\n\nSetup Your Monitoring Case\n\n\nPlaceholder for topic: Setup 
Your Monitoring Case", 
+            "title": "Getting Started"
+        }, 
+        {
+            "location": "/getting-started/#architecture", 
+            "text": "", 
+            "title": "Architecture"
+        }, 
+        {
+            "location": "/getting-started/#eagle-apps", 
+            "text": "Security  Hadoop  Operational Intelligence   For more 
applications, see  Applications .", 
+            "title": "Eagle Apps"
+        }, 
+        {
+            "location": "/getting-started/#eagle-interface", 
+            "text": "REST Service  Management UI  Customizable Analytics 
Visualization", 
+            "title": "Eagle Interface"
+        }, 
+        {
+            "location": "/getting-started/#eagle-integration", 
+            "text": "Apache Ambari  Docker  Apache Ranger  Dataguise", 
+            "title": "Eagle Integration"
+        }, 
+        {
+            "location": "/getting-started/#eagle-framework", 
+            "text": "Eagle has multiple distributed real-time frameworks for 
efficiently developing highly scalable monitoring applications.", 
+            "title": "Eagle Framework"
+        }, 
+        {
+            "location": "/getting-started/#alert-engine", 
+            "text": "Real-time: Apache Storm (Execution Engine) + Kafka 
(Message Bus)   Declarative Policy: SQL (CEP) on Streaming\n        from 
hadoopJmxMetricEventStream\n        [metric == 
\"hadoop.namenode.fsnamesystemstate.capacityused\" and value   0.9] \n        
select metric, host, value, timestamp, component, site \n        insert into 
alertStream;    Dynamical onboarding   correlation   No downtime migration and 
upgrading", 
+            "title": "Alert Engine"
+        }, 
+        {
+            "location": "/getting-started/#storage-engine", 
+            "text": "Light-weight ORM Framework for HBase/RDMBS  
@Table(\"HbaseTableName\")\n@ColumnFamily(\"ColumnFamily\")\n@Prefix(\"RowkeyPrefix\")\n@Service(\"UniqueEntitytServiceName\")\n@JsonIgnoreProperties(ignoreUnknown
 = true)\n@TimeSeries(false)\n@Indexes({\n    
@Index(name=\"Index_1_alertExecutorId\", columns = { \"alertExecutorID\" }, 
unique = true)})\npublic class AlertDefinitionAPIEntity extends 
TaggedLogAPIEntity{\n@Column(\"a\")\nprivate String desc;    Full-function 
SQL-Like REST Query   Query=UniqueEntitytServiceName[@site=\"sandbox\"]{*}    
Optimized Rowkey design for time-series data, optimized for metric/entity/log, 
etc. different storage types  Rowkey ::= Prefix | Partition Keys | timestamp | 
tagName | tagValue | \u2026    Secondary Index Support\n        @Indexes(, 
unique = true/false)})    Native HBase Coprocessor\n        
org.apache.eagle.storage.hbase.query.coprocessor.AggregateProtocolEndPoint", 
+            "title": "Storage Engine"
+        }, 
+        {
+            "location": "/getting-started/#ui-framework", 
+            "text": "Eagle UI is consist of following parts:   Eagle Main UI  
Eagle App Portal/Dashboard/Widgets  Eagle Customized Dashboard", 
+            "title": "UI Framework"
+        }, 
+        {
+            "location": "/getting-started/#application-framework", 
+            "text": "", 
+            "title": "Application Framework"
+        }, 
+        {
+            "location": "/getting-started/#application", 
+            "text": "An \"Application\" or \"App\" is composed of data 
integration, policies and insights for one data source.", 
+            "title": "Application"
+        }, 
+        {
+            "location": "/getting-started/#application-descriptor", 
+            "text": "An \"Application Descriptor\" is a static packaged 
metadata information consist of basic information like type, name, version, 
description, and application process, configuration, streams, docs, policies 
and so on.   Here is an example ApplicationDesc of  JPM_WEB_APP      {\n    
type: \"JPM_WEB_APP\",\n    name: \"Job Performance Monitoring Web \",\n    
version: \"0.5.0-incubating\",\n    description: null,\n    appClass: 
\"org.apache.eagle.app.StaticApplication\",\n    jarPath: 
\"/opt/eagle/0.5.0-incubating-SNAPSHOT-build-20161103T0332/eagle-0.5.0-incubating-SNAPSHOT/lib/eagle-topology-0.5.0-incubating-SNAPSHOT-hadoop-2.4.1-11-assembly.jar\",\n
    viewPath: \"/apps/jpm\",\n    providerClass: 
\"org.apache.eagle.app.jpm.JPMWebApplicationProvider\",\n    configuration: {\n 
       properties: [{\n            name: \"service.host\",\n            
displayName: \"Eagle Service Host\",\n            value: \"localhost\",\n       
     description: \"Eagle Service Host, de
 fault: localhost\",\n            required: false\n        }, {\n            
name: \"service.port\",\n            displayName: \"Eagle Service Port\",\n     
       value: \"8080\",\n            description: \"Eagle Service Port, 
default: 8080\",\n            required: false\n        }]\n    },\n    streams: 
null,\n    docs: null,\n    executable: false,\n    dependencies: [{\n        
type: \"MR_RUNNING_JOB_APP\",\n        version: \"0.5.0-incubating\",\n        
required: true\n    }, {\n        type: \"MR_HISTORY_JOB_APP\",\n        
version: \"0.5.0-incubating\",\n        required: true\n    }]\n    }", 
+            "title": "Application Descriptor"
+        }, 
+        {
+            "location": "/getting-started/#application-provider", 
+            "text": "Appilcation Provider is a package management and loading 
mechanism leveraging  Java SPI .  For example, in file  
META-INF/services/org.apache.eagle.app.spi.ApplicationProvider , place the full 
class name of an application provider:  
org.apache.eagle.app.jpm.JPMWebApplicationProvider", 
+            "title": "Application Provider"
+        }, 
+        {
+            "location": "/getting-started/#concepts", 
+            "text": "Here are some terms we are using in Apache Eagle 
(incubating, called Eagle in the following), please check them for your 
reference. They are basic knowledge of Eagle which also will help to well 
understand Eagle.", 
+            "title": "Concepts"
+        }, 
+        {
+            "location": "/getting-started/#site", 
+            "text": "A site can be considered as a physical data center. Big 
data platform e.g. Hadoop may be deployed to multiple data centers in an 
enterprise.", 
+            "title": "Site"
+        }, 
+        {
+            "location": "/getting-started/#application_1", 
+            "text": "An \"Application\" or \"App\" is composed of data 
integration, policies and insights for one data source.", 
+            "title": "Application"
+        }, 
+        {
+            "location": "/getting-started/#policy", 
+            "text": "A \"Policy\" defines the rule to alert. Policy can be 
simply a filter expression or a complex window based aggregation rules etc.", 
+            "title": "Policy"
+        }, 
+        {
+            "location": "/getting-started/#alerts", 
+            "text": "An \"Alert\" is an real-time event detected with certain 
alert policy or correlation logic, with different severity levels like 
INFO/WARNING/DANGER.", 
+            "title": "Alerts"
+        }, 
+        {
+            "location": "/getting-started/#data-source", 
+            "text": "A \"Data Source\" is a monitoring target data. Eagle 
supports many data sources HDFS audit logs, Hive2 query, MapReduce job etc.", 
+            "title": "Data Source"
+        }, 
+        {
+            "location": "/getting-started/#stream", 
+            "text": "A \"Stream\" is the streaming data from a data source. 
Each data source has its own stream.", 
+            "title": "Stream"
+        }, 
+        {
+            "location": "/getting-started/#quick-start", 
+            "text": "", 
+            "title": "Quick Start"
+        }, 
+        {
+            "location": "/getting-started/#deployment", 
+            "text": "", 
+            "title": "Deployment"
+        }, 
+        {
+            "location": "/getting-started/#prerequisites", 
+            "text": "Eagle requires the following dependencies:   For 
streaming platform dependencies  Storm: 0.9.3 or later  Hadoop: 2.6.x or later  
Hbase: 0.98.x or later  Kafka: 0.8.x or later  Zookeeper: 3.4.6 or later  Java: 
1.8.x    For metadata database dependencies (Choose one of them)  MangoDB 3.2.2 
or later  Installation is required    Mysql 5.1.x or later  Installation is 
required       Notice:     Storm 0.9.x does NOT support JDK8. You can replace 
asm-4.0.jar with asm-all-5.0.jar in the storm lib directory. \nThen restart 
other services(nimbus/ui/supervisor).", 
+            "title": "Prerequisites"
+        }, 
+        {
+            "location": "/getting-started/#installation", 
+            "text": "", 
+            "title": "Installation"
+        }, 
+        {
+            "location": "/getting-started/#build-eagle", 
+            "text": "Download the latest version of Eagle source code.  git 
clone https://github.com/apache/incubator-eagle.git    Build the source code, 
and a tar.gz package will be generated under eagle-server-assembly/target  mvn 
clean install -DskipTests", 
+            "title": "Build Eagle"
+        }, 
+        {
+            "location": "/getting-started/#deploy-eagle", 
+            "text": "Copy binary package to your server machine. In the 
package, you should find:  bin/ : scripts used for start eagle server  conf/ : 
default configurations for eagle server setup.  lib/  : all included software 
packages for eagle server    Change configurations under  conf/  eagle.conf  
server.yml     Run eagle-server.sh  ./bin/eagle-server.sh start    Check eagle 
server   Visit http://host:port/ in your web browser.", 
+            "title": "Deploy Eagle"
+        }, 
+        {
+            "location": "/getting-started/#setup-your-monitoring-case", 
+            "text": "Placeholder for topic: Setup Your Monitoring Case", 
+            "title": "Setup Your Monitoring Case"
+        }, 
+        {
+            "location": "/using-eagle/", 
+            "text": "Manage Eagle and Services\n\n\n\n\n\n\nAfter Apache Eagle 
has been deployed (please reference \ndeployment\n), you can enter deployment 
directory and use commands below to control Apache Eagle 
Server.\n\n\n./bin/eagle-server.sh start|stop|status\n\n\n\n\n\n\n\nAfter 
starting the Eagle server, please type http://\n:\n/ to open the web ui of 
Eagle.\n\n\n\n\n\n\n\n\nUse Eagle Web Interface\n\n\n\n\n\n\nThis is the 
typical Web Interface (short for WI) after setting up your Eagle monitoring 
environment. WI majorly contain the right main panel and left function 
menu.\n\n\n\n\n\n\n\n\nHome\n\n\n\n\n\n\nThis is the aggregated UI for 
configured sites, and the applications. It will show those created sites 
created, how many application installed for each sites, and alerts generated 
from that cluster. You can click \u201cMore info\u201d link to view the details 
for particular site.\n\n\n\n\n\n\nThe \u201c\nWidgets\n\u201d section is 
customizable; if the application develop
 er have its application registered to Home page, you can find that in 
\u201c\nWidgets\n\u201d section. Please check the application developer guide 
about how to register applications to home widgets. It give you a shortcut to 
go directly to the application home.\n\n\n\n\n\n\nAlert\n\n\n\n\nIn Alert menu, 
you can define the policies, list the policies and check your alerts there. 
\n\n\n\n\nIntegration\n\n\n\n\nThe integration page provides the management 
functionality for Eagle. You can list the built-in applications there, create 
sites, and manage the applications in your site.\n\n\n\n\nSites\n\n\n\n\nIt 
also gives you a shortcut to particular site.\n\n\n\n\n\n\nSetup The Monitoring 
Application\n\n\nMonitoring Applications\n\n\n\n\n\n\nEagle has an extensible 
framework to dynamically add new monitoring applications in Eagle environment. 
It also ships some built-in big data monitoring applications.\n\n\n\n\n\n\nGo 
to \u201c\nIntegration\n\u201d -\n \u201c\nApplications\n\u201d, it wi
 ll list a set of available monitoring applications which you can choose to 
monitor your services.\n\n\n\n\n\n\n\n\nThe \u201c\nApplication\n\u201d column 
is the display name for an application, \u201c\nStreams\n\u201d is a logical 
name for the data stream from the monitored source after pre-processing, which 
will consumed by Alert Engine.\n\n\n\n\n\n\nAt the moment, we have the below 
built-in applications shipped with Apache Eagle. You can refer to the 
application documentation to understand how to do the configuration for each 
monitoring 
application.\n\n\n\n\n\n\n\n\nApplication\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\nTopology
 Health Check\n\n\nThis application can be used to monitor the service 
healthiness for HDFS, HBase and YARN. You can get alerted once the master role 
or the slave role got crashed.\n\n\n\n\n\n\nHadoop JMX Metrics 
Monitoring\n\n\nThis application can be used to monitor the JMX metrics data 
from the master nodes of HDFS, HBase and YARN, e.g. NameNode, HBase Master
  and YARN Resource Manager.\n\n\n\n\n\n\nHDFS Audit Log Monitor\n\n\nThis 
application can be used to monitor the data operations in HDFS, to detect 
sensitive data access and malicious operations; to protect from data leak or 
data loss.\n\n\n\n\n\n\nHBase Audit Log Monitor\n\n\nSame as HDFS Audit Log 
Monitor, this application is used to monitor the data operations in 
HBase.\n\n\n\n\n\n\nMap Reduce History Job\n\n\nThis application is used to get 
the MapReduce history job counters from YARN history server and job running 
history from HDFS log directory.\n\n\n\n\n\n\nMap Reduce Running Job\n\n\nThis 
application is used to get the MapReduce running job counter information using 
YARN Rest API.\n\n\n\n\n\n\nHadoop Queue Monitor\n\n\nThis application is used 
to get the resource scheduling and utilization info from YARN.\n\n\n\n\n\n\nMR 
Metrics Aggregation\n\n\nThis application is used to aggregate the job counters 
and some resource utilization in a certain period of time (daily, weekly or 
 monthly).\n\n\n\n\n\n\nJob Performance Monitor Web\n\n\nThis application only 
contains the frontend, and depends on Map Reduce History Job and Map Reduce 
Running Job.\n\n\n\n\n\n\nAlert Engine\n\n\nAlert Engine is a special 
application and used to process the output data from other 
applications.\n\n\n\n\n\n\n\n\n\n\n\n\nManaging Sites\n\n\nTo enable a real 
monitoring use case, you have to create a site first, and install a certain 
application for this site, and finally start the application. We use site 
concept to group the running applications and avoid the application 
conflict.\n\n\nSites\n\n\n\n\n\n\nGo to \u201c\nIntegration\n\u201d -\n 
\u201c\nSites\n\u201d, there will be a table listing the managed 
sites.\n\n\n\n\n\n\n\n\nCreate Site\n\n\n\n\n\n\nClick \u201c\nNew Site\n\u201d 
on the bottom right of the Sites page. You can fill the information in site 
creation dialog.\n\n\n\n\n\n\n\n\nThe \u201c\nSite Id\n\u201d should not be 
duplicated. After the creation, you can find it in 
 sites page.\n\n\n\n\n\n\n\n\nConfiguring a Site\n\n\n\n\n\n\nBy clicking 
\u201c\nEdit\n\u201d button or the Site column in Sites table, you can have the 
Site configuration page, there you can install monitoring 
applications.\n\n\n\n\n\n\n\n\nInstall and Run Applications in 
Site\n\n\n\n\n\n\nChoose the particular application which you want to install, 
you probably have something to fill, e.g. the HDFS NameNode address, Zookeeper 
address and port. Please check each application documentation for how to 
configure each application. \n\n\n\n\n\n\nAfter doing the installation, you can 
start the application by clicking \n or stop the application by \n. You can 
check the \u201c\nStatus\n\u201d column about the running status. Usually, it 
should have \u201c\nINITIALIZED\n\u201d or \u201c\nRUNNING\n\u201d for a 
healthy application.\n\n\n\n\n\n\n\n\nDefine Policies\n\n\nAfter setting up the 
monitoring applications, you probably want to setup some alert policies against 
the monitored data, so yo
 u can get notified once any violation on the data. Eagle has a centralized 
place for policy definition.\n\n\nPolicies\n\n\n\n\n\n\nGo to 
\u201c\nAlert\n\u201d -\n \u201c\nPolicies\n\u201d, you can check the policies 
defined and take control on whether to enable the policy:\n\n\n\n\n\n\n\n\nYou 
can apply the below actions for a certain policy:\n\n\n\n\n\n\n: enable a 
policy\n\n\n\n\n\n\n: disable a policy\n\n\n\n\n\n\n: edit a 
policy\n\n\n\n\n\n\n: purge a policy\n\n\n\n\n\n\n\n\n\n\nDefine or Edit 
Policies\n\n\n\n\n\n\nIf you want to create a new policy, click 
\u201c\nAlert\n\u201d -\n \u201c\nDefine Policy\n\u201d, or you can enter into 
the policy definition page by editing an existing policy. After that, you can 
go to the policy list to enable the policy dynamically.\n\n\n\n\n\n\n\n\nSource 
Stream\n\n\n\n\nThe source stream gives user a full view about what data stream 
is available for application defined for particular site, as well as the data 
structures in each data stream. Dat
 a stream name is suffixed by the site name.\n\n\n\n\nPolicy Name\n\n\n\n\nThe 
policy name should be globally unique.\n\n\n\n\nPublish Alerts\n\n\n\n\n\n\nIn 
this section, you can define the alert publishment method by clicking the 
\u201c\n+Add Publisher\n\u201d.\n\n\n\n\n\n\n\n\nYou can choose the publishment 
method from an existing policy or by creating new publisher. 
\n\n\n\n\n\n\nThere are four built-in publisher 
types:\n\n\n\n\n\n\nEmailPublisher\n: 
org.apache.eagle.alert.engine.publisher.impl.AlertEmailPublisher\n\n\n\n\n\n\nKafkaPublisher\n:
 
org.apache.eagle.alert.engine.publisher.impl.AlertKafkaPublisher\n\n\n\n\n\n\nSlackPublisher\n:
 
org.apache.eagle.alert.engine.publisher.impl.AlertSlackPublisher\n\n\n\n\n\n\nEagleStoragePlugin\n:
 
org.apache.eagle.alert.engine.publisher.impl.AlertEagleStoragePlugin\n\n\n\n\n\n\n\n\n\n\nPolicy
 Syntax\n\n\n\n\n\n\nCurrently, we support SiddhiQL(please view Siddhi Query 
Language Specification \nhere\n)\n\n\n\n\n\n\nIn order to explain how stre
 am data is processed, let us take policy below as an example:\n\n\nfrom 
map_reduce_failed_job_stream[site==\"sandbox\" and 
currentState==\"FAILED\"]\nselect * group by jobId insert into 
map_reduce_failed_job_stream_out\n\n\n\n\n\n\n\nThis policy contains below 
parts:\n\n\n\n\n\n\nSource\n: from 
map_reduce_failed_job_stream\n\n\n\n\n\n\nFilter\n: [site==\"sandbox\" and 
currentState==\"FAILED\"]\n\n\n\n\n\n\nProjection\n: select 
*\n\n\n\n\n\n\nGroupBy\n: group by jobId\n\n\n\n\n\n\nDestination\n: insert 
into map_reduce_failed_job_stream_out\n\n\n\n\n\n\n\n\n\n\nSource 
Streams(schema) are defined by applications, and applications will write stream 
data to data sink(currently, we support kafka as data sink).\n\n\nstreams\n\n   
 \nstream\n\n        \nstreamId\nmap_reduce_failed_job_stream\n/streamId\n\n    
    \ndescription\nMap Reduce Failed Job Stream\n/description\n\n        
\nvalidate\ntrue\n/validate\n\n        \ncolumns\n\n            \ncolumn\n\n    
            \nname\nsite\n/name
 \n\n                \ntype\nstring\n/type\n\n            \n/column\n\n         
   \u2026...\n            \ncolumn\n\n                \nname\njobId\n/name\n\n  
              \ntype\nstring\n/type\n\n            \ncolumn\n\n                
\nname\ncurrentState\n/name\n\n                \ntype\nstring\n/type\n\n        
    \n/column\n\n        \n/columns\n\n    
\n/stream\n\n\n/streams\n\n\n\n\n\n\n\n\nAfter policy is defined, Alert engine 
will create siddhi execution runtime for the policy(also load stream data 
schema from metadata store). Since siddhi execution runtime knows the stream 
data schema, then it will process stream data and do the 
calculation.\n\n\n\n\n\n\n\n\nMonitoring Dashboard\n\n\n\n\n\n\nAfter setting 
the sites and applications, you can find the site item from the home page or 
\u201cSites\u201d menu.\n\n\n\n\n\n\nHere is a site home example. After 
entering the site home, the left menu will be replaced by application dashboard 
links only related to that site, so you ca
 n switch between the application dashboard quickly. In the right panel, it 
contains the application icons installed in this site, but depends on if the 
application has its dashboard defined. You can click the application icon or 
the application links to go to the application dashboard home. Please check the 
application documentation about how to use the application monitoring 
dashboard.\n\n\n\n\n\n\n\n\n\n\nCheck The Alerts\n\n\n\n\n\n\nEagle has all the 
alerts generated by all the applications stored in its database, so you can 
check your application alerts from Eagle WI. \n\n\n\n\n\n\nGo to 
\u201c\nAlert\n\u201d -\n \u201c\nAlerts\n\u201d, you can find the alerts 
table.\n\n\n\n\n\n\n\n\nAlso you can check more detailed information by 
clicking \u201c\nDetail\n\u201d link for each alert 
item.\n\n\n\n\n\n\n\n\n\n\nHow to stream audit log into 
Kafka\n\n\nLogstash\n\n\nThe sample configuration is tested with 
logstash-2.3.4. Logstash is required to be installed on the namenode host.\n\n
 \n\n\n\n\nStep 1\n: Create a Kafka topic as the streaming input.\n\n\nHere is 
an sample Kafka command to create topic 'sandbox_hdfs_audit_log'\n\n\ncd 
\nkafka-home\n\nbin/kafka-topics.sh --create --zookeeper localhost:2181 
--replication-factor 1 --partitions 1 --topic 
sandbox_hdfs_audit_log\n\n\n\n\n\n\n\nStep 2\n: Create a Logstash configuration 
file under ${LOGSTASH_HOME}/conf. Here is a sample.\n\n\ninput {\n      file 
{\n          type =\n \"hdp-nn-audit\"\n          path =\n 
\"/tmp/test/hdfs-audit.log\"\n          start_position =\n end\n          
sincedb_path =\n \"/dev/null\"\n       }\n  }\n output {\n      if [type] == 
\"hdp-nn-audit\" {\n          kafka {\n            codec =\n plain {\n          
      format =\n \"%{message}\"\n            }\n            bootstrap_servers 
=\n \"host:9092\"\n            topic_id =\n \"hdfs_audit_log\"\n            
acks =\n \"0\"\n            timeout_ms =\n 10000\n\n            
send_buffer_bytes =\n 102400\n            client_id =\n \"hdp-n
 n-audit\"\n\n            workers =\n 10\n            compression_type =\n 
\"gzip\"\n         }\n          # stdout { codec =\n rubydebug }\n  
}\n}\n\n\n\n\n\n\n\nStep 4\n: Start Logstash\n\n\nbin/logstash -f 
conf/sample.conf\n\n\n\n\n\n\n\nStep 5\n: Check whether logs are flowing into 
the kafka topic specified by \ntopic_id\n\n\n\n\n\n\nFilebeat\n\n\nThe sample 
filebeat.yml is tested with filebeat-5.0.0-beta1-linux-x86_64. The throughput 
can be up to 20K messages per second. Filebeat is required to be installed on 
the namenode host.\n\n\n    filebeat.publish_async: false\n    
filebeat.spool_size: 8192\n    filebeat.idle_timeout: 5s\n    max_procs: 1\n    
queue_size: 1000\n\n    filebeat.prospectors:\n    - input_type: log\n      
paths:\n         - /tmp/test/hdfs-audit.log\n      #tail_files: true\n      
harvester_buffer_size: 8192\n\n    output.kafka:\n      enabled: true\n      
hosts: [\"host:9092\"]\n      topic: \"phx_hdfs_audit_log\"\n      client_id: 
\"client-host\"\n      work
 er: 10\n      max_retries: 3\n      bulk_max_size: 8192\n      
channel_buffer_size: 512\n      timeout: 10\n      broker_timeout: 3s\n      
keep_alive: 0\n      compression: none\n      max_message_bytes: 1000000\n      
required_acks: 0\n      flush_interval: 1\n\n    logging.metrics.period: 
10s\n\n    processors:\n      - include_fields:\n         fields: [\"message\", 
\"beat.hostname\"]\n\n\n\nLog4j Kafka Appender\n\n\nThis sample configuration 
is tested in HDP sandbox. \nRestarting namenode is required\n after updating 
the log4j configuration. \n\n\n\n\n\n\nStep 1\n: Create a Kafka topic. Here is 
an example Kafka command for creating topic \"sandbox_hdfs_audit_log\"\n\n\ncd 
\nkafka-home\n\nbin/kafka-topics.sh --create --zookeeper localhost:2181 
--replication-factor 1 --partitions 1 --topic 
sandbox_hdfs_audit_log\n\n\n\n\n\n\n\nStep 2\n: Configure 
$HADOOP_CONF_DIR/log4j.properties, and add a log4j appender 
\"KAFKA_HDFS_AUDIT\" to hdfs audit logging\n\n\nlog4j.appender.KAFKA_HDFS_A
 
UDIT=org.apache.eagle.log4j.kafka.KafkaLog4jAppender\nlog4j.appender.KAFKA_HDFS_AUDIT.Topic=sandbox_hdfs_audit_log\nlog4j.appender.KAFKA_HDFS_AUDIT.BrokerList=sandbox.hortonworks.com:6667\nlog4j.appender.KAFKA_HDFS_AUDIT.KeyClass=org.apache.eagle.log4j.kafka.hadoop.AuditLogKeyer\nlog4j.appender.KAFKA_HDFS_AUDIT.Layout=org.apache.log4j.PatternLayout\nlog4j.appender.KAFKA_HDFS_AUDIT.Layout.ConversionPattern=%d{ISO8601}
 %p %c{2}: 
%m%n\nlog4j.appender.KAFKA_HDFS_AUDIT.ProducerType=async\n#log4j.appender.KAFKA_HDFS_AUDIT.BatchSize=1\n#log4j.appender.KAFKA_HDFS_AUDIT.QueueSize=1\n\n\n\n\n\n\n\nStep
 3\n: Edit $HADOOP_CONF_DIR/hadoop-env.sh, and add the reference to 
KAFKA_HDFS_AUDIT to 
HADOOP_NAMENODE_OPTS.\n\n\n-Dhdfs.audit.logger=INFO,DRFAAUDIT,KAFKA_HDFS_AUDIT\n\n\n\n\n\n\n\nStep
 4\n: Edit $HADOOP_CONF_DIR/hadoop-env.sh, and append the following command to 
it.\n\n\nexport 
HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:/path/to/eagle/lib/log4jkafka/lib/*\n\n\n\n\n\n\n\nStep
 5\n: save the changes an
 d restart the namenode.\n\n\n\n\n\n\nStep 6\n: Check whether logs are flowing 
into Topic sandbox_hdfs_audit_log\n\n\n$ 
/usr/hdp/current/kafka-broker/bin/kafka-console-consumer.sh --zookeeper 
localhost:2181 --topic sandbox_hdfs_audit_log", 
+            "title": "Using Eagle"
+        }, 
+        {
+            "location": "/using-eagle/#manage-eagle-and-services", 
+            "text": "After Apache Eagle has been deployed (please reference  
deployment ), you can enter deployment directory and use commands below to 
control Apache Eagle Server.  ./bin/eagle-server.sh start|stop|status    After 
starting the Eagle server, please type http:// : / to open the web ui of 
Eagle.", 
+            "title": "Manage Eagle and Services"
+        }, 
+        {
+            "location": "/using-eagle/#use-eagle-web-interface", 
+            "text": "This is the typical Web Interface (short for WI) after 
setting up your Eagle monitoring environment. WI majorly contain the right main 
panel and left function menu.", 
+            "title": "Use Eagle Web Interface"
+        }, 
+        {
+            "location": "/using-eagle/#home", 
+            "text": "This is the aggregated UI for configured sites, and the 
applications. It will show those created sites created, how many application 
installed for each sites, and alerts generated from that cluster. You can click 
\u201cMore info\u201d link to view the details for particular site.    The 
\u201c Widgets \u201d section is customizable; if the application developer 
have its application registered to Home page, you can find that in \u201c 
Widgets \u201d section. Please check the application developer guide about how 
to register applications to home widgets. It give you a shortcut to go directly 
to the application home.", 
+            "title": "Home"
+        }, 
+        {
+            "location": "/using-eagle/#alert", 
+            "text": "In Alert menu, you can define the policies, list the 
policies and check your alerts there.", 
+            "title": "Alert"
+        }, 
+        {
+            "location": "/using-eagle/#integration", 
+            "text": "The integration page provides the management 
functionality for Eagle. You can list the built-in applications there, create 
sites, and manage the applications in your site.", 
+            "title": "Integration"
+        }, 
+        {
+            "location": "/using-eagle/#sites", 
+            "text": "It also gives you a shortcut to particular site.", 
+            "title": "Sites"
+        }, 
+        {
+            "location": "/using-eagle/#setup-the-monitoring-application", 
+            "text": "", 
+            "title": "Setup The Monitoring Application"
+        }, 
+        {
+            "location": "/using-eagle/#monitoring-applications", 
+            "text": "Eagle has an extensible framework to dynamically add new 
monitoring applications in Eagle environment. It also ships some built-in big 
data monitoring applications.    Go to \u201c Integration \u201d -  \u201c 
Applications \u201d, it will list a set of available monitoring applications 
which you can choose to monitor your services.     The \u201c Application 
\u201d column is the display name for an application, \u201c Streams \u201d is 
a logical name for the data stream from the monitored source after 
pre-processing, which will consumed by Alert Engine.    At the moment, we have 
the below built-in applications shipped with Apache Eagle. You can refer to the 
application documentation to understand how to do the configuration for each 
monitoring application.     Application  Description      Topology Health Check 
 This application can be used to monitor the service healthiness for HDFS, 
HBase and YARN. You can get alerted once the master role or the slave role got
  crashed.    Hadoop JMX Metrics Monitoring  This application can be used to 
monitor the JMX metrics data from the master nodes of HDFS, HBase and YARN, 
e.g. NameNode, HBase Master and YARN Resource Manager.    HDFS Audit Log 
Monitor  This application can be used to monitor the data operations in HDFS, 
to detect sensitive data access and malicious operations; to protect from data 
leak or data loss.    HBase Audit Log Monitor  Same as HDFS Audit Log Monitor, 
this application is used to monitor the data operations in HBase.    Map Reduce 
History Job  This application is used to get the MapReduce history job counters 
from YARN history server and job running history from HDFS log directory.    
Map Reduce Running Job  This application is used to get the MapReduce running 
job counter information using YARN Rest API.    Hadoop Queue Monitor  This 
application is used to get the resource scheduling and utilization info from 
YARN.    MR Metrics Aggregation  This application is used to aggregat
 e the job counters and some resource utilization in a certain period of time 
(daily, weekly or monthly).    Job Performance Monitor Web  This application 
only contains the frontend, and depends on Map Reduce History Job and Map 
Reduce Running Job.    Alert Engine  Alert Engine is a special application and 
used to process the output data from other applications.", 
+            "title": "Monitoring Applications"
+        }, 
+        {
+            "location": "/using-eagle/#managing-sites", 
+            "text": "To enable a real monitoring use case, you have to create 
a site first, and install a certain application for this site, and finally 
start the application. We use site concept to group the running applications 
and avoid the application conflict.", 
+            "title": "Managing Sites"
+        }, 
+        {
+            "location": "/using-eagle/#sites_1", 
+            "text": "Go to \u201c Integration \u201d -  \u201c Sites \u201d, 
there will be a table listing the managed sites.", 
+            "title": "Sites"
+        }, 
+        {
+            "location": "/using-eagle/#create-site", 
+            "text": "Click \u201c New Site \u201d on the bottom right of the 
Sites page. You can fill the information in site creation dialog.     The 
\u201c Site Id \u201d should not be duplicated. After the creation, you can 
find it in sites page.", 
+            "title": "Create Site"
+        }, 
+        {
+            "location": "/using-eagle/#configuring-a-site", 
+            "text": "By clicking \u201c Edit \u201d button or the Site column 
in Sites table, you can have the Site configuration page, there you can install 
monitoring applications.", 
+            "title": "Configuring a Site"
+        }, 
+        {
+            "location": "/using-eagle/#install-and-run-applications-in-site", 
+            "text": "Choose the particular application which you want to 
install, you probably have something to fill, e.g. the HDFS NameNode address, 
Zookeeper address and port. Please check each application documentation for how 
to configure each application.     After doing the installation, you can start 
the application by clicking   or stop the application by  . You can check the 
\u201c Status \u201d column about the running status. Usually, it should have 
\u201c INITIALIZED \u201d or \u201c RUNNING \u201d for a healthy application.", 
+            "title": "Install and Run Applications in Site"
+        }, 
+        {
+            "location": "/using-eagle/#define-policies", 
+            "text": "After setting up the monitoring applications, you 
probably want to setup some alert policies against the monitored data, so you 
can get notified once any violation on the data. Eagle has a centralized place 
for policy definition.", 
+            "title": "Define Policies"
+        }, 
+        {
+            "location": "/using-eagle/#policies", 
+            "text": "Go to \u201c Alert \u201d -  \u201c Policies \u201d, you 
can check the policies defined and take control on whether to enable the 
policy:     You can apply the below actions for a certain policy:    : enable a 
policy    : disable a policy    : edit a policy    : purge a policy", 
+            "title": "Policies"
+        }, 
+        {
+            "location": "/using-eagle/#define-or-edit-policies", 
+            "text": "If you want to create a new policy, click \u201c Alert 
\u201d -  \u201c Define Policy \u201d, or you can enter into the policy 
definition page by editing an existing policy. After that, you can go to the 
policy list to enable the policy dynamically.", 
+            "title": "Define or Edit Policies"
+        }, 
+        {
+            "location": "/using-eagle/#source-stream", 
+            "text": "The source stream gives user a full view about what data 
stream is available for application defined for particular site, as well as the 
data structures in each data stream. Data stream name is suffixed by the site 
name.", 
+            "title": "Source Stream"
+        }, 
+        {
+            "location": "/using-eagle/#policy-name", 
+            "text": "The policy name should be globally unique.", 
+            "title": "Policy Name"
+        }, 
+        {
+            "location": "/using-eagle/#publish-alerts", 
+            "text": "In this section, you can define the alert publishment 
method by clicking the \u201c +Add Publisher \u201d.     You can choose the 
publishment method from an existing policy or by creating new publisher.     
There are four built-in publisher types:    EmailPublisher : 
org.apache.eagle.alert.engine.publisher.impl.AlertEmailPublisher    
KafkaPublisher : 
org.apache.eagle.alert.engine.publisher.impl.AlertKafkaPublisher    
SlackPublisher : 
org.apache.eagle.alert.engine.publisher.impl.AlertSlackPublisher    
EagleStoragePlugin : 
org.apache.eagle.alert.engine.publisher.impl.AlertEagleStoragePlugin", 
+            "title": "Publish Alerts"
+        }, 
+        {
+            "location": "/using-eagle/#policy-syntax", 
+            "text": "Currently, we support SiddhiQL(please view Siddhi Query 
Language Specification  here )    In order to explain how stream data is 
processed, let us take policy below as an example:  from 
map_reduce_failed_job_stream[site==\"sandbox\" and 
currentState==\"FAILED\"]\nselect * group by jobId insert into 
map_reduce_failed_job_stream_out    This policy contains below parts:    Source 
: from map_reduce_failed_job_stream    Filter : [site==\"sandbox\" and 
currentState==\"FAILED\"]    Projection : select *    GroupBy : group by jobId  
  Destination : insert into map_reduce_failed_job_stream_out      Source 
Streams(schema) are defined by applications, and applications will write stream 
data to data sink(currently, we support kafka as data sink).  streams \n     
stream \n         streamId map_reduce_failed_job_stream /streamId \n         
description Map Reduce Failed Job Stream /description \n         validate true 
/validate \n         columns \n             column \n      
            name site /name \n                 type string /type \n             
/column \n            \u2026...\n             column \n                 name 
jobId /name \n                 type string /type \n             column \n       
          name currentState /name \n                 type string /type \n       
      /column \n         /columns \n     /stream  /streams     After policy is 
defined, Alert engine will create siddhi execution runtime for the policy(also 
load stream data schema from metadata store). Since siddhi execution runtime 
knows the stream data schema, then it will process stream data and do the 
calculation.", 
+            "title": "Policy Syntax"
+        }, 
+        {
+            "location": "/using-eagle/#monitoring-dashboard", 
+            "text": "After setting the sites and applications, you can find 
the site item from the home page or \u201cSites\u201d menu.    Here is a site 
home example. After entering the site home, the left menu will be replaced by 
application dashboard links only related to that site, so you can switch 
between the application dashboard quickly. In the right panel, it contains the 
application icons installed in this site, but depends on if the application has 
its dashboard defined. You can click the application icon or the application 
links to go to the application dashboard home. Please check the application 
documentation about how to use the application monitoring dashboard.", 
+            "title": "Monitoring Dashboard"
+        }, 
+        {
+            "location": "/using-eagle/#check-the-alerts", 
+            "text": "Eagle has all the alerts generated by all the 
applications stored in its database, so you can check your application alerts 
from Eagle WI.     Go to \u201c Alert \u201d -  \u201c Alerts \u201d, you can 
find the alerts table.     Also you can check more detailed information by 
clicking \u201c Detail \u201d link for each alert item.", 
+            "title": "Check The Alerts"
+        }, 
+        {
+            "location": "/using-eagle/#how-to-stream-audit-log-into-kafka", 
+            "text": "", 
+            "title": "How to stream audit log into Kafka"
+        }, 
+        {
+            "location": "/using-eagle/#logstash", 
+            "text": "The sample configuration is tested with logstash-2.3.4. 
Logstash is required to be installed on the namenode host.    Step 1 : Create a 
Kafka topic as the streaming input.  Here is an sample Kafka command to create 
topic 'sandbox_hdfs_audit_log'  cd  kafka-home \nbin/kafka-topics.sh --create 
--zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic 
sandbox_hdfs_audit_log    Step 2 : Create a Logstash configuration file under 
${LOGSTASH_HOME}/conf. Here is a sample.  input {\n      file {\n          type 
=  \"hdp-nn-audit\"\n          path =  \"/tmp/test/hdfs-audit.log\"\n          
start_position =  end\n          sincedb_path =  \"/dev/null\"\n       }\n  }\n 
output {\n      if [type] == \"hdp-nn-audit\" {\n          kafka {\n            
codec =  plain {\n                format =  \"%{message}\"\n            }\n     
       bootstrap_servers =  \"host:9092\"\n            topic_id =  
\"hdfs_audit_log\"\n            acks =  \"0\"\n            timeout
 _ms =  10000\n\n            send_buffer_bytes =  102400\n            client_id 
=  \"hdp-nn-audit\"\n\n            workers =  10\n            compression_type 
=  \"gzip\"\n         }\n          # stdout { codec =  rubydebug }\n  }\n}    
Step 4 : Start Logstash  bin/logstash -f conf/sample.conf    Step 5 : Check 
whether logs are flowing into the kafka topic specified by  topic_id", 
+            "title": "Logstash"
+        }, 
+        {
+            "location": "/using-eagle/#filebeat", 
+            "text": "The sample filebeat.yml is tested with 
filebeat-5.0.0-beta1-linux-x86_64. The throughput can be up to 20K messages per 
second. Filebeat is required to be installed on the namenode host.      
filebeat.publish_async: false\n    filebeat.spool_size: 8192\n    
filebeat.idle_timeout: 5s\n    max_procs: 1\n    queue_size: 1000\n\n    
filebeat.prospectors:\n    - input_type: log\n      paths:\n         - 
/tmp/test/hdfs-audit.log\n      #tail_files: true\n      harvester_buffer_size: 
8192\n\n    output.kafka:\n      enabled: true\n      hosts: [\"host:9092\"]\n  
    topic: \"phx_hdfs_audit_log\"\n      client_id: \"client-host\"\n      
worker: 10\n      max_retries: 3\n      bulk_max_size: 8192\n      
channel_buffer_size: 512\n      timeout: 10\n      broker_timeout: 3s\n      
keep_alive: 0\n      compression: none\n      max_message_bytes: 1000000\n      
required_acks: 0\n      flush_interval: 1\n\n    logging.metrics.period: 
10s\n\n    processors:\n      - include_fie
 lds:\n         fields: [\"message\", \"beat.hostname\"]", 
+            "title": "Filebeat"
+        }, 
+        {
+            "location": "/using-eagle/#log4j-kafka-appender", 
+            "text": "This sample configuration is tested in HDP sandbox.  
Restarting namenode is required  after updating the log4j configuration.     
Step 1 : Create a Kafka topic. Here is an example Kafka command for creating 
topic \"sandbox_hdfs_audit_log\"  cd  kafka-home \nbin/kafka-topics.sh --create 
--zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic 
sandbox_hdfs_audit_log    Step 2 : Configure $HADOOP_CONF_DIR/log4j.properties, 
and add a log4j appender \"KAFKA_HDFS_AUDIT\" to hdfs audit logging  
log4j.appender.KAFKA_HDFS_AUDIT=org.apache.eagle.log4j.kafka.KafkaLog4jAppender\nlog4j.appender.KAFKA_HDFS_AUDIT.Topic=sandbox_hdfs_audit_log\nlog4j.appender.KAFKA_HDFS_AUDIT.BrokerList=sandbox.hortonworks.com:6667\nlog4j.appender.KAFKA_HDFS_AUDIT.KeyClass=org.apache.eagle.log4j.kafka.hadoop.AuditLogKeyer\nlog4j.appender.KAFKA_HDFS_AUDIT.Layout=org.apache.log4j.PatternLayout\nlog4j.appender.KAFKA_HDFS_AUDIT.Layout.ConversionPattern=%d{ISO8601}
 %p %c{2}: %m%n\nlog
 
4j.appender.KAFKA_HDFS_AUDIT.ProducerType=async\n#log4j.appender.KAFKA_HDFS_AUDIT.BatchSize=1\n#log4j.appender.KAFKA_HDFS_AUDIT.QueueSize=1
    Step 3 : Edit $HADOOP_CONF_DIR/hadoop-env.sh, and add the reference to 
KAFKA_HDFS_AUDIT to HADOOP_NAMENODE_OPTS.  
-Dhdfs.audit.logger=INFO,DRFAAUDIT,KAFKA_HDFS_AUDIT    Step 4 : Edit 
$HADOOP_CONF_DIR/hadoop-env.sh, and append the following command to it.  export 
HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:/path/to/eagle/lib/log4jkafka/lib/*    
Step 5 : save the changes and restart the namenode.    Step 6 : Check whether 
logs are flowing into Topic sandbox_hdfs_audit_log  $ 
/usr/hdp/current/kafka-broker/bin/kafka-console-consumer.sh --zookeeper 
localhost:2181 --topic sandbox_hdfs_audit_log", 
+            "title": "Log4j Kafka Appender"
+        }, 
+        {
+            "location": "/applications/", 
+            "text": "HDFS Data Activity Monitoring\n\n\nMonitor 
Requirements\n\n\nThis application aims to monitor user activities on HDFS via 
the hdfs audit log. Once any abnormal user activity is detected, an alert is 
sent in several seconds. The whole pipeline of this application 
is\n\n\n\n\n\n\nKafka ingest: this application consumes data from Kafka. In 
other words, users have to stream the log into Kafka first. \n\n\n\n\n\n\nData 
re-procesing, which includes raw log parser, ip zone joiner, sensitivity 
information joiner. \n\n\n\n\n\n\nKafka sink: parsed data will flows into Kafka 
again, which will be consumed by the alert engine. \n\n\n\n\n\n\nPolicy 
evaluation: the alert engine (hosted in Alert Engine app) evaluates each data 
event to check if the data violate the user defined policy. An alert is 
generated if the data matches the policy.\n\n\n\n\n\n\n\n\nSetup \n 
Installation\n\n\n\n\n\n\nChoose a site to install this application. For 
example 'sandbox'\n\n\n\n\n\n\nInstall \"H
 dfs Audit Log Monitor\" app step by step\n\n\n\n\n\n\n\n\n\n\n\n\nHow to 
collect the log\n\n\nTo collect the raw audit log on namenode servers, a log 
collector is needed. Users can choose any tools they like. There are some 
common solutions available: \nlogstash\n, \nfilebeat\n, log4j appender, etcs. 
\n\n\nFor detailed instruction, refer to: \nHow to stream audit log into 
Kafka\n\n\nSample policies\n\n\n1. monitor file/folder operations\n\n\nDelete a 
file/folder on HDFS. \n\n\nfrom 
HDFS_AUDIT_LOG_ENRICHED_STREAM_SANDBOX[str:contains(src,'/tmp/test/subtest') 
and ((cmd=='rename' and str:contains(dst, '.Trash')) or cmd=='delete')] select 
* group by user insert into 
hdfs_audit_log_enriched_stream_out\n\n\n\n\nHDFS_AUDIT_LOG_ENRICHED_STREAM_SANDBOX
 is the input stream name, and hdfs_audit_log_enriched_stream_out is the output 
stream name, the content between [] is the monitoring conditions. \ncmd\n, 
\nsrc\n and \ndst\n is the fields of hdfs audit logs.\n\n\n\n\n2. classify the 
file/folde
 r on HDFS\n\n\nUsers may want to mark some folders/files on HDFS as sensitive 
content. For example, by marking '/sys/soj' as \"SOJ\", users can monitor any 
operations they care about on 'sys/soj' and its subfolders/files.\n\n\nfrom 
HDFS_AUDIT_LOG_ENRICHED_STREAM_SANDBOX[sensitivityType=='SOJ' and 
cmd=='delete')] select * group by user insert into 
hdfs_audit_log_enriched_stream_out\n\n\n\n\nThe example policy monitors the 
'delete' operation on files/subfolders under /sys/soj. \n\n\n3. Classify the IP 
Zone\n\n\nIn some cases, the ips are classified into different zones. For some 
zone, it may have higher secrecy. Eagle providers ways to monitor user 
activities on IP level. \n\n\nfrom 
HDFS_AUDIT_LOG_ENRICHED_STREAM_SANDBOX[securityZone=='SECURITY' and 
cmd=='delete')] select * group by user insert into 
hdfs_audit_log_enriched_stream_out\n\n\n\n\nThe example policy monitors the 
'delete' operation on hosts in 'SECURITY' zone. \n\n\nQuestions on this 
application\n\n\n\n\nJMX Monitoring\n\n\
 n\n\n\n\nApplication \"\nHADOOP_JMX_METRIC_MONITOR\n\" provide embedded 
collector script to ingest hadoop/hbase jmx metric as eagle stream and provide 
ability to define alert policy and detect anomaly in real-time from 
metric.\n\n\n\n\n\n\n\n\nFields\n\n\n\n\n\n\n\n\n\n\n\n\nType\n\n\nHADOOP_JMX_METRIC_MONITOR\n\n\n\n\n\n\nVersion\n\n\n0.5.0-version\n\n\n\n\n\n\nDescription\n\n\nCollect
 JMX Metric and monitor in 
real-time\n\n\n\n\n\n\nStreams\n\n\nHADOOP_JMX_METRIC_STREAM\n\n\n\n\n\n\nConfiguration\n\n\nJMX
 Metric Kafka Topic (default: hadoop_jmx_metric_{SITE_ID})\nKafka Broker List 
(default: localhost:6667)\n\n\n\n\n\n\n\n\n\n\n\n\nSetup \n 
Installation\n\n\n\n\n\n\nMake sure already setup a site (here use a demo site 
named \"sandbox\").\n\n\n\n\n\n\nInstall \"Hadoop JMX Monitor\" app in eagle 
server.\n\n\n\n\n\n\n\n\nConfigure Application 
settings.\n\n\n\n\n\n\n\n\nEnsure a kafka topic named 
hadoop_jmx_metric_{SITE_ID} (In current guide, it should be 
hadoop_jmx_metric_sandbox)\n\n
 \n\n\n\n\nSetup metric collector for monitored Hadoop/HBase using 
hadoop_jmx_collector and modify the configuration.\n\n\n\n\n\n\nCollector 
scripts: \nhadoop_jmx_collector\n\n\n\n\n\n\nRename config-sample.json to 
config.json: \nconfig-sample.json\n\n\n{\n    env: {\n        site: 
\"sandbox\",\n        name_node: {\n            hosts: [\n                
\"sandbox.hortonworks.com\"\n            ],\n            port: 50070,\n         
   https: false\n        },\n        resource_manager: {\n            hosts: 
[\n                \"sandbox.hortonworks.com\"\n            ],\n            
port: 50030,\n            https: false\n        }\n    },\n    inputs: [{\n     
   component: \"namenode\",\n        host: \"server.eagle.apache.org\",\n       
 port: \"50070\",\n        https: false,\n        kafka_topic: 
\"nn_jmx_metric_sandbox\"\n    }, {\n        component: \"resourcemanager\",\n  
      host: \"server.eagle.apache.org\",\n        port: \"8088\",\n        
https: false,\n        kafka_t
 opic: \"rm_jmx_metric_sandbox\"\n    }, {\n        component: \"datanode\",\n  
      host: \"server.eagle.apache.org\",\n        port: \"50075\",\n        
https: false,\n        kafka_topic: \"dn_jmx_metric_sandbox\"\n    }],\n    
filter: {\n        monitoring.group.selected: [\n            \"hadoop\",\n      
      \"java.lang\"\n        ]\n    },\n    output: {\n        kafka: {\n       
     brokerList: [\n                \"localhost:9092\"\n            ]\n        
}\n    }\n}\n\n\n\n\n\n\n\n\n\n\n\nClick \"Install\" button then you will see 
the HADOOP_JMX_METRIC_STREAM_{SITE_ID} in Streams.\n\n\n\n\n\n\n\n\nDefine JMX 
Alert Policy\n\n\n\n\n\n\nGo to \"Define Policy\".\n\n\n\n\n\n\nSelect 
HADOOP_JMX_METRIC_MONITOR related streams.\n\n\n\n\n\n\nDefine SQL-Like policy, 
for example\n\n\nfrom HADOOP_JMX_METRIC_STREAM_SANDBOX[metric==\"cpu.usage\" 
and value \n 0.9]\nselect site,host,component,value\ninsert into 
HADOOP_CPU_USAGE_GT_90_ALERT;\n\n\n\nAs seen in below screenshot:\n\n\n\n\n\n
 \n\n\nStream Schema\n\n\n\n\n\n\nSchema\n\n\n\n\n\n\n\n\nStream 
Name\n\n\nStream Schema\n\n\nTime 
Series\n\n\n\n\n\n\n\n\n\n\nHADOOP_JMX_METRIC_MONITOR\n\n\nhost\n: 
STRING\ntimestamp\n: LONG\nmetric\n: STRING\ncomponent\n: STRING\nsite\n: 
STRING\nvalue\n: DOUBLE\n\n\nTrue\n\n\n\n\n\n\n\n\n\n\n\n\nMetrics 
List\n\n\n\n\nPlease refer to the \nHadoop JMX Metrics List\n and see which 
metrics you're interested in.\n\n\n\n\n\n\nJob Performance 
Monitoring\n\n\nMonitor Requirements\n\n\n\n\nFinished/Running Job 
Details\n\n\nJob Metrics(Job Counter/Statistics) Aggregation\n\n\nAlerts(Job 
failure/Job slow)\n\n\n\n\nApplications\n\n\n\n\n\n\nApplication 
Table\n\n\n\n\n\n\n\n\napplication\n\n\nresponsibility\n\n\n\n\n\n\n\n\n\n\nMap 
Reduce History Job Monitoring\n\n\nparse mr history job logs from 
hdfs\n\n\n\n\n\n\nMap Reduce Running Job Monitoring\n\n\nget mr running job 
details from resource manager\n\n\n\n\n\n\nMap Reduce Metrics 
Aggregation\n\n\naggregate metrics generated by applications ab
 ove\n\n\n\n\n\n\n\n\n\n\n\n\nData Ingestion And Process\n\n\n\n\n\n\nWe build 
storm topology to fulfill requirements for each 
application.\n\n\n\n\n\n\n\n\nMap Reduce History Job Monitoring (Figure 
1)\n\n\n\n\nRead Spout\n\n\nread/parse history job logs from HDFS and flush to 
eagle service(storage is Hbase)\n\n\n\n\n\n\nSink Bolt\n\n\nconvert parsed jobs 
to streams and write to data sink\n\n\n\n\n\n\n\n\n\n\nMap Reduce Running Job 
Monitoring (Figure 2)\n\n\nRead Spout\n\n\nfetch running job list from resource 
manager and emit to Parse Bolt\n\n\n\n\n\n\nParse Bolt\n\n\nfor each running 
job, fetch job detail/job counter/job configure/tasks from resource 
manager\n\n\n\n\n\n\n\n\n\n\nMap Reduce Metrics Aggregation (Figure 
3)\n\n\nDivide Spout\n\n\ndivide time period(need to be aggregated) to small 
pieces and emit to Aggregate Bolt\n\n\n\n\n\n\nAggregate Bolt\n\n\naggregate 
metrics for given time period received from Divide 
Spout\n\n\n\n\n\n\n\n\n\n\n\n\nSetup \n Installation\n\n\n\n\n\n
 \nMake sure already setup a site (here use a demo site named 
\"sandbox\").\n\n\n\n\n\n\nInstall \"Map Reduce History Job\" app in eagle 
server(Take this application as an example).\n\n\n\n\n\n\nConfigure Application 
settings\n\n\n\n\n\n\n\n\nEnsure a kafka topic named 
{SITE_ID}_map_reduce_failed_job (In current guide, it should be 
sandbox_map_reduce_failed_job) will be created.\n\n\n\n\n\n\nClick \"Install\" 
button then you will see the MAP_REDUCE_FAILED_JOB_STREAM_{SITE_ID} in 
Alert-\nStreams.\n    \n\n  This application will write stream data to kafka 
topic(created by last step)\n\n\n\n\n\n\nIntegration With Alert Engine\n\n\nIn 
order to integrate applications with alert engine and send alerts, follow below 
steps(Take Map Reduce History Job application as an 
example):\n\n\n\n\n\n\ndefine stream and configure data sink\n\n\n\n\ndefine 
stream in resource/META-INF/providers/xxxProviders.xml\nFor example, 
MAP_REDUCE_FAILED_JOB_STREAM_{SITE_ID}\n\n\nconfigure data sink\nFor example, cr
 eate kafka topic {SITE_ID}_map_reduce_failed_job\n\n\n\n\n\n\n\n\ndefine 
policy\n\n\n\n\n\n\nFor example, if you want to receive map reduce job failure 
alerts, you can define policies (SiddhiQL) as the following:\n\n\nfrom 
map_reduce_failed_job_stream[site==\nsandbox\n and 
currentState==\nFAILED\n]\nselect site, queue, user, jobType, jobId, 
submissionTime, trackingUrl, startTime, endTime\ngroup by jobId insert into 
map_reduce_failed_job_stream_out\n\n\n\n\n\n\n\n\nview alerts\n\n\n\n\nYou can 
view alerts in Alert-\nalerts page.\n\n\nStream Schema\n\n\nAll columns above 
are predefined in stream map_reduce_failed_job_stream defined 
in\n\n\neagle-jpm/eagle-jpm-mr-history/src/main/resources/META-INF/providers/org.apache.eagle.jpm.mr.history.MRHistoryJobApplicationProvider.xml\n\n\n\nThen,
 enable the policy in web ui after it's created. Eagle will schedule it 
automatically.\n\n\n\n\nTopology Health Check\n\n\n\n\n\n\nApplication 
\"TOPOLOGY HEALTH CHECK\" aims to monior those servies with
  a master-slave structured topology and provide metrics at host 
level.\n\n\n\n\n\n\n\n\nFields\n\n\n\n\n\n\n\n\n\n\n\n\nType\n\n\nTOPOLOGY_HEALTH_CHECK\n\n\n\n\n\n\nVersion\n\n\n0.5.0-version\n\n\n\n\n\n\nDescription\n\n\nCollect
 MR,HBASE,HDFS node status and cluster 
ratio\n\n\n\n\n\n\nStreams\n\n\nTOPOLOGY_HEALTH_CHECK_STREAM\n\n\n\n\n\n\nConfiguration\n\n\nTopology
 Health Check Topic (default: topology_health_check)\nKafka Broker List 
(default: sandobox.hortonworks.com:6667)\n\n\n\n\n\n\n\n\n\n\n\n\nSetup \n 
Installation\n\n\n\n\n\n\nMake sure already setup a site (here use a demo site 
named \"sandbox\").\n\n\n\n\n\n\nInstall \"Topology Health Check\" app in eagle 
server.\n\n\n\n\n\n\n\n\nConfigure Application 
settings.\n\n\n\n\n\n\n\n\nEnsure the existence of a kafka topic named 
topology_health_check (In current guide, it should be 
topology_health_check).\n\n\n\n\n\n\nClick \"Install\" button then you will see 
the TOPOLOGY_HEALTH_CHECK_STREAM_{SITE_ID} on \"Streams\" page (Stream
 s could be navigated in left-nav).\n\n\n\n\n\n\n\n\nDefine Health Check Alert 
Policy\n\n\n\n\n\n\nGo to \"Define Policy\".\n\n\n\n\n\n\nSelect 
TOPOLOGY_HEALTH_CHECK related streams.\n\n\n\n\n\n\nDefine SQL-Like policy, for 
example\n\n\nfrom TOPOLOGY_HEALTH_CHECK_STREAM_SANDBOX[status=='dead'] select * 
insert into topology_health_check_stream_out;\n\n\n\n\n\n\n\n\n\n\n\nHadoop 
Queue Monitoring\n\n\n\n\n\n\nThis application collects metrics of Resource 
Manager in the following aspects:\n\n\n\n\n\n\nScheduler Info of the cluster: 
http://{RM_HTTP_ADDRESS}:{PORT}/ws/v1/cluster/scheduler\n\n\n\n\n\n\nApplications
 of the cluster: 
http://{RM_HTTP_ADDRESS}:{PORT}/ws/v1/cluster/apps\n\n\n\n\n\n\nOverall metrics 
of the cluster: http://{RM_HTTP_ADDRESS}:{PORT}/ws/v1/cluster/metrics\n\n\nby 
version 0.5-incubating, mainly focusing at metrics\n - `appsPending`\n - 
`allocatedMB`\n - `totalMB`\n - `availableMB`\n - `reservedMB`\n - 
`allocatedVirtualCores`.\n\n\n\n\n\n\n\n\n\n\n\nSetup \n Installatio
 n\n\n\n\n\n\n\nMake sure already setup a site (here use a demo site named 
\"sandbox\").\n\n\n\n\n\n\nFrom left-nav list, navigate to application managing 
page by \"\nIntegration\n\" \n \"\nSites\n\", and hit link \"\nsandbox\n\" on 
right.\n\n\n\n\n\n\n\n\nInstall \"Hadoop Queue Monitor\" by clicking 
\"install\" button of the application.\n\n\n\n\n\n\n\n\nIn the pop-up layout, 
select running mode as \nLocal\n or \nCluster\n.\n\n\n\n\n\n\n\n\nSet the 
target jar of eagle's topology assembly that has existed in eagle server, 
indicating the absolute path ot it. As in the following 
screenshot:\n\n\n\n\n\n\n\n\nSet Resource Manager endpoint urls field, separate 
values with comma if there are more than 1 url (e.g. a secondary node for 
HA).\n\n\n\n\n\n\n\n\nSet fields \"\nStorm Worker Number\n\", \"\nParallel 
Tasks Per Bolt\n\", and \"\nFetching Metric Interval in Seconds\n\", or leave 
them as default if they fit your needs.\n\n\n\n\n\n\n\n\nFinally, hit 
\"\nInstall\n\" button to complete it
 .\n\n\n\n\n\n\nUse of the application\n\n\n\n\n\n\nThere is no need to define 
policies for this applicatoin to work, it could be integrated with \"\nJob 
Performance Monitoring Web\n\" application and consequently seen on cluster 
dashboard, as long as the latter application is installed too. See an exmple in 
the following screenshot:", 
+            "title": "Applications"
+        }, 
+        {
+            "location": "/applications/#hdfs-data-activity-monitoring", 
+            "text": "", 
+            "title": "HDFS Data Activity Monitoring"
+        }, 
+        {
+            "location": "/applications/#monitor-requirements", 
+            "text": "This application aims to monitor user activities on HDFS 
via the hdfs audit log. Once any abnormal user activity is detected, an alert 
is sent in several seconds. The whole pipeline of this application is    Kafka 
ingest: this application consumes data from Kafka. In other words, users have 
to stream the log into Kafka first.     Data re-procesing, which includes raw 
log parser, ip zone joiner, sensitivity information joiner.     Kafka sink: 
parsed data will flows into Kafka again, which will be consumed by the alert 
engine.     Policy evaluation: the alert engine (hosted in Alert Engine app) 
evaluates each data event to check if the data violate the user defined policy. 
An alert is generated if the data matches the policy.", 
+            "title": "Monitor Requirements"
+        }, 
+        {
+            "location": "/applications/#setup-installation", 
+            "text": "Choose a site to install this application. For example 
'sandbox'    Install \"Hdfs Audit Log Monitor\" app step by step", 
+            "title": "Setup & Installation"
+        }, 
+        {
+            "location": "/applications/#how-to-collect-the-log", 
+            "text": "To collect the raw audit log on namenode servers, a log 
collector is needed. Users can choose any tools they like. There are some 
common solutions available:  logstash ,  filebeat , log4j appender, etcs.   For 
detailed instruction, refer to:  How to stream audit log into Kafka", 
+            "title": "How to collect the log"
+        }, 
+        {
+            "location": "/applications/#sample-policies", 
+            "text": "", 
+            "title": "Sample policies"
+        }, 
+        {
+            "location": "/applications/#1-monitor-filefolder-operations", 
+            "text": "Delete a file/folder on HDFS.   from 
HDFS_AUDIT_LOG_ENRICHED_STREAM_SANDBOX[str:contains(src,'/tmp/test/subtest') 
and ((cmd=='rename' and str:contains(dst, '.Trash')) or cmd=='delete')] select 
* group by user insert into hdfs_audit_log_enriched_stream_out  
HDFS_AUDIT_LOG_ENRICHED_STREAM_SANDBOX is the input stream name, and 
hdfs_audit_log_enriched_stream_out is the output stream name, the content 
between [] is the monitoring conditions.  cmd ,  src  and  dst  is the fields 
of hdfs audit logs.", 
+            "title": "1. monitor file/folder operations"
+        }, 
+        {
+            "location": "/applications/#2-classify-the-filefolder-on-hdfs", 
+            "text": "Users may want to mark some folders/files on HDFS as 
sensitive content. For example, by marking '/sys/soj' as \"SOJ\", users can 
monitor any operations they care about on 'sys/soj' and its subfolders/files.  
from HDFS_AUDIT_LOG_ENRICHED_STREAM_SANDBOX[sensitivityType=='SOJ' and 
cmd=='delete')] select * group by user insert into 
hdfs_audit_log_enriched_stream_out  The example policy monitors the 'delete' 
operation on files/subfolders under /sys/soj.", 
+            "title": "2. classify the file/folder on HDFS"
+        }, 
+        {
+            "location": "/applications/#3-classify-the-ip-zone", 
+            "text": "In some cases, the ips are classified into different 
zones. For some zone, it may have higher secrecy. Eagle providers ways to 
monitor user activities on IP level.   from 
HDFS_AUDIT_LOG_ENRICHED_STREAM_SANDBOX[securityZone=='SECURITY' and 
cmd=='delete')] select * group by user insert into 
hdfs_audit_log_enriched_stream_out  The example policy monitors the 'delete' 
operation on hosts in 'SECURITY' zone.", 
+            "title": "3. Classify the IP Zone"
+        }, 
+        {
+            "location": "/applications/#questions-on-this-application", 
+            "text": "", 
+            "title": "Questions on this application"
+        }, 
+        {
+            "location": "/applications/#jmx-monitoring", 
+            "text": "Application \" HADOOP_JMX_METRIC_MONITOR \" provide 
embedded collector script to ingest hadoop/hbase jmx metric as eagle stream and 
provide ability to define alert policy and detect anomaly in real-time from 
metric.     Fields       Type  HADOOP_JMX_METRIC_MONITOR    Version  
0.5.0-version    Description  Collect JMX Metric and monitor in real-time    
Streams  HADOOP_JMX_METRIC_STREAM    Configuration  JMX Metric Kafka Topic 
(default: hadoop_jmx_metric_{SITE_ID}) Kafka Broker List (default: 
localhost:6667)", 
+            "title": "JMX Monitoring"
+        }, 
+        {
+            "location": "/applications/#setup-installation_1", 
+            "text": "Make sure already setup a site (here use a demo site 
named \"sandbox\").    Install \"Hadoop JMX Monitor\" app in eagle server.     
Configure Application settings.     Ensure a kafka topic named 
hadoop_jmx_metric_{SITE_ID} (In current guide, it should be 
hadoop_jmx_metric_sandbox)    Setup metric collector for monitored Hadoop/HBase 
using hadoop_jmx_collector and modify the configuration.    Collector scripts:  
hadoop_jmx_collector    Rename config-sample.json to config.json:  
config-sample.json  {\n    env: {\n        site: \"sandbox\",\n        
name_node: {\n            hosts: [\n                
\"sandbox.hortonworks.com\"\n            ],\n            port: 50070,\n         
   https: false\n        },\n        resource_manager: {\n            hosts: 
[\n                \"sandbox.hortonworks.com\"\n            ],\n            
port: 50030,\n            https: false\n        }\n    },\n    inputs: [{\n     
   component: \"namenode\",\n        host: \"server.eagle.
 apache.org\",\n        port: \"50070\",\n        https: false,\n        
kafka_topic: \"nn_jmx_metric_sandbox\"\n    }, {\n        component: 
\"resourcemanager\",\n        host: \"server.eagle.apache.org\",\n        port: 
\"8088\",\n        https: false,\n        kafka_topic: 
\"rm_jmx_metric_sandbox\"\n    }, {\n        component: \"datanode\",\n        
host: \"server.eagle.apache.org\",\n        port: \"50075\",\n        https: 
false,\n        kafka_topic: \"dn_jmx_metric_sandbox\"\n    }],\n    filter: 
{\n        monitoring.group.selected: [\n            \"hadoop\",\n            
\"java.lang\"\n        ]\n    },\n    output: {\n        kafka: {\n            
brokerList: [\n                \"localhost:9092\"\n            ]\n        }\n   
 }\n}      Click \"Install\" button then you will see the 
HADOOP_JMX_METRIC_STREAM_{SITE_ID} in Streams.", 
+            "title": "Setup & Installation"
+        }, 
+        {
+            "location": "/applications/#define-jmx-alert-policy", 
+            "text": "Go to \"Define Policy\".    Select 
HADOOP_JMX_METRIC_MONITOR related streams.    Define SQL-Like policy, for 
example  from HADOOP_JMX_METRIC_STREAM_SANDBOX[metric==\"cpu.usage\" and value  
 0.9]\nselect site,host,component,value\ninsert into 
HADOOP_CPU_USAGE_GT_90_ALERT;  As seen in below screenshot:", 
+            "title": "Define JMX Alert Policy"
+        }, 
+        {
+            "location": "/applications/#stream-schema", 
+            "text": "Schema     Stream Name  Stream Schema  Time Series      
HADOOP_JMX_METRIC_MONITOR  host : STRING timestamp : LONG metric : STRING 
component : STRING site : STRING value : DOUBLE  True", 
+            "title": "Stream Schema"
+        }, 
+        {
+            "location": "/applications/#metrics-list", 
+            "text": "Please refer to the  Hadoop JMX Metrics List  and see 
which metrics you're interested in.", 
+            "title": "Metrics List"
+        }, 
+        {
+            "location": "/applications/#job-performance-monitoring", 
+            "text": "", 
+            "title": "Job Performance Monitoring"
+        }, 
+        {
+            "location": "/applications/#monitor-requirements_1", 
+            "text": "Finished/Running Job Details  Job Metrics(Job 
Counter/Statistics) Aggregation  Alerts(Job failure/Job slow)", 
+            "title": "Monitor Requirements"
+        }, 
+        {
+            "location": "/applications/#applications", 
+            "text": "Application Table     application  responsibility      
Map Reduce History Job Monitoring  parse mr history job logs from hdfs    Map 
Reduce Running Job Monitoring  get mr running job details from resource manager 
   Map Reduce Metrics Aggregation  aggregate metrics generated by applications 
above", 
+            "title": "Applications"
+        }, 
+        {
+            "location": "/applications/#data-ingestion-and-process", 
+            "text": "We build storm topology to fulfill requirements for each 
application.     Map Reduce History Job Monitoring (Figure 1)   Read Spout  
read/parse history job logs from HDFS and flush to eagle service(storage is 
Hbase)    Sink Bolt  convert parsed jobs to streams and write to data sink      
Map Reduce Running Job Monitoring (Figure 2)  Read Spout  fetch running job 
list from resource manager and emit to Parse Bolt    Parse Bolt  for each 
running job, fetch job detail/job counter/job configure/tasks from resource 
manager      Map Reduce Metrics Aggregation (Figure 3)  Divide Spout  divide 
time period(need to be aggregated) to small pieces and emit to Aggregate Bolt   
 Aggregate Bolt  aggregate metrics for given time period received from Divide 
Spout", 
+            "title": "Data Ingestion And Process"
+        }, 
+        {
+            "location": "/applications/#setup-installation_2", 
+            "text": "Make sure already setup a site (here use a demo site 
named \"sandbox\").    Install \"Map Reduce History Job\" app in eagle 
server(Take this application as an example).    Configure Application settings  
   Ensure a kafka topic named {SITE_ID}_map_reduce_failed_job (In current 
guide, it should be sandbox_map_reduce_failed_job) will be created.    Click 
\"Install\" button then you will see the MAP_REDUCE_FAILED_JOB_STREAM_{SITE_ID} 
in Alert- Streams.\n     \n  This application will write stream data to kafka 
topic(created by last step)", 
+            "title": "Setup & Installation"
+        }, 
+        {
+            "location": "/applications/#integration-with-alert-engine", 
+            "text": "In order to integrate applications with alert engine and 
send alerts, follow below steps(Take Map Reduce History Job application as an 
example):    define stream and configure data sink   define stream in 
resource/META-INF/providers/xxxProviders.xml\nFor example, 
MAP_REDUCE_FAILED_JOB_STREAM_{SITE_ID}  configure data sink\nFor example, 
create kafka topic {SITE_ID}_map_reduce_failed_job     define policy    For 
example, if you want to receive map reduce job failure alerts, you can define 
policies (SiddhiQL) as the following:  from map_reduce_failed_job_stream[site== 
sandbox  and currentState== FAILED ]\nselect site, queue, user, jobType, jobId, 
submissionTime, trackingUrl, startTime, endTime\ngroup by jobId insert into 
map_reduce_failed_job_stream_out    view alerts   You can view alerts in Alert- 
alerts page.", 
+            "title": "Integration With Alert Engine"
+        }, 
+        {
+            "location": "/applications/#stream-schema_1", 

[... 247 lines stripped ...]
Propchange: eagle/site/docs/v0.5.0/mkdocs/search_index.json
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to