Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: nexus.onap.org to nexus3.onap.org

...

The below steps covers manual setup of DCAE VM’s and DCAE service components.

VESCollector

 


DCAE VES Collector can be configured on VM with ubuntu-16.04 image (m1.small should suffice if this is only service) and 20Gb cinder storage

...

 	sudo apt install docker.io

...

2)      Pull the latest container from onap nexus

sudo docker login -u docker -p docker nexusnexus3.onap.org:10001sudo
       sudo docker pull 

...

nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:v1.1.

...

0



3)      Start the VESCollector with below command

sudo docker run -d --name vescollector -p 8080:8080/tcp -p 8443:8443/tcp -P -e DMAAPHOST='<dmaap IP>' nexusnexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:v1.1.10

                Note:  Change the dmaaphost to required DMAAP ip. To change the dmaap information for a running container,  stop the active container and rerun above command changing the dmaap IP. 

4)      Verification

  1. Check logs under container /opt/app/VESCollector/logs/collector.log for errors
  2. If no active feed, you can simulate an event into collector via curl

...

Measurement -http://<dmaaphost>:3904/events/unauthenticated.SEC_MEASUREMENT_OUTPUT

...

VM Init

To address windriver server in-stability, the below init.sh script was used to start the container on VM restart.  

Code Block
languagexml
titleinit.sh
collapsetrue
#!/bin/sh
sudo docker ps | grep "vescollector"
if [ $? -ne 0 ]; then
        sudo docker login -u docker -p docker nexusnexus3.onap.org:10001
        sudo docker pull nexusnexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.1
        sudo docker rm -f vescollector
        echo "Collector process not running - $(date)" >> /home/ubuntu/startuplog
        sudo docker run -d --name vescollector -p 8080:8080/tcp -p 8443:8443/tcp -P -e DMAAPHOST='10.12.25.96' nexusnexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:v1.1.10
else
        echo "Collector process running - $(date)" >> /home/ubuntu/startuplog
fi

...

	sudo  update-rc.d init.sh start 2

 

...


ThresholdCrossingAnalysis (TCA/CDAP)

...

The platform deploys CDAP as cluster and instantiates TCA. For the manual setup, we will leverage the CDAP SDK docker container to deploy TCA instances.  To setup TCA, choose VM with ubuntu-16.04 image, m1.medium size and 50gb cinder volumes. 

1)      Install docker

 sudo apt-get update

...

 sudo docker run -d --name cdap-sdk-2 -p 11011:11011 -p 11015:11015 caskdata/cdap-standalone:4.1.2

4)      Create Namespace on CDAP application

	curl -X PUT http://localhost:11015/v3/namespaces/cdap_tca_hi_lo

5)      Create TCA app preference file config file - "tca_app_config.json" under ~ubuntu as below

language
Code Block
xmltitletca_app_preferenceconfig.json
collapsetrue
{
 "artifact": {
  "publisherContentTypename" : "application/jsondcae-analytics-cdap-tca",
    "publisherHostNameversion" : "102.120.25.961",
    "publisherHostPortscope" : "3904user"
 },
  "publisherMaxBatchSizeconfig" : "1",
  "publisherMaxRecoveryQueueSize" {
  "appName": "100000dcae-tca",
    "publisherPollingIntervalappDescription" : "20000DCAE Analytics Threshold Crossing Alert Application",
    "publisherProtocoltcaVESMessageStatusTableName" : "httpTCAVESMessageStatusTable",
    "publisherTopicNametcaVESMessageStatusTableTTLSeconds" : "unauthenticated.DCAE_CL_OUTPUT"86400.0,
    "subscriberConsumerGrouptcaAlertsAbatementTableName" : "OpenDCAE-c1TCAAlertsAbatementTable",
    "subscriberConsumerIdtcaAlertsAbatementTableTTLSeconds" : "c1"1728000.0,
    "subscriberContentTypetcaVESAlertsTableName" : "application/jsonTCAVESAlertsTable",
    "subscriberHostNametcaVESAlertsTableTTLSeconds" : "10.12.25.96"1728000.0,
    "subscriberHostPortthresholdCalculatorFlowletInstances" : "3904"2.0,
    "subscriberMessageLimittcaSubscriberOutputStreamName" : "-1TCASubscriberOutputStream",
 }
"subscriberPollingInterval" : "20000",}

