Today's blog is brought to you by VMware Senior Staff Cloud Solution Architect Trey Lanier. Trey has been an integral member of the Multi-Cloud Management team within the Cloud Management Business Unit at VMware for the past eight years.
Yes, availability monitoring via Ping/ICMP is still a thing! I have Aria Operations customers that still have a script or second product running that is simply pinging everything in their infrastructure. But is a failed Ping to a VM or an ESXi Host always a bad thing? Maybe not. Restarts, HA failovers, and network issues could cause failed Ping attempts. Or they could highlight a scenario in which a VM has been started but is not responding to Ping because the OS didn't come completely up.
This is an expansion on Brock's previous blog about Aria Operations Ping capabilities, here we will cover all three Aria Operations availability capabilities using Ping/ICMP. Each capability has a different configuration process and can be useful in various scenarios. Ultimately, Aria Operations can be your Availability monitoring platform as well as your data analytics engine for alerting, performance, capacity analysis and compliance. So, what are our three options:
Ping Management Pack – included with all Aria Operations editions, this is an easy to configure method to Ping multiple IP addresses, IP ranges and FQDNs. This is often used for non-vSphere objects that might not be monitored through various Aria Operations management packs. This enables you to configure Ping tests from one or more Aria Operations Cloud Proxies to ensure network connectivity of important targets from various areas of your network.
Ping Check from Aria Operations managed Telegraf agents – Telegraf agents include several capabilities including HTTP, TCP, UDP and Ping checks as well as running scripts. Running a Ping Check from any VM running a Telegraf agent ensures network connectivity to a requisite application, database and/or middleware VM. Further, instead of deploying multiple Cloud Proxies, you might deploy VMs running Telegraf throughout your infrastructure to test critical IPs/FQDNs within your environment.
Enable Ping of VMs or ESXi Hosts – this assigns latency and packet loss metrics to each Pinged object, adding simple network reachability to Aria Operations existing availability monitoring to each object.
Let’s review each option (all screenshots are from vROps 8.10.2). First, let’s explore the Ping Management Pack (covered in detail in previous blog).
The Ping Management Pack is included with every edition of Aria Operations and is found in Data Sources > Integrations > Repository. Activate it first, then create an Account.
When configuring an instance of the Ping Adapter, you can add a list of IP addresses, IP ranges, and/or FQDNs to the Address List field. Alternatively, you could create a configuration file with those same IPs/FQDNs and reference that file in the Configuration File Name field. Note that you can pick different Cloud Proxies / Collector Groups as sources of your Pings. If you duplicate an IP or FQDN in multiple Ping adapters, Aria Operations will aggregate the Ping response information into a single object representing each IP and FQDN.
Metrics provided by the Ping Adapter can be found in multiple places, but are generally viewed in the Ping Overview Dashboard, which lists all the IPs and FQDNs you configured in each Ping Adapter. Note that these objects are NOT associated with their vSphere counterparts.
You can also find Ping Adapter objects in Environment > Object Browser > All Objects in the Ping dropdown.
As always, you can use the Aria Operations search function (magnifying glass top right) to search for an object.
The second way to monitor Availability is to enable Ping Check from an Aria Operations Managed Telegraf Agent; this can't be configured in Aria Operations for Open Source Telegraf Agents.
Once your Telegraf Agent has been deployed (covered in a previous blog), you can add Checks by navigating to Environment > Applications > Manage Telegraf Agents. Find a VM with Agent Running, click the three dots next to Ping Check and add your targets.
Aria Operations automatically adds the source of the Ping (the name of the VM) to the Ping Check. It is important that you give each Ping Check a relevant name for future use.
Ping Check metrics are associated with the Ping Check object, not the target. Like the Ping Management Pack, these are different than any vSphere objects themselves.
Finally, the third way to monitor Availability in Aria Operations is to enable Ping Statistics for each VM or ESXi Host (previously covered here). Ping metrics are then associated with their vSphere object!
When viewing a VMs or ESXi Hosts Summary Page, you will see a Ping Statistics tile. Click the three dots in the tile and select Activate Ping Monitoring.
The metrics provided here will be assigned to the vSphere object and can be used to create a more comprehensive Alert that considers failed Pings (high packet loss), but only if the VM/ESXi Host is actually Powered On.
We certainly don't want to do this via UI for every VM/ESXi Host in our environment; insert Aria Operations API here!
First, authenticate with your Aria Operations API, then get a list of VMs and/or ESXi Hosts via GET /api/resources. An example JSON return for a VM might look something like this; notice the isPingEnabled field.
{"resourceList": [
{ "creationTime": 1679810527759,
"resourceKey": {
"name": "malasfar-oc-db-360",
"adapterKindKey": "VMWARE",
"resourceKindKey": "VirtualMachine",
"resourceIdentifiers": [
{ "identifierType": {
"name": "isPingEnabled",
"dataType": "STRING",
"isPartOfUniqueness": false},
"value": ""
},
{ "identifierType": {
"name": "VMEntityInstanceUUID",
"dataType": "STRING",
"isPartOfUniqueness": false},
"value": "503e5516-e02d-5646-7104-f640f7778ebd"
},
{ "identifierType": {
"name": "VMEntityName",
"dataType": "STRING",
"isPartOfUniqueness": false},
"value": "malasfar-oc-db-360"
},
{ "identifierType": {
"name": "VMEntityObjectID",
"dataType": "STRING",
"isPartOfUniqueness": true},
"value": "vm-96010"
},
{ "identifierType": {
"name": "VMEntityVCID",
"dataType": "STRING",
"isPartOfUniqueness": true},
"value": "e2a5580e-2772-43f5-9eea-eddc05e35996"
},
{"identifierType": {
"name": "VMServiceMonitoringEnabled",
"dataType": "STRING",
"isPartOfUniqueness": false},
"value": ""
}
]
}
We need to set isPingEnabledto true, which we can do with PUT /api/resources which requires several VM identifiers. The minimum payload would look like this.
{ "resourceKey": {
"name": "malasfar-oc-db-360",
"adapterKindKey": "VMWARE",
"resourceKindKey": "VirtualMachine",
"resourceIdentifiers": [
{ "identifierType": {
"name": "isPingEnabled",
"dataType": "STRING",
"isPartOfUniqueness": true},
"value": "true"
},
{ "identifierType": {
"name": "VMEntityName",
"dataType": "STRING",
"isPartOfUniqueness": false},
"value": "malasfar-oc-db-360"
},
{ "identifierType": {
"name": "VMEntityObjectID",
"dataType": "STRING",
"isPartOfUniqueness": true},
"value": "vm-96010"
},
{ "identifierType": {
"name": "VMEntityVCID",
"dataType": "STRING",
"isPartOfUniqueness": true},
"value": "e2a5580e-2772-43f5-9eea-eddc05e35996"
}
]
},
"identifier": "a2359b65-98cf-415c-ab3f-8b34e579751c"
}
Create your own script to run a GET /api/resources to capture all VMs and ESXi Hosts you want. Then loop through that list with the PUT /api/resources call from earlier. The cURL would look like this:
curl -X PUT https://<vrops-node>/suite-api/api/resources?_no_links=true -H "accept: application/json" -H "Authorization: vRealizeOpsToken ,<your current auth token here>" -H "Content-Type: application/json" -d "{ \"resourceKey\": { \"name\": \"malasfar-oc-db-360\", \"adapterKindKey\": \"VMWARE\", \"resourceKindKey\": \"VirtualMachine\", \"resourceIdentifiers\": [ { \"identifierType\": { \"name\": \"isPingEnabled\", \"dataType\": \"STRING\", \"isPartOfUniqueness\": false }, \"value\": \"true\" }, { \"identifierType\": { \"name\": \"VMEntityName\", \"dataType\": \"STRING\", \"isPartOfUniqueness\": false }, \"value\": \"malasfar-oc-db-360\" }, { \"identifierType\": { \"name\": \"VMEntityObjectID\", \"dataType\": \"STRING\", \"isPartOfUniqueness\": true }, \"value\": \"vm-96010\" }, { \"identifierType\": { \"name\": \"VMEntityVCID\", \"dataType\": \"STRING\", \"isPartOfUniqueness\": true }, \"value\": \"e2a5580e-2772-43f5-9eea-eddc05e35996\" } ] }, \"identifier\": \"a2359b65-98cf-415c-ab3f-8b34e579751c\"}"
Happy Pinging with Aria Operations! For more information on Aria Operations see the VMware Apps and Cloud Management Tech Zone!
hi,
Is this resource licensed?
thanks
Ping statistics would be great except it can generate false positives when a VM has multiple network adaptors, because it tries to ping all the IPs associated to a VM,, instead of being able to select which IP. Sometimes there are IPs on a VM that are not meant to be reachable don't determine the reachability of the VM. This is an issue when trying to create alerts based on ping statistics. Any options there? Tried using the ping adaptor instance but that doesn't provide the ability to customize alerts to go to different teams/groups based on the IP/FQDN.