[
https://issues.apache.org/jira/browse/METRON-664?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15828406#comment-15828406
]
ASF GitHub Bot commented on METRON-664:
---------------------------------------
Github user cestella commented on the issue:
https://github.com/apache/incubator-metron/pull/419
Testing Instructions beyond the normal smoke test (i.e. letting data
flow through to the indices and checking them).
## Preliminaries
Since I will use the squid topology to pass data through in a controlled
way, we must install squid and generate one point of data:
* `yum install -y squid`
* `service squid start`
* `squidclient http://www.yahoo.com`
Also, set an environment variable to indicate `METRON_HOME`:
* `export METRON_HOME=/usr/metron/0.3.0`
## Free Up Space on the virtual machine
First, let's free up some headroom on the virtual machine. If you are
running this on a
multinode cluster, you would not have to do this.
* Kill monit via `service monit stop`
* Kill tcpreplay via `for i in $(ps -ef | grep tcpreplay | awk '{print
$2}');do kill -9 $i;done`
* Kill existing parser topologies via
* `storm kill snort`
* `storm kill bro`
* Kill flume via `for i in $(ps -ef | grep flume | awk '{print $2}');do
kill -9 $i;done`
* Kill yaf via `for i in $(ps -ef | grep yaf | awk '{print $2}');do kill -9
$i;done`
* Kill bro via `for i in $(ps -ef | grep bro | awk '{print $2}');do kill -9
$i;done`
## Deploy the squid parser
* Create the squid kafka topic:
`/usr/hdp/current/kafka-broker/bin/kafka-topics.sh --zookeeper node1:2181
--create --topic squid --partitions 1 --replication-factor 1`
* Start via `$METRON_HOME/bin/start_parser_topology.sh -k node1:6667 -z
node1:2181 -s squid`
### Test Case 0: Base Case Test
* Delete any squid index that currently exists (if any do) via `curl
-XDELETE "http://localhost:9200/squid*"`
* Send 1 data points through and ensure that there are no data points in
the index:
* `cat /var/log/squid/access.log |
/usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list
node1:6667 --topic squid`
* `curl "http://localhost:9200/squid*/_search?pretty=true&q=*:*" 2>
/dev/null| grep "full_hostname" | wc -l` should yield `1`
* Validate that the Storm UI for the indexing topology indicates a warning
in the console for both the "hdfsIndexingBolt" and "indexingBolt" to the effect
of `java.lang.Exception: WARNING: Default and (likely) unoptimized writer
config used for hdfs writer and sensor squid` and `java.lang.Exception:
WARNING: Default and (likely) unoptimized writer config used for elasticsearch
writer and sensor squid` respectively
### Test Case 1: Adjusting batch sizes independently
* Delete any squid index that currently exists (if any do) via `curl
-XDELETE "http://localhost:9200/squid*"`
* Create a file at `$METRON_HOME/config/zookeeper/indexing/squid.json` with
the following contents:
```
{
"hdfs" : {
"index": "squid",
"batchSize": 1,
"enabled" : true
},
"elasticsearch" : {
"index": "squid",
"batchSize": 5,
"enabled" : true
}
}
```
* Push the configs via `$METRON_HOME/bin/zk_load_configs.sh -m PUSH -i
$METRON_HOME/config/zookeeper -z node1:2181`
* Send 4 data points through and ensure:
* `cat /var/log/squid/access.log /var/log/squid/access.log
/var/log/squid/access.log /var/log/squid/access.log |
/usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list
node1:6667 --topic squid`
* `curl "http://localhost:9200/squid*/_search?pretty=true&q=*:*" 2>
/dev/null| grep "full_hostname" | wc -l` should yield `0`
* `hadoop fs -cat /apps/metron/indexing/indexed/squid/enrichment-null* |
wc -l` should yield `4`
* Send a final data point through and ensure:
* `cat /var/log/squid/access.log |
/usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list
node1:6667 --topic squid`
* `curl "http://localhost:9200/squid*/_search?pretty=true&q=*:*" 2>
/dev/null| grep "full_hostname" | wc -l` should yield `5`
* `hadoop fs -cat /apps/metron/indexing/indexed/squid/enrichment-null* |
wc -l` should yield `5`
### Test Case 2: Turn off HDFS writer
* Delete any squid index that currently exists (if any do) via `curl
-XDELETE "http://localhost:9200/squid*"`
* Edit the file at `$METRON_HOME/config/zookeeper/indexing/squid.json` to
the following contents:
```
{
"hdfs" : {
"index": "squid",
"batchSize": 1,
"enabled" : false
},
"elasticsearch" : {
"index": "squid",
"batchSize": 1,
"enabled" : true
}
}
```
* Send 1 data points through and ensure:
* `cat /var/log/squid/access.log |
/usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list
node1:6667 --topic squid`
* `curl "http://localhost:9200/squid*/_search?pretty=true&q=*:*" 2>
/dev/null| grep "full_hostname" | wc -l` should yield `1`
* `hadoop fs -cat /apps/metron/indexing/indexed/squid/enrichment-null* |
wc -l` should yield `0`
### Test Case 3: Stellar Management Functions
* Execute the following in the stellar shell:
```
Stellar, Go!
Please note that functions are loading lazily in the background and will be
unavailable until loaded fully.
{es.clustername=metron, es.ip=node1, es.port=9300,
es.date.format=yyyy.MM.dd.HH}
[Stellar]>>> # Grab the indexing config
[Stellar]>>> squid_config := CONFIG_GET('INDEXING', 'squid', true)
[Stellar]>>>
[Stellar]>>> # Update the index and batch size
[Stellar]>>> squid_config := INDEXING_SET_BATCH(
INDEXING_SET_INDEX(squid_config, 'hdfs', 'squid'), 'hdfs', 2)
[Stellar]>>> # Push the config to zookeeper
[Stellar]>>> CONFIG_PUT('INDEXING', squid_config, 'squid')
[Stellar]>>> # Grab the updated config from zookeeper
[Stellar]>>> CONFIG_GET('INDEXING', 'squid')
{
"hdfs" : {
"index" : "squid",
"batchSize" : 2,
"enabled" : false
},
"elasticsearch" : {
"index" : "squid",
"batchSize" : 1,
"enabled" : true
}
}
```
* Confirm that the dump command from `$METRON_HOME/bin/zk_load_configs.sh
-m DUMP -z node1:2181` contains the config with batch size of `1`
* Now pull the configs locally via `$METRON_HOME/bin/zk_load_configs.sh -m
PULL -z node1:2181 -o $METRON_HOME/config/zookeeper -f`
* Check that the "hdfs" config at
`$METRON_HOME/config/zookeeper/indexing/squid.json` is indeed:
```
{
"index" : "squid",
"batchSize" : 2,
"enabled" : false
}
```
> Make the index configuration per-writer with enabled/disabled
> -------------------------------------------------------------
>
> Key: METRON-664
> URL: https://issues.apache.org/jira/browse/METRON-664
> Project: Metron
> Issue Type: Sub-task
> Reporter: Casey Stella
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)