Monitorando VMware com Zabbix

bernardolankheet
Zabbix Brasil
Published in
6 min readAug 3, 2020

O Zabbix possui suporte nativo para monitoramento de VMware desde da versão 2.2.0. A comunicação é realizada através do protocolo SOAP (Simple Object Access Protocol), o Zabbix utiliza checagem simples (simple check) direto nos serviços web do VMware, possibilitando a criação de regras de descobertas para cadastro e monitoramento de Vcenter, Hypervisores, Datasources e Guests VMs de forma automática e de forma bem simples.

Preparando o Ambiente

Preparando o Ambiente

Pré-requisitos para este monitoramento são:

  • VMware 4.1 +
  • Libxml2 e libcurl — Momento de compilação, configurar com os parâmetros — with-libxml2 e –with-libcurl, para instalação via pacote, já vem configurado por default essas opções.

Já no arquivo de configuração do Zabbix server (zabbix_server.conf), ou se for monitorado por um Zabbix proxy (zabbix_proxy.conf), devemos nos atentar aos seguintes parâmetros:

  • StartVMwareCollectors — número de instancias que o Zabbix iniciará para o monitoramento. Aceita de 0–250.

Obs: um ponto que devemos ter atenção aqui, é o número instancias que temos que configurar. Se formos monitorar apenas um VMware/VCENTER, coloque 2, se for 3 servicos deixe 6 e por vai.

Pense nessa Formula: servicenum pode ser 1 Hypervisores ou 1 VCenter

numeroservico < StartVMwareCollectors < (numeroservico * 2)

  • VMwareCacheSize — Tamanho de memória cache para armazenar dados do VMware, aceita 256k — 2G (default 8M), quanto mais hosts maior tem que ser.
  • VMwareFrequency — Atraso em segundos entre coletas para um único serviço, aceita 10–86400 (default 60), você pode definir o valor neste ponto, conforme a média de tempo dos seus itens do template.
  • VMwarePerfFrequency — Atraso em segundos entre dados de coletores de desempenho para um único serviço, aceita 10–86400 (default 60),
  • VMwareTimeout — Timeout em segundos para resposta do serviço VMware, aceita 1–300 (default 10)

Customize para parâmetro conforme seu ambiente e lembre-se de reiniciar o serviço do Zabbix server ou proxy.

Ao reiniciar, será possível ver nos logs os Coletores iniciando, algo como:

server #17 started [vmware collector #2]

server #16 started [vmware collector #1]

Para o VMware, não precisamos realizar nenhuma alteração ou configuração, mas por boas práticas, gosto de criar um usuário Readonly dentro do VMware apenas para o monitoramento, já que apenas iremos consultar as informações. Então fica a dica, mas é possível utilizar o Login root.

Templates VMware

Temos 3 Templates para VMware no Zabbix, que já estão presentes após a instalação da ferramenta, irei comentar um pouco sobre cada um deles.

Templates VM VMware

O Template “Template VM VMware”, é utilizado para monitoramento do hypervisor VMware vCenter e ESXI.

Já o Templates “Template VM VMware Hypervisor” e “Template VM VMware Guest”, são Templates que estão linkados com o “Template VM VMware”, eles possuem as regras de descobertas (LLD) que irá descobrir os hosts ESX e as Maquinas virtuais dentro do ambiente de virtualização, normalmente não são ligados manualmente a um host do zabbix, mas é possível customiza-los e usa-los separadamente (será necessário criar uma macro informar UUID manualmente, comentarei depois sobre).

  • Template VM VMware Hypervisor (Será monitorado toda a saúde e Inventario do seu Vmware Host)
  • Template VM VMware Guest (Será monitorado toda a saúde e Inventario das Maquinas Virtuais que estão dentro do seu Hypervisor)

Acessando o Template de VMware e indo na regra de regras de descoberta teremos os 4 regras de Discoverys cadastradas.

Regras de LLD VMware

Descoberta VMware Cluster: Nome do Cluster cadastrado no VMware

Descoberta VMware datastores: Informações de todos os Datastores do cluster, inclusivo os externos quando utilizamos Storage. Inclui Media de leitura e gravação, espaço livre e total.

