In this and following posts I will show you few different ways of putting vROps objects into maintenance.
Objects in vROps – short intro
The method used to mark an object as being in the maintenances state depends on the actual use case. As usually, the use case itself is being defined by:
- Requirements – what does “maintenance” mean from technical perspective, what exactly needs to be achieved?
- Constraints – is there any automation in place, which team is involved, what and how many objects are involved?
- Assumptions – can we assume that especially the number and kind of objects will stay the same or what is the expected growth?
- Risks – what are the risks of using a certain method?
Let us assume our first use case is:
“In case of ESXi host maintenance mode I will to stop collecting any data for this host and disable all alerts.”
As always, before we start any design and implementation, we did a proper assessment and collected further information:
- There are only few ESXi hosts in maintenance at the same time
- The team doing the maintenance in vCenter can also access and use the vROps UI
- Automation could be used but is not mandatory
- All implications from stopping metrics and property collection for a given object, like ESXi host are known and accepted
Let us first look at one specific vROps object, in that case a Host System (ESXi host), using the vROps inventory option:
We see that the object is properly collecting metrics and properties according to both indicators. The details of the selected object can be checked by clicking the “Show Detail” button. This redirects you to the Summary page of the object. The currently collected metrics and properties can be checked by activating the “Show collecting metrics” option:
Activating the maintenance mode – the UI-way
The easiest way to put an object into maintenance mode is to use the “Start Maintenance” button in the Inventory overview:
In the following dialog you can specify how long the object should be put into maintenance:
After starting the Maintenance, you can again check the new status of the object in the Inventory view:
Now, if you use the same “Show collecting metrics” option in the metrics tab of the object you can see that there are no metrics or properties collecting data. The object stopped the data collection entirely:
At this point you need to know that from the monitoring perspective this object is still in the inventory but the is no single data point being collected, stored and calculated in any way. Any calculations relying on data points coming in for that particular object will not provide new data or calculate nor entirely correct data. What “correct” means, depends on the actual metric, dashboard, view etc.
Deactivating the maintenance mode – the UI-way
As easy as we started the maintenance as easy it can be stopped again using the UI:
After clicking on the “End Maintenance” button, vROps will start collecting all data for the object again.
Activating the maintenance mode – the REST-API-way
Starting and ending the Maintenance Mode using the UI is easy and convenient if you have to deal with a small number of objects and there are no other constraints like complying with e.g. change management process which may require automation.
If you need to deal with a large number of objects or if the vROps Maintenance Mode should be part of an automated process, leveraging the vROps API is the best way to implement it.
As always when using the REST API, the first step is to obtain the Access Token. To acquire the token, following POST method needs to be used:
POST /api/auth/token/acquire
Once we have a valid token, we can call the Maintenance Mode related operations. Following REST operation starts the Maintenance Mode for a given object:
As you can see, you will need to determine the vROps Object ID of the object(s) you need to put into maintenance before you can call the actual Maintenance Mode calls.
Once you have the ID(s) the method can be used:
Deactivating the maintenance mode – the REST-API-way
To end the maintenance following REST API method has to be used:
Again, you will need the vROps Object ID to call this method.
Part 2 – Outlook
In the upcoming Part 2 of this post, I will describe other methods which may be used in cases when the requirements differ from the use case described in this post.