.. This work is licensed under a Creative Commons Attribution 4.0 .. International License. http://creativecommons.org/licenses/by/4.0 .. Copyright (c) 2017-2018 Wind River Systems, Inc. Tutorial: VESagent configuration and Testing ```````````````````````````````````````````` VESagent is a FCAPS relaying service offered by MultiCloud Plugin for Wind River Titanium Cloud. It allows user to monitor specified VM status and report VES collector with onset or abate fault event "Fault_MultiCloud_VMFailure" VESagent provisoning APIs ------------------------- ### assume OOM deployment as below endpoints: * OOM k8s Node IP, e.g. 10.12.5.184 * OOM k8s Node port for multicloud-titaniumcloud POD: 30294 * On-boarded cloud region with {cloud-owner}/{cloud-region-id} : CloudOwner/pod01 * VES collector endpoint: 10.12.6.79:8081 .. code-block:: console #!/bin/bash export MC_EP_IP=10.12.5.184 export MC_EP_PORT=30294 export MC_EPv0=http://$OPENO_IP:$MC_EP_PORT/api/multicloud-titaniumcloud/v0/CloudOwner_pod01 export MC_EPv1=http://$OPENO_IP:$MC_EP_PORT/api/multicloud-titaniumcloud/v1/CloudOwner/pod01 1. Setup VESagent backlogs ^^^^^^^^^^^^^^^^^^^^^^^^^^ ** Option 1: monitor all VMs of a tenant** .. code-block:: console curl -v -s -H "Content-Type: application/json" -d '{"vesagent_config": \ {"backlogs":[ {"domain":"fault","type":"vm","tenant":"VIM"}],\ "poll_interval_default":10,"ves_subscription":\ {"username":"admin","password":"admin","endpoint":"http://10.12.6.79:8081/eventListener/v5"}}}'\ -X POST $MC_EPv0/vesagent ** Option 2: monitor specified VMs** .. code-block:: console ### zdfw1lb01dns01, zdfw1lb01dns02 curl -v -s -H "Content-Type: application/json" -d '{"vesagent_config":\ {"backlogs":[ {"source":"zdfw1lb01dns01", "domain":"fault","type":"vm","tenant":"VIM"},\ {"source":"zdfw1lb01dns02", "domain":"fault","type":"vm","tenant":"VIM"}], "poll_interval_default":10,"ves_subscription":\ {"username":"admin","password":"admin","endpoint":"http://10.12.6.79:8081/eventListener/v5"}}}' \ -X POST $MC_EPv0/vesagent 2. Dump the VESagent backlogs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console curl -v -s -H "Content-Type: application/json" -X GET $MC_EPv0/vesagent 3. Delete the VESagent backlogs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console curl -v -s -H "Content-Type: application/json" -X DELETE $MC_EPv0/vesagent VESagent exercises ------------------ Step 1: Monitor the DMaaP events ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Subscribe to and keep polling DMaaP Topic: "unauthenticated.SEC_FAULT_OUTPUT" with curl command .. code-block:: console curl -X GET \ 'http://$DMAAP_IP:3904/events/unauthenticated.SEC_FAULT_OUTPUT/EVENT-LISTENER-POSTMAN/304?timeout=6000&limit=10&filter=' \ -H 'Cache-Control: no-cache' \ -H 'Content-Type: application/json' \ -H 'Postman-Token: 4e2e3589-d742-48c7-8d48-d1b3577df259' \ -H 'X-FromAppId: 121' \ -H 'X-TransactionId: 9999' Step 2: Setup VESagent backlog ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console ### zdfw1lb01dns01, zdfw1lb01dns02 curl -v -s -H "Content-Type: application/json" -d '{"vesagent_config":\ {"backlogs":[ {"source":"zdfw1lb01dns01", "domain":"fault","type":"vm","tenant":"VIM"}],\ "poll_interval_default":10,"ves_subscription":\ {"username":"admin","password":"admin","endpoint":"http://10.12.6.79:8081/eventListener/v5"}}}' \ -X POST $MC_EPv0/vesagent Step 3: Simulate the Faults ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Manually stop the monitored VMs,e.g. VM with name 'zdfw1lb01dns01', Step 4: Observe DMaaP event: "Fault_MultiCloud_VMFailure" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Poll the subscribed DMaaP topic "unauthenticated.SEC_FAULT_OUTPUT" with curl command, you should be able to observe the following VES fault event generated from DMaaP: .. code-block:: console [ "{\"event\":{\"commonEventHeader\":{\"startEpochMicrosec\":1537233558255872,\"sourceId\":\"8e606aa7-39c8-4df7-b2f4-1f6785b9f682\",\"eventId\":\"a236f561-f0fa-48a3-96cd-3a61ccfdf421\",\"reportingEntityId\":\"CloudOwner_pod01\",\"internalHeaderFields\":{\"collectorTimeStamp\":\"Tue, 09 18 2018 01:19:19 GMT\"},\"eventType\":\"\",\"priority\":\"High\",\"version\":3,\"reportingEntityName\":\"CloudOwner_pod01\",\"sequence\":0,\"domain\":\"fault\",\"lastEpochMicrosec\":1537233558255872,\"eventName\":\"Fault_MultiCloud_VMFailure\",\"sourceName\":\"zdfw1lb01dns01\"},\"faultFields\":{\"eventSeverity\":\"CRITICAL\",\"alarmCondition\":\"Guest_Os_Failure\",\"faultFieldsVersion\":2,\"specificProblem\":\"Fault_MultiCloud_VMFailure\",\"alarmInterfaceA\":\"aaaa\",\"alarmAdditionalInformation\":[{\"name\":\"objectType\",\"value\":\"VIM\"},{\"name\":\"eventTime\",\"value\":\"2018-09-18 01:19:18.255937\"}],\"eventSourceType\":\"virtualMachine\",\"vfStatus\":\"Active\"}}}", ] Step 5: Simulate the Recovery ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Manually restart the stopped VM 'zdfw1lb01dns01' Step 6: Observe DMaaP event: "Fault_MultiCloud_VMFailureCleared" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console [ "{\"event\":{\"commonEventHeader\":{\"startEpochMicrosec\":1537233558255872,\"sourceId\":\"8e606aa7-39c8-4df7-b2f4-1f6785b9f682\",\"eventId\":\"a236f561-f0fa-48a3-96cd-3a61ccfdf421\",\"reportingEntityId\":\"CloudOwner_pod01\",\"internalHeaderFields\":{\"collectorTimeStamp\":\"Tue, 09 18 2018 01:19:31 GMT\"},\"eventType\":\"\",\"priority\":\"Normal\",\"version\":3,\"reportingEntityName\":\"CloudOwner_pod01\",\"sequence\":1,\"domain\":\"fault\",\"lastEpochMicrosec\":1537233570150714,\"eventName\":\"Fault_MultiCloud_VMFailureCleared\",\"sourceName\":\"zdfw1lb01dns01\"},\"faultFields\":{\"eventSeverity\":\"NORMAL\",\"alarmCondition\":\"Vm_Restart\",\"faultFieldsVersion\":2,\"specificProblem\":\"Fault_MultiCloud_VMFailure\",\"alarmInterfaceA\":\"aaaa\",\"alarmAdditionalInformation\":[{\"name\":\"objectType\",\"value\":\"VIM\"},{\"name\":\"eventTime\",\"value\":\"2018-09-18 01:19:30.150736\"}],\"eventSourceType\":\"virtualMachine\",\"vfStatus\":\"Active\"}}}" ]