Well, lets limit VI with only 2 objects - VM and hosts.
Here are details for your questions:
1. All attributes (or part of them) that have VMs (id, type, name, host, toolstatus, faulttolerance, isolation.tools.###, isolation.device.### etc.) and hosts' attributes (id, type, address, version, build, lockdownmode, chapauth, security.###, UserVars.### etc.).
2. Based on attributes create a "normal" set (template) of them and then periodically observe VI states and check whether VI configuration is still OK or some unacceptable changes take place (this approach may refer to XACML standard and ABAC (Attribute-Based Access Control)).
3. Other infrastructure doesn't make sense, just focused on VM and hosts, at least.
I'll read about vRealize Operations and vRealize Log Insight, thanks for the tip)