Neste artigo, vou mostrar-vos como monitorizar os recursos de CPU e RAM do teu ESX a partir do Python. Para o fazer, vamos usar um script em Python que nos permitirá monitorizar os recursos utilizados no nosso hypervisor ESX.
Antes de começarmos, é importante salientar que a monitorização dos recursos do teu ESX é crucial para garantir que a tua infraestrutura está a funcionar de forma eficiente e evitar problemas de desempenho e tempo de inatividade. Além disso, ao automatizar este processo com um script em Python, podes poupar tempo e esforço ao não teres de o fazer manualmente.
Para começar o processo de monitorização dos recursos do teu ESX a partir do Python, precisarás de instalar as seguintes bibliotecas:
- pyVmomi: é uma biblioteca em Python que fornece uma API para interagir com vSphere e ESX.
- ssl: é uma biblioteca em Python que fornece funcionalidades de segurança de camada de sockets.
Assim que tiveres instalado estas bibliotecas, podes começar a escrever o teu script para monitorizar os recursos do teu ESX. O script que vamos utilizar neste artigo vai ligar-se ao teu ESX e recuperar a informação do hardware do host, bem como a informação das máquinas virtuais em execução. Depois, calculará a quantidade total de CPU e RAM atribuída às máquinas virtuais e mostrará os resultados na saída.
Mas não te preocupes se tudo isto parece um pouco complicado! Vou explicar como é que o script funciona passo a passo.
Primeiro, importamos as bibliotecas necessárias e definimos as credenciais de login para o nosso hypervisor ESX:
import ssl from pyVim.connect import SmartConnect, Disconnect from pyVmomi import vim # Informações de login para o hypervisor ESX hostname = 'esx_hostname_or_ip' username = 'username' password = 'password'
Em seguida, criamos um contexto SSL personalizado que nos permitirá ligar-nos ao hypervisor ESX:
# Criar um contexto SSL personalizado context = ssl.create_default_context() context.check_hostname = False context.verify_mode = ssl.CERT_NONE # Ligação ao hypervisor ESX com o contexto SSL personalizado si = SmartConnect(host=hostname, user=username, pwd=password, sslContext=context) content = si.RetrieveContent()
Depois, recuperamos a informação do hardware do host utilizando o objeto content que criámos no passo anterior:
# Obter a informação do hardware do host host_system = content.rootFolder.childEntity[0].hostFolder.childEntity[0].host[0].summary.hardware num_cpu_cores = host_system.numCpuCores num_cpu_threads = host_system.numCpuThreads total_memory = host_system.memorySize / (1024 ** 3) cpu_model = host_system.cpuModel
A seguir, recuperamos a informação das máquinas virtuais em execução utilizando novamente o objeto content:
# Obter a informação das máquinas virtuais em execução vm_properties = ['name', 'config.hardware.numCPU', 'config.hardware.memoryMB'] vm_view = content.viewManager.CreateContainerView(content.rootFolder, [vim.VirtualMachine], True) vms = vm_view.view vm_view.Destroy()
Depois, calculamos a quantidade total de CPU e RAM atribuída às máquinas virtuais em execução e mostramo-la na saída:
# Calcular a quantidade total de CPU e RAM atribuída às máquinas virtuais num_vcpu_assigned = sum(vm.config.hardware.numCPU for vm in vms if vm.summary.runtime.powerState == vim.VirtualMachinePowerState.poweredOn) total_memory_assigned = sum(vm.config.hardware.memoryMB for vm in vms if vm.summary.runtime.powerState == vim.VirtualMachinePowerState.poweredOn) / 1024 print(f"Tipo de processador do host: {cpu_model}") print(f"Número de núcleos com hyperthreading disponíveis: {num_cpu_threads}") print(f"Quantidade total de CPU atribuída às máquinas virtuais: {num_vcpu_assigned}") print(f"Quantidade total de memória atribuída às máquinas virtuais: {total_memory_assigned:.2f} GB") print(f"Memória total do host: {total_memory:.2f} GB")
Por fim, fechamos a ligação ao hypervisor ESX:
# Desligar do hypervisor ESX Disconnect(si)
Com este script, podemos obter informações valiosas sobre os nossos recursos ESX e garantir que tudo está a funcionar corretamente. Além disso, ao usar um script em Python para monitorizar os recursos do nosso ESX, podemos automatizar este processo e poupar tempo e esforço.
Em resumo, a monitorização dos recursos de CPU e RAM do teu ESX é fundamental para garantir que a tua infraestrutura está a funcionar de forma eficiente e evitar problemas de desempenho e tempo de inatividade. Ao automatizar este processo com um script em Python, podes poupar tempo e esforço ao não teres de o fazer manualmente. Espero que este artigo te tenha sido útil e incentivo-te a experimentar este script no teu próprio ambiente!