blob: 2d176929d790f68333d84dbf89ddce3a16d1df56 [file] [log] [blame]
.. 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\"}}}"
]