Descoberta VMware Hypervisores: Este é um prototico de host, onde ele faz a descoberta de todos os hypervidores/ESX que participam do VMware e cria um o host dentro do grupo Hypervisors e cria grupo com o nome do cluster e datacenter.

Temos alguns pontos que são interessantes aqui, na guia Host, temos duas macros, uma de Host Name, onde é uma macro de LLD (macros com # são macros proveniente de LLD), onde captura o UUID do Hypervisor do VMware (será único para cada hypervisor), se você for usar os este Template separado, devemos criar uma macro ({$UUID}) no host ou no Template e informar o UUID separado, se utilizar este Template, não há necessidade, é feito automático e a outra para Visible Name ( onde é capturado o nome do hypervisor e inserida como nome visible, facilitando a identificação). Temos a guia de Grupo, onde temos alguns protótipos de grupos que serão criados e o host será automaticamente inclusos neles. Por fim a guia Templates, onde temos o Template VM VMware Hypervisor que será vinculado a este host após a descoberta.

Descoberta VMware VM: Essa regra, também é um protótipo de Host, nela é realizada a descoberta de todas as Maquinas Virtuais que estão no VMWARE, independentemente do tipo de sistema operacional. Aqui temos na Guia Host, macros para HostName, onde será capturado o VM UUID da máquina virtual e cadastrado no hostname e no VisibleName, será cadastrado o nome da máquina virtual em si (esse processo é interessante para não ser cadastrado hosts com hostname iguais). Na guia Group, temos os protótipos de grupos que serão criados, será criado um grupo chamado “Virtual machine” e outros 3 com base no nome do cluster, datacenter e hypervisor. Por fim temos a guia Templates, onde temos o Template VM VMware Guest que será vinculado nestes hosts.

Cadastrando Host VMware no Zabbix

O processo para cadastrar um host no Zabbix, será o processo normal para cadastro de um host, como o tipo de checagem é do tipo simples, apenas precisaremos nos atentar as macros que apontarão os acessos aos serviços web do VMware. Realize o cadastro do host no Zabbix e na guia de macros, cadastre as macros:

{$URL} — Serviço VMware (vCenter ou hipervisor ESX) URL do SDK do servidor (https://servername/sdk){$USERNAME} — Nome do usuário de acesso ao serviço VMware{$PASSWORD} — Serviço VMware {$USERNAME} senha do usuário

Exemplo:

Nota-se que não precisamos cadastrar a UUID de Hypervisor ou das VMs para o monitoramento, tudo será feito automaticamente.

Após o cadastro, por default cada regra de descoberta demora 1h para ser iniciada, então caso for esperar, pode demorar cerca de 2h para ter todos os itens descobertos e coletados pelo Zabbix. Mas você pode forçar a checagem utilizando o Check Now (Para versões anteriores) ou Execute now (para Zabbix 5+).

Coleta

Este é um dos Hypervisores descobertos, com a identificação na frente em Laranja (Discovery VMware hypervisor: ……) e o Host normalmente cadastrados.

Obs: Peguei as prints de um ambiente que administro, é possível verificar o hypervisor descoberto e cadastrado.

Aqui as Maquinas Virtuais e com o Template VM VMware Guest já vinculado.

Dados Coletados

Logs e Troubleshooting

Para acompanhar os logs (que é de grande ajuda para definir os valores do Collectors) e verificar algum possível problema, aumente o nível de log do Zabbix, para isso, acesse o shell/terminal do seu Zabbix Server e digite:

zabbix_server -R log_level_increase=”vmware collector”

Se estiver usando mais de um coletor, basta informar no lugar de N o número do collector vmware:

zabbix_server -R log_level_increase=”vmware collector,N″

Depois que o Zabbix Server estiver monitorando tudo e, não for mais necessária a verificação através dos logs, basta voltar para o nível do log normal, utilizando a opção -R log_level_decrease:

zabbix_server -R log_level_decrease=”vmware collector”zabbix_server -R log_level_decrease=”vmware collector,N″

Dá para ver que não é um mistério o monitoramento de VMware e vejo nas comunidade muitas duvidas sobre, acaba que no final é um processo simples e os Templates foram criados para ter o mínimo configuração possível.

Espero que possa lhe ajudar.

Até breve!

--

--