6)      Create TCA app preference file - "tca_app_preferences.json" under ~ubuntu as below

Code Block
languagexml
titletca_app_preferences.json
collapsetrue
{
  "subscriberProtocolpublisherContentType" : "httpapplication/json",
  "subscriberTimeoutMSpublisherHostName" : "-110.12.25.96",
  "subscriberTopicNamepublisherHostPort" : "unauthenticated.SEC_MEASUREMENT_OUTPUT3904",
  "enableAAIEnrichmentpublisherMaxBatchSize" : false"1",
  "aaiEnrichmentHostpublisherMaxRecoveryQueueSize" : "10.12.25.72100000",
  "aaiEnrichmentPortNumberpublisherPollingInterval" : 8443"20000",
  "aaiEnrichmentProtocolpublisherProtocol" : "httpshttp",
  "aaiEnrichmentUserNamepublisherTopicName" : "unauthenticated.DCAE_CL_OUTPUT",
  "aaiEnrichmentUserPasswordsubscriberConsumerGroup" : "DCAEOpenDCAE-c1",
  "aaiEnrichmentIgnoreSSLCertificateErrorssubscriberConsumerId" : false"c1",
  "aaiVNFEnrichmentAPIPathsubscriberContentType" : "/aai/v11/network/generic-vnfs/generic-vnf",
application/json",
  "aaiVMEnrichmentAPIPathsubscriberHostName" :  "/aai/v11/search/nodes-query "10.12.25.96",
  "tca_policysubscriberHostPort" : "3904"{,
         \"domain\subscriberMessageLimit" : \"measurementsForVfScaling\-1",
         \"metricsPerEventName\subscriberPollingInterval" : [{
                \"eventName\": \"vFirewallBroadcastPackets\"20000",
  "subscriberProtocol" : "http",
                 \"controlLoopSchemaType\subscriberTimeoutMS" : \"VNF\-1",
                 \"policyScope\subscriberTopicName" : \"DCAE\",
                \"policyName\": \"DCAE.Config_tca-hi-lo\",
                \"policyVersion\": \"v0.0.1\",
                \"thresholds\": [{
                        \"closedLoopControlName\": \"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",
                        \"version\": \"1.0.2\",
                        \"fieldPath\": \"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\",
                        \"thresholdValue\": 300,
                        \"direction\": \"LESS_OR_EQUAL\",
                        \"severity\": \"MAJOR\",
                        \"closedLoopEventStatus\": \"ONSET\"
                }, {
                        \"closedLoopControlName\": \"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",
                        \"version\": \"1.0.2\",
                        \"fieldPath\": \"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\",
                        \"thresholdValue\": 700,
                        \"direction\": \"GREATER_OR_EQUAL\",
                        \"severity\": \"CRITICAL"unauthenticated.SEC_MEASUREMENT_OUTPUT",
  "enableAAIEnrichment" : false,
  "aaiEnrichmentHost" : "10.12.25.72",
  "aaiEnrichmentPortNumber" : 8443,
  "aaiEnrichmentProtocol" : "https",
  "aaiEnrichmentUserName" : "DCAE",
  "aaiEnrichmentUserPassword" : "DCAE",
  "aaiEnrichmentIgnoreSSLCertificateErrors" : true,
  "aaiVNFEnrichmentAPIPath" : "/aai/v11/network/generic-vnfs/generic-vnf",
  "aaiVMEnrichmentAPIPath" :  "/aai/v11/search/nodes-query",
  "tca_policy" : "{
        \"domain\": \"measurementsForVfScaling\",
        \"metricsPerEventName\": [{
                \"eventName\": \"vFirewallBroadcastPackets\",
                \"controlLoopSchemaType\": \"VNF\",
                \"policyScope\": \"DCAE\",
                \"policyName\": \"DCAE.Config_tca-hi-lo\",
                \"policyVersion\": \"v0.0.1\",
                \"thresholds\": [{
                        \"closedLoopControlName\": \"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",
                        \"closedLoopEventStatusversion\": \"ONSET1.0.2\"
                }]
        },
{                                        \"eventNamefieldPath\": \"vLoadBalancer$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\",
                                       \"controlLoopSchemaTypethresholdValue\": \"VM\"300,
                                       \"policyScopedirection\": \"DCAELESS_OR_EQUAL\",
                                       \"policyNameseverity\": \"DCAE.Config_tca-hi-loMAJOR\",
                                       \"policyVersionclosedLoopEventStatus\": \"v0.0.1ONSET\",
                \"thresholds\": [}, {
                        \"closedLoopControlName\": \"ControlLoop-vDNSvFirewall-6f37f56dd0a1dfc6-a87d94f5-4b854fd4-b6a9a5b5-cc953cf779b34630b438850a\",
                        \"version\": \"1.0.2\",
                        \"fieldPath\": \"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\",
                        \"thresholdValue\": 300700,
                        \"direction\": \"GREATER_OR_EQUAL\",
                        \"severity\": \"CRITICAL\",
                        \"closedLoopEventStatus\": \"ONSET\"
                }]
        }, {
                \"eventName\": \"Measurement_vGMUXvLoadBalancer\",
                \"controlLoopSchemaType\": \"VNFVM\",
                \"policyScope\": \"DCAE\",
                \"policyName\": \"DCAE.Config_tca-hi-lo\",
                \"policyVersion\": \"v0.0.1\",
                \"thresholds\": [{
                        \"closedLoopControlName\": \"ControlLoop-vCPEvDNS-48f0c2c36f37f56d-a172a87d-41924b85-9ae3b6a9-052274181b6ecc953cf779b3\",
                        \"version\": \"1.0.2\",
                        \"fieldPath\": \"$.event.measurementsForVfScalingFields.additionalMeasurementsvNicUsageArray[*].arrayOfFields[0].valuereceivedTotalPacketsDelta\",
                        \"thresholdValue\": 0300,
                        \"direction\": \"GREATER_OR_EQUAL\",
                        \"severity\": \"MAJORCRITICAL\",
                        \"closedLoopEventStatus\": \"ABATEDONSET\"
                }]
        }, {
                                       \"closedLoopControlNameeventName\": \"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6eMeasurement_vGMUX\",
                                       \"versioncontrolLoopSchemaType\": \"1.0.2VNF\",
                                       \"fieldPathpolicyScope\": \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].valueDCAE\",
                                       \"thresholdValuepolicyName\": 0,
                        \"direction\"DCAE.Config_tca-hi-lo\",
                \"policyVersion\": \"GREATERv0.0.1\",
                \"thresholds\": [{
                        \"severityclosedLoopControlName\": \"CRITICALControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",
                        \"version\"closedLoopEventStatus\": \"ONSET\"
                }]
        }]
}"
}

 Note: Dmaap configuration are specified on this file on publisherHostName and subscriberHostName. To be changed as required**

 

 

