quinta-feira, 3 de outubro de 2013

Monitoramento de VMs com Zabbix 2.2

Introdução:
Uma das grandes novidades da versão 2.2 é a possibilidade de monitoramento de máquinas virtuais de forma automatizada pelo recurso LLD (Low Level Discovery).

Advertencia:
Para esse tutorial estou usando a versão alpha do Zabbix, mais especificamente a 2.1.6 (sétimo alpha).

Apesar de funcional para demonstração do recurso essa versão não deve ser utilizada em produção.

Preparação do Ambiente:
Utilizei o Sistema Operacional CentOS 6.4 na opção de instalação minimal.

Após isso instalei os repositórios epel e remi:
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

É preciso habilitar o remi depois de instalado:
# vi /etc/yum.repos.d/remi.repo
Altere a linha enabled=1

Atualizar o sistema:
# yum update -y

Desativar SeLinux e Firewall 

Instalação do Zabbix:
 Para realizar a instalação do Zabbix podemos seguir esse tutorial, modificando alguns detalhes.

Suprir as Dependências:
Na seção suprir as dependências, vamos acrescentar alguns pacotes, pelo fato de estar usando o CentOS Minimal, e o novo pré-requisito utilizado no monitoramento de VMs a libxml2.
# yum -y install ntsysv make wget bind-utils httpd php php-common php-mysql php-gd php-bcmath php-mbstring php-xml mysql mysql-server mysql-devel net-snmp net-snmp-devel net-snmp-utils net-snmp-libs gcc curl curl-devel libxml2-devel libxml2

Atenção na hora de realizar o download dos fontes para escolher a versão correta (Alpha Releases).

Configurar e Compilar os Códigos Fontes (Sources):
Na seção configurar e compilar os códigos fontes, precisamos adicionar o novo pré-requisito utilizado no monitoramento de VMs a libxml2.
./configure --enable-server --with-mysql --with-net-snmp --with-libcurl --enable-agent --with-libxml2

Observe na saída final a linha de Flags de Compilação:
Compiler flags:        -g -O2  -I/usr/include/mysql -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -fasynchronous-unwind-tables -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv -fPIC  -fPIC -g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1        -I/usr/include/rpm -I/usr/local/include -I/usr/lib/perl5/CORE -I. -I/usr/include   -I/usr/include/libxml2

Todo o resto do processo permanece inalterado.

Conhecendo os Templates Disponíveis:

Templates Disponíveis
Configurando o Host:
Faça a configuração normal do host, acrescente o template e as seguintes macros:
{$URL}: https://<IP-address>/sdk (URL do vCenter / ESX / ESXi)
{$USERNAME}: Usuário
{$PASSWORD}: Senha

Se estiver na dúvida sobre esses dados, acesse https://<IP-address> e clique em Browse datastores in this host's inventory, teste seu usuário e senha, se der certo é esse usuário e senha que você vai usar ;-)
Testando credencias
Exemplos de Dados Coletados:

Dados do servidor ESXi
VMs Descobertas Automaticamente
VM Windows
VM Linux

VMs descobertas automáticamente
 Considerações Finais:
Usei uma máquina ESXi 5.1 com o template Template Virt VMware vSphere.
Você pode ir no template em Discovery e baixar o intervalo default de 3600 segundos (1 hora) para 300 segundos (5 minutos), para agilizar os testes.

Fonte e Agradecimentos:
Agradeço ao 九龍真乙 @qryuu por ter disponibilizado essa apresentação, eu vinha realizando vários testes sem sucesso, pois não sabia o que colocar na variável {$URL}, mas graças a ele esse tutorial foi possível.

5 comentários:

Unknown disse...

Parabéns Déo,

Ótimo post vai ajudar muita gente inclusive eu.


Unknown disse...

Déo,

Obrigado pelo post, mas estou precisando dos templates do vmware, após minha atualização os templates não foram criados automaticamente. Você pode disponibilizar ?

Ersan Rafael Holstein

André Déo disse...

Ersan,

Os templates podem ser baixados aqui:
https://www.zabbix.org/wiki/Zabbix_Templates/Official_Templates

Abraços,

Unknown disse...

Oi cara. Tudo bem?

Pode dar uma ajudinha?
Segui o seu tutorial e deu tudo certo.... bem quase...

Estou com dois problemas:
1- Toda a framework esta ok, excepto quando vou a administration--Queue dá um erro e diz isso ai:

Connection to Zabbix server "localhost" failed. Possible reasons:
1. Incorrect server IP/DNS in the "zabbix.conf.php";
2. Incorrect DNS server configuration.
Permission denied


2- Nao tou recebendo nada dos ESX hosts e ta tudo bem configurado. Em last data so vejo os dados do agente local :( Pode dar uma ajudinha?

vapochilled.r@gmail.com

Unknown disse...

Ja agora quando voce regista o host no zabbix, voçe da as macros pra ele e no ip desse host bota o ip do esx e deixa la aquela porta 10050 do agent?