Bin Yang | c8d753e | 2018-11-01 12:38:54 +0000 | [diff] [blame] | 1 | .. This work is licensed under a Creative Commons Attribution 4.0
|
| 2 | .. International License. http://creativecommons.org/licenses/by/4.0
|
| 3 | .. Copyright (c) 2017-2018 Wind River Systems, Inc.
|
| 4 |
|
| 5 | Tutorial: VESagent configuration and Testing
|
| 6 | ````````````````````````````````````````````
|
| 7 |
|
| 8 | VESagent is a FCAPS relaying service offered by MultiCloud Plugin for Wind
|
| 9 | River Titanium Cloud. It allows user to monitor specified VM status and report
|
| 10 | VES collector with onset or abate fault event "Fault_MultiCloud_VMFailure"
|
| 11 |
|
| 12 | VESagent provisoning APIs
|
| 13 | -------------------------
|
| 14 |
|
| 15 | ### assume OOM deployment as below endpoints:
|
| 16 |
|
| 17 | * OOM k8s Node IP, e.g. 10.12.5.184
|
| 18 | * OOM k8s Node port for multicloud-titaniumcloud POD: 30294
|
| 19 | * On-boarded cloud region with {cloud-owner}/{cloud-region-id} : CloudOwner/pod01
|
| 20 | * VES collector endpoint: 10.12.6.79:8081
|
| 21 |
|
| 22 |
|
| 23 |
|
| 24 | .. code-block:: console
|
| 25 |
|
| 26 | #!/bin/bash
|
| 27 | export MC_EP_IP=10.12.5.184
|
| 28 | export MC_EP_PORT=30294
|
| 29 |
|
| 30 | export MC_EPv0=http://$OPENO_IP:$MC_EP_PORT/api/multicloud-titaniumcloud/v0/CloudOwner_pod01
|
| 31 | export MC_EPv1=http://$OPENO_IP:$MC_EP_PORT/api/multicloud-titaniumcloud/v1/CloudOwner/pod01
|
| 32 |
|
| 33 |
|
| 34 |
|
| 35 | 1. Setup VESagent backlogs
|
| 36 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 37 |
|
| 38 | ** Option 1: monitor all VMs of a tenant**
|
| 39 |
|
| 40 | .. code-block:: console
|
| 41 |
|
| 42 | curl -v -s -H "Content-Type: application/json" -d '{"vesagent_config": \
|
| 43 | {"backlogs":[ {"domain":"fault","type":"vm","tenant":"VIM"}],\
|
| 44 | "poll_interval_default":10,"ves_subscription":\
|
| 45 | {"username":"admin","password":"admin","endpoint":"http://10.12.6.79:8081/eventListener/v5"}}}'\
|
| 46 | -X POST $MC_EPv0/vesagent
|
| 47 |
|
| 48 | ** Option 2: monitor specified VMs**
|
| 49 |
|
| 50 | .. code-block:: console
|
| 51 |
|
| 52 | ### zdfw1lb01dns01, zdfw1lb01dns02
|
| 53 | curl -v -s -H "Content-Type: application/json" -d '{"vesagent_config":\
|
| 54 | {"backlogs":[ {"source":"zdfw1lb01dns01", "domain":"fault","type":"vm","tenant":"VIM"},\
|
| 55 | {"source":"zdfw1lb01dns02", "domain":"fault","type":"vm","tenant":"VIM"}],
|
| 56 | "poll_interval_default":10,"ves_subscription":\
|
| 57 | {"username":"admin","password":"admin","endpoint":"http://10.12.6.79:8081/eventListener/v5"}}}' \
|
| 58 | -X POST $MC_EPv0/vesagent
|
| 59 |
|
| 60 | 2. Dump the VESagent backlogs
|
| 61 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 62 |
|
| 63 | .. code-block:: console
|
| 64 |
|
| 65 | curl -v -s -H "Content-Type: application/json" -X GET $MC_EPv0/vesagent
|
| 66 |
|
| 67 | 3. Delete the VESagent backlogs
|
| 68 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 69 |
|
| 70 | .. code-block:: console
|
| 71 |
|
| 72 | curl -v -s -H "Content-Type: application/json" -X DELETE $MC_EPv0/vesagent
|
| 73 |
|
| 74 |
|
| 75 | VESagent exercises
|
| 76 | ------------------
|
| 77 |
|
| 78 | Step 1: Monitor the DMaaP events
|
| 79 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 80 |
|
| 81 | Subscribe to and keep polling DMaaP Topic: "unauthenticated.SEC_FAULT_OUTPUT" with curl command
|
| 82 |
|
| 83 | .. code-block:: console
|
| 84 |
|
| 85 | curl -X GET \
|
| 86 | 'http://$DMAAP_IP:3904/events/unauthenticated.SEC_FAULT_OUTPUT/EVENT-LISTENER-POSTMAN/304?timeout=6000&limit=10&filter=' \
|
| 87 | -H 'Cache-Control: no-cache' \
|
| 88 | -H 'Content-Type: application/json' \
|
| 89 | -H 'Postman-Token: 4e2e3589-d742-48c7-8d48-d1b3577df259' \
|
| 90 | -H 'X-FromAppId: 121' \
|
| 91 | -H 'X-TransactionId: 9999'
|
| 92 |
|
| 93 |
|
| 94 | Step 2: Setup VESagent backlog
|
| 95 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 96 | .. code-block:: console
|
| 97 |
|
| 98 | ### zdfw1lb01dns01, zdfw1lb01dns02
|
| 99 | curl -v -s -H "Content-Type: application/json" -d '{"vesagent_config":\
|
| 100 | {"backlogs":[ {"source":"zdfw1lb01dns01", "domain":"fault","type":"vm","tenant":"VIM"}],\
|
| 101 | "poll_interval_default":10,"ves_subscription":\
|
| 102 | {"username":"admin","password":"admin","endpoint":"http://10.12.6.79:8081/eventListener/v5"}}}' \
|
| 103 | -X POST $MC_EPv0/vesagent
|
| 104 |
|
| 105 | Step 3: Simulate the Faults
|
| 106 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 107 |
|
| 108 | Manually stop the monitored VMs,e.g. VM with name 'zdfw1lb01dns01',
|
| 109 |
|
| 110 | Step 4: Observe DMaaP event: "Fault_MultiCloud_VMFailure"
|
| 111 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 112 |
|
| 113 | Poll the subscribed DMaaP topic "unauthenticated.SEC_FAULT_OUTPUT" with curl command,
|
| 114 | you should be able to observe the following VES fault event generated from DMaaP:
|
| 115 |
|
| 116 | .. code-block:: console
|
| 117 |
|
| 118 | [
|
| 119 |
|
| 120 | "{\"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\"}}}",
|
| 121 |
|
| 122 | ]
|
| 123 |
|
| 124 |
|
| 125 | Step 5: Simulate the Recovery
|
| 126 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 127 |
|
| 128 | Manually restart the stopped VM 'zdfw1lb01dns01'
|
| 129 |
|
| 130 |
|
| 131 | Step 6: Observe DMaaP event: "Fault_MultiCloud_VMFailureCleared"
|
| 132 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| 133 |
|
| 134 | .. code-block:: console
|
| 135 |
|
| 136 | [
|
| 137 | "{\"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\"}}}"
|
| 138 |
|
| 139 | ]
|