How to know who have created specific VM (other resource) in Azure?
You can see it from the Active log in Resource group or VM
By default it stored in 90 days you have to archive the logs to storage account if you want to keep them more that 90 days.
For more info refer this link
If you're using a third-party logging solution, then it may integrate out-of-the-box or it's pretty easy to write a Powershell script to export the logs. Here's a list of third-party solutions that integrate https://docs.microsoft.com/en-us/azure/monitoring-and-diagnostics/monitoring-partners