...

: \"1.0.2\",
                        \"fieldPath\": \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",
                        \"thresholdValue\": 0,
                        \"direction\": \"EQUAL\",
                        \"severity\": \"MAJOR\",
                        \"closedLoopEventStatus\": \"ABATED\"
                }, {
                        \"closedLoopControlName\": \"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",
                        \"version\": \"1.0.2\",
                        \"fieldPath\": \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",
                        \"thresholdValue\": 0,
                        \"direction\": \"GREATER\",
                        \"severity\": \"CRITICAL\",
                        \"closedLoopEventStatus\": \"ONSET\"
                }]
        }]
}"
}

 Note: Dmaap configuration are specified on this file on publisherHostName and subscriberHostName. To be changed as required**


6 a)  To enable AAI Enrichment in TCA for CL event, following updates should be done to TCA app preference file before proceeding

          "enableAAIEnrichment" :  true
          "aaiEnrichmentHost" :  <should be set to aai1_ip_addr>
          "aaiEnrichmentIgnoreSSLCertificateErrors" : true


7)      Copy below script to CDAP server (this gets latest image from nexus and deploys TCA application) and execute it

Code Block
languagebash
titlereload-tca.sh
collapsetrue
#!/bin/sh
TCA_JAR=dcae-analytics-cdap-tca-2.0.0.jar
rm -f /home/ubuntu/$TCA_JAR
cd /home/ubuntu/
wget https://nexusnexus3.onap.org/service/local/repositories/stagingreleases/content/org/onap/dcaegen2/analytics/tca/dcae-analytics-cdap-tca/2.0.0/$TCA_JAR
if [ $? -eq 0 ]; then
        if [ -f /home/ubuntu/$TCA_JAR ]; then
                echo "Restarting TCA CDAP application using $TCA_JAR artifact"
        else
                echo "ERROR: $TCA_JAR missing"
                exit 1
        fi
else
        echo "ERROR: $TCA_JAR not found in nexus"
        exit 1
fi

# stop programs
curl -X POST http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/workers/TCADMaaPMRPublisherWorker/stop
curl -X POST http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/workers/TCADMaaPMRSubscriberWorker/stop
curl -X POST http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/flows/TCAVESCollectorFlow/stop
# delete application
curl -X DELETE http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca#tca
# delete artifact
curl -X DELETE http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/artifacts/dcae-analytics-cdap-tca/versions/2.0.0#1
# load artifact
curl -X POST --data-binary @/home/ubuntu/$TCA_JAR http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/artifacts/dcae-analytics-cdap-tcaecho#tca
# create app
curl -X PUT -d @/home/ubuntu/tca_app_config.json http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca#tca
# load preferences
curl -X PUT -d @/home/ubuntu/tca_app_preferences.json http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/preferences#preferences
# start programs
curl -X POST http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/workers/TCADMaaPMRPublisherWorker/start
curl -X POST http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/workers/TCADMaaPMRSubscriberWorker/start
curl -X POST http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/flows/TCAVESCollectorFlow/startecho#start
echo
# get status of programs
curl http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/workers/TCADMaaPMRPublisherWorker/status
curl http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/workers/TCADMaaPMRSubscriberWorker/status
curl http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/flows/TCAVESCollectorFlow/statusecho

 

...

status
echo


Note: Attached the script also for reference : reload-tca.sh

8)      Verify TCA application and logs via CDAP GUI processes

...

http://<hostname/ip>:11011/oldcdap/ns/cdap_tca_hi_lo/apps/dcae-tca/programs/flows/TCAVESCollectorFlow/runs

 

...

TCA Configuration Change

 

Typical configuration changes include changing DMAAP host and/or Policy configuration. If necessary, modify the file on step #5 #6 and run the script noted as step #6 #7 to redeploy TCA with updated configuration.

...

Code Block
languagebash
titleinit.sh
collapsetrue
#!/bin/sh
#docker run -d --name cdap-sdk -p 11011:11011 -p 11015:11015 caskdata/cdap-standalone:4.1.2
sudo docker restart cdap-sdk-2
sleep 30
# start program
curl -X POST http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/workers/TCADMaaPMRPublisherWorker/start
curl -X POST http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/workers/TCADMaaPMRSubscriberWorker/start
curl -X POST http://localhost:11015/v3/namespaces/cdap_tca_hi_lo/apps/dcae-tca/flows/TCAVESCollectorFlow/start

...


This script was invoked via VM init script (rc.d).

...