Atenção: esse artigo tem um vídeo complementar. Clique e assista!

Do que se trata o artigo:

Este apresenta como implantar uma ferramenta de monitoramento de infraestrutura usando a solução Zabbix.


Em que situação o tema é útil:

Em um ambiente de TI com vários sistemas operacionais, servidores e serviços, saber como eles estão se comportando e ser avisado preventivamente ajuda a intervir antes que problemas maiores se apresentem.

Resumo DevMan:

A infraestrutura de TI (Tecnologia da Informação) corresponde às plataformas de hardware, telecomunicações, redes, instalações físicas e pessoas necessárias para exercerem os papéis e responsabilidades relativos à TI. Neste contexto, este artigo apresenta uma ferramenta que oferece um serviço distribuído de monitoramento, possibilitando o acompanhamento e a geração de alertas e relatórios para auxiliá-lo na gestão e a fazer intervenções em sua infraestrutura de TI.

“Você não pode gerenciar o que não pode medir”. Esta frase, presente em qualquer livro sobre gerência, joga luz sobre um assunto que muitos responsáveis pela infraestrutura de suas empresas por vezes desconhecem: Como está a minha estrutura/rede/serviço?

Responder a esta pergunta é cada vez mais difícil por que nossas redes e serviços são cada vez mais complexos e não raramente envolvem plataformas (Windows, Mac, Linux), versões (Vista, 7, 2008, Ubuntu, CentOS), serviços (bancos de dados, servidores web) e dispositivos (servidores, roteadores, switches) diferentes.

A infraestrutura de TI corresponde às plataformas de hardware, telecomunicações, redes, instalações físicas e pessoas necessárias para exercerem os papéis e responsabilidades relativos à TI. Uma vez que estabelecemos a arquitetura de TI, que é o desenvolvimento do modelo de dados corporativo e ainda dos serviços necessários para atender os requisitos de negócio e o alcance dos objetivos definidos para o mesmo, podemos então passar para a definição do hardware, dos recursos de TIC e das habilidades e capacidades que são necessárias para que a infraestrutura possa ser operada e produza os resultados esperados.

Após a definição da infraestrutura de TI de uma organização, podemos agora tratar das necessidades de recursos humanos necessários para a gestão, operação e manutenção dos demais itens que compõem tal infraestrutura. Além disto, se ainda não conhecemos os requisitos do negócio, torna-se difícil a definição das habilidades e capacidades que precisamos contratar ou desenvolver, além de planejar o aperfeiçoamento das mesmas ao longo do ciclo de vida da infraestrutura. Além disso, aliado às pessoas, precisamos também definir quais ferramentas de apoio poderão ser utilizadas no apoio às atividades de manutenção da infraestrutura de TI.

Neste contexto, neste artigo apresentaremos uma ferramenta que se propõe a oferecer um serviço distribuído de monitoramento, sendo capaz de acompanhar e gerar alertas e relatórios para auxiliá-lo na gestão e a fazer intervenções na sua infraestrutura de TI.

O cenário

A realidade das empresas hoje já envolve a necessidade de gerir diferentes itens de TI, como:

· Acesso à Internet (talvez mais de um provedor por questão de redundância);

· Servidor de arquivos (um Linux com Samba ou Windows com Active Directory/Servidor de domínio);

· Servidor de hospedagem do site/e-mail/banco de dados (hospedado na própria rede ou na nuvem – ler Nota DevMan 1);

· VPN ligando a empresa com filiais ou clientes (ler Nota DevMan 2).

Nota DevMan 1. Computação em Nuvem

O conceito de computação em nuvem (em inglês, cloud computing) refere-se à utilização da memória e das capacidades de armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade.

O armazenamento de dados é feito em serviços que poderão ser acessados de qualquer lugar do mundo, a qualquer hora, não havendo necessidade de instalação de programas ou de armazenar dados. O acesso a programas, serviços e arquivos é remoto, através da Internet – daí a alusão à nuvem.

Nota DevMan 2. VPN

Rede Privada Virtual é uma rede de comunicações privada normalmente utilizada por uma empresa ou um conjunto de empresas e/ou instituições, construída em cima de uma rede de comunicações pública (como por exemplo, a Internet). O tráfego de dados é levado pela rede pública utilizando protocolos padrão, não necessariamente seguros.

VPNs seguras usam protocolos de criptografia por tunelamento que fornecem a confidencialidade, autenticação e integridade necessárias para garantir a privacidade das comunicações requeridas. Quando adequadamente implementados, estes protocolos podem assegurar comunicações seguras através de redes inseguras.

Como gestor você precisa saber como cada um dos componentes acima está se comportando e deseja ser informado de eventuais problemas que aconteçam.

Os problemas de gerenciar esta infraestrutura começam a surgir quando você percebe que cada fornecedor pode ou não disponibilizar um software de monitoramento, e quando faz, você precisa acessar vários programas (específicos de cada componente de sua infraestrutura) para obter as informações desejadas. Como resolver isso?

A solução

A solução para suprir essa falta de integração é usar uma ferramenta que permita coordenar a obtenção dos dados e unificá-los sob a forma de um controle único.

Existem várias alternativas no mercado que prometem fornecer essa integração, como o HP Operations Manager (ler Nota DevMan 3) ou o IBM Tivoli (ler Nota DevMan 4). Entretanto, estas ferramentas possuem um custo de implantação e manutenção elevados, o que os torna proibitivos para muitas empresas.

Nota DevMan 3. HP Operations Manager

O HP Operations Manager monitora a infraestrutura de TI e consolida e correlaciona eventos de falhas e desempenho para ajudar a identificar as causas dos incidentes de TI. Para isso, o HP Operations Manager fornece um console de monitoramento único para infraestruturas virtuais e em nuvem.

Nota DevMan 4. IBM Tivoli

O Gerenciamento de Serviços IBM oferece soluções interessantes para você planejar, construir e gerenciar uma infraestrutura dinâmica que viabiliza a melhoria dos serviços, a redução de custos e o gerenciamento de riscos. Para exemplificar temos o IBM Maximo Asset Management, que é um sistema de software que fornece suporte abrangente para suas necessidades de gerenciamento de cadeia de suprimentos de ativos, manutenção, recursos e peças.

O Tivoli permite que você gerencie seus serviços, aplicativos e processos operacionais de TI críticos com base nas prioridades dos negócios, fornecendo visibilidade, controle e automação para uma infraestrutura de serviço continuamente otimizada.

Entram então em cena soluções open-source, das quais o Zabbix (ver link de acesso na seção Links) se destaca por ser uma solução completa e escalável considerando milhares de recursos monitorados.

Dentre as funcionalidades oferecidas pelo Zabbix destacamos:

· Descoberta automática de servidores e dispositivos de rede;

· Monitoramento distribuído e administração via web centralizada;

· Servidor com suporte de software para vários sistemas operacionais, tais como Linux, Solaris, HP-UX, AIX, FreeBSD, Open BSD, OS X;

· Agentes de monitoramento para Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OSX, Tru64/OSF1, Windows NT4.0, Windows 2000, Windows 2003, Windows XP e Windows Vista;

· Autenticação de usuários;

· Sistema de permissões de acesso flexíveis;

· Controle de notificação por e-mail na ocorrência de eventos;

· Logs para auditoria.

Uma característica adicional interessante é a relativa baixa exigência que o Zabbix tem quanto ao hardware necessário para seu uso. O desenvolvedor da solução sugere como referência os valores abaixo:

· Pequenas instalações (até 20 elementos monitorados) – Ubuntu Linux, PII 350Mhz, 256 MB RAM e MySQL (MyISAM);

· Médias instalações (até 500 elementos monitorados) – Ubuntu Linux 64Bits, AMD Athlon 3200+, 2 GB RAM e MySQL (InnoDB);

· Grandes instalações (acima de 1000 elementos monitorados) – Ubuntu Linux 64Bits, Intel dual core 6400, 4 GB RAM e RAID10 MySQL (InnoDB) ou PostgreSQL;

· Instalações muito grandes (acima de 10000 elementos monitorados) – Red Hat Enterprise, 2x Intel Xeon, 8 GB RAM e RAID10 MySQL (InnoDB) ou PostgreSQL.

O ambiente de testes

Seria impossível cobrir todas as funcionalidades ou possibilidades de uso do Zabbix em um artigo. Sendo assim, para exemplificar o uso do Zabbix nosso ambiente irá monitorar:

· Um serviço Web Apache;

· Um serviço de banco de dados MySQL;

· A carga da CPU do servidor;

· Um gateway para acesso a Internet no endereço 10.0.0.1.

Com isso, iremos acompanhar como monitorar a disponibilidade de serviços (MySQL, WWW), a conexão à Internet e a performance do servidor.

Para tornar o monitoramento possível, seguiremos aqui um conjunto de etapas que serão discutidas nas próximas seções. De forma resumida, nosso trabalho será desenvolvido considerando os seguintes passos:

· Passo 1 – Instalação do Servidor Zabbix: aqui efetuaremos a instalação do servidor Zabbix de forma que possamos dar início à sua configuração;

· Passo 2 – Configuração do Servidor: uma vez que os programas do Zabbix tenham sido compilados e instalados no passo anterior, trabalharemos nesta etapa com a configuração de alguns parâmetros do servidor;

· Passo 3 – Configuração da Interface Web de Monitoramento: nesta etapa veremos como configurar a interface web para facilitar nossas atividades de monitoramento da infraestrutura;

· Passo 4 – Configurando o monitoramento: nesta etapa definiremos os itens que serão monitorados em nossa infraestrutura de TI;

· Passo 5 – Acessando os dados monitorados: esta é a última etapa, onde veremos como acessar os dados coletados pelo Zabbix.

Passo 1 – Instalação do servidor Zabbix

Em nosso estudo de caso, utilizaremos um servidor Linux, com distribuição CentOS 6 com o Apache, PHP e MySQL instalados para servir de base para o Zabbix realizar o monitoramento e consulta.

Como pré-requisitos para a instalação você deve se certificar que os pacotes abaixo estão instalados no servidor:

· Apache;

· Mysql-server;

· PHP;

· Php-mbstring;

· Php-mysql;

· GCC;

· Net-snmp-devel;

· Libcurl-devel.

A instalação do sistema operacional e dos serviços mencionados acima está fora do escopo deste artigo.

O primeiro passo da instalação do Zabbix consiste em obter os fontes do Zabbix. A versão atual é a 1.8.6 e pode ser obtida em http://prdownloads.sourceforge.net/zabbix/zabbix-1.8.6.tar.gz?download.

Você deve descompactar o pacote obtido executando o comando apresentado abaixo:

#tar -zxvf zabbix-1.8.6.tar.gz

Este comando irá criar uma pasta zabbix-1.8.6 na qual você poderá compilar o código-fonte.

O segundo passo consistirá em criar o banco de dados e as estruturas de dados para o Zabbix. Para isso, siga os comandos da Listagem 1. Perceba que na Listagem 1 inicialmente criamos o banco dados zabbix e definimos o conjunto de caracteres válidos para utf8. Na sequência, criamos o esquema do banco de dados considerando para isso o script disponibilizado na pasta do Zabbix.

Listagem 1. Criando o banco de dados zabbix e estruturas de dados.

  # cd zabbix-1.8.6
  # mysql
  mysql> create database zabbix character set utf8;
  mysql> quit;
  # cd create/schema/
  # mysql zabbix < mysql.sql
  # cd ../data
  # mysql zabbix < data.sql
  # mysql zabbix < images_mysql.sql

Criada a estrutura de dados, no terceiro passo faremos a compilação do Zabbix. Na Listagem 2 vemos os comandos que devem ser executados.

Listagem 2. Compilando o servidor.

  # cd ../..
  # ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl
  # make
  # make install

No final deste processo teremos compilado e instalado os programas necessários em /usr/local/bin e /usr/local/sbin.

O quarto passo consistirá em criar o usuário zabbix no sistema operacional. Isso é necessário por que o Zabbix não pode ser executado com privilégios de root. Para criar o usuário zabbix, observe o código a seguir:

#useradd zabbix

Por fim, para finalizarmos a instalação do Zabbix, devemos copiar os arquivos da interface web de monitoramento. Isto deve ser feito conforme código apresentado na Listagem 3.

Listagem 3. Copiando os arquivos da interface web.

  # mkdir /var/www/html/zabbix
  # cd frontends/php/
  # cp -a . /var/www/html/zabbix

Passo 2 – Configuração inicial do servidor

Uma vez que os programas do Zabbix foram compilados e instalados, você precisa realizar a configuração do servidor. Como modelo, existe um arquivo de exemplo que vem com o pacote do código-fonte que foi obtido na etapa anterior.

Iremos usar esse arquivo e modificá-lo de acordo com a nossa necessidade. Apenas um pequeno número de configurações será feita no arquivo, já que os monitores, alertas e o funcionamento em si do Zabbix serão criados através de uma interface web própria que veremos em breve. Na Listagem 4 fazemos a cópia do arquivo de configuração inicial.

Listagem 4. Copiando o arquivo de configuração padrão.

  # mkdir /etc/zabbix
  # cp misc/conf/zabbix_server.conf /etc/zabbix
  # cp misc/conf/zabbix_agentd.conf /etc/zabbix

Como vimos anteriormente, por questões de segurança o Zabbix não aceitará ser executado com privilégios de root (por isso você precisou criar o usuário zabbix). Neste sentido, precisamos agora editar o arquivo de configuração e alterar os parâmetros conforme a Listagem 5.

Listagem 5. Configurando o usuário e senha do banco de dados.

  # vi /etc/zabbix/zabbix_server.conf
  DBUser=root
  DBPassword=senha

Você deverá usar na variável DBUser o nome do usuário que terá acesso ao banco de dados, por padrão root, e em DBPassword qual a senha deste usuário. Caso você não tenha alterado a senha padrão do MySQL, você deve deixar em branco o campo DBPassword. Em seguida você pode iniciar o servidor conforme a Listagem 6.

Listagem 6. Iniciando o servidor Zabbix.

  # /usr/local/sbin/zabbix_server
  # /usr/local/sbin/zabbix_agentd

Neste momento o servidor Zabbix já está operacional, apesar de não estar monitorando nenhum recurso. Você deverá agora configurar a interface de monitoramento web.

Passo 3 – Configurando a interface web de monitoramento do servidor

Durante a instalação do servidor foram copiados os arquivos de interface web. Utilizar a interface web para monitoramento é uma boa prática uma vez que ela irá facilitar e muito nossas atividades como administrador da infraestrutura de TI.

Porém, antes que você possa usar a interface web é preciso verificar se o PHP está configurado com os requisitos mínimos necessários pelo Zabbix. Para configurar a interface web de monitoramento, edite o arquivo /etc/php.ini de maneira que as variáveis estejam pelo menos com os valores apresentados na Listagem 7.

Conforme a Listagem 7, definimos que o tamanho máximo será de 32M e os tempos máximos de execução e entrada serão de 600.

Listagem 7. Parâmetros mínimos do PHP.

  #vi /etc/php.ini
  post_max_size = 32M
  max_execution_time = 600
  max_input_time = 600

Como parte do processo de configuração da interface será necessário ainda dar permissão para que o servidor web possa criar e alterar arquivos de configuração. Para isso, execute os comandos apresentados na Listagem 8.

Listagem 8. Alterando permissão para os arquivos de configuração.

  # chown apache /var/www/html/zabbix/conf/
  # chmod g+rwx /var/www/html/zabbix/conf/

Feito isso, agora você pode abrir o seu navegador e digitar o endereço http://localhost/zabbix. Ele irá mostrar a tela de início de instalação da ferramenta visual de monitoramento. Nesta tela, clique na opção Next.

A tela seguinte basicamente exibe a licença de uso. Você deverá marcar a opção I agree e mais uma vez selecionar a opção Next.

O Zabbix irá fazer então uma verificação de pré-requisitos do sistema (Figura 1). Se todas as variáveis analisadas possuírem ao menos os valores mínimos necessários, o assistente de instalação irá indicar com OK ao lado de cada pré-requisito e habilitar a opção Next.

Caso algum pré-requisito não esteja satisfeito ele não irá habilitar a opção de avançar. Se este for o caso, você deve verificar os valores indicados e recarregar a página.

Figura 1. Verificação de pré-requisitos.

Você deverá agora configurar a conexão com o banco de dados. Informe o User e Password de acordo com os utilizados em /etc/zabbix/zabbix_server.conf­ – veja a Figura 2. Clique em Test Connection e se ele apresentar o OK, clique em Next. Caso não seja possível efetuar a conexão com o banco, verifique se os parâmetros informados estão corretos.

Figura 2. Configurando a conexão com banco de dados.

O próximo passo é informar um nome para a instalação no campo Name e manter os demais parâmetros conforme o padrão (host = localhost; port = 10051). Clique então na opção Next.

Agora você irá conferir os parâmetros informados (Figura 3) e clicar em Next para realizar a criação do arquivo de configuração para a interface de monitoramento. Se você desejar alterar algum parâmetro, basta escolher a opção Previous e fazer as mudanças que achar necessário.

Figura 3. Confirmando os parâmetros do servidor.

Pronto! Os parâmetros informados foram gravados e você pode clicar em Next para finalizar a instalação. Feito isso, a instalação estará finalizada e você poderá realizar o primeiro acesso e iniciar as configurações da interface de monitoramento. O primeiro login é feito com o usuário admin e senha zabbix (ver Figura 4).

Figura 4. Primeiro acesso.

Passo 4 – Configurando o monitoramento

O Zabbix traz uma série de definições que são necessárias para a sua operação. Dentre elas, quatro são fundamentais:

1. Hosts: para o Zabbix, um host é uma entidade lógica que agrupa itens de interesse para o monitoramento. Um host pode ser um servidor, um roteador, um switch etc.;

2. Item: itens representam quaisquer indicadores que desejamos monitorar, quer seja o uso de CPU, o espaço em disco ou ainda tempo de resposta de um serviço;

3. Triggers: um trigger é um limite a partir do qual alguma ação, normalmente de notificação, será executada automaticamente. Criaremos triggers quando quisermos ser avisados sobre eventos específicos, tais como espaço em disco de um servidor ou consumo de banda de um link;

4. Actions: uma action corresponde a uma ação que será executada quando um trigger for acionado. Podemos definir ações como envio de e-mail, sms ou ainda execução de scripts.

Além disso, é importante sabermos que o Zabbix pode monitorar vários aspectos de nossa infraestrutura, agrupados abaixo em categorias:

· Disponibilidade: Se serviços (ou dispositivos) estão acessíveis;

· Performance: Quais os tempos de resposta de serviços, o consumo de banda de links, de I/O de discos;

· Segurança: Quais portas estão abertas, que versões de software estão instaladas;

· Eficiência: Quais as medidas de acerto (hit/miss ratio) de proxy, cache de bancos de dados.

De maneira a obter as informações que serão usadas no monitoramento, o Zabbix tem suporte a vários tipos de itens, dentre eles:

· Agente Zabbix (Zabbix agent): É o tipo default e corresponde ao software que podemos instalar em computadores. Atua de duas maneiras, passiva, no qual o servidor consulta o agente periodicamente, ou ativa, no qual o agente é que se conecta ao servidor Zabbix;

· Teste simples (Simple check): Operações simples com portas TCP/UDP e ICMP;

· Agente SNMP (Snmp agent): Utiliza o protocolo SNMP para acessar os recursos monitorados;

· Testes externos (External check): Permite ao Zabbix executar programas externos e armazenar o resultado destes. Muito útil quando o que se deseja monitorar é específico e não permite o uso de outros recursos vistos anteriormente;

· Monitor de banco de dados (Database monitor): Conectores para testes a servidores de bancos de dados de diversos tipos;

· Agente SSH: Permite executar comandos remotos através de SSH e armazenar o resultado.

Conhecidas estas definições, a partir de agora definiremos um conjunto de configurações para nosso estudo de caso de monitoramento envolvendo e-mails de notificação, triggers, servidores e actions, dentre outras coisas.

Configurando e-mail para notificação

A forma mais comum de notificação é o e-mail. Para que o administrador do Zabbix seja informado de eventos que aconteçam você precisa configurar qual o endereço de e-mail que ele deverá receber.

Para isso, acesse Administration > Users. Você verá a lista já existente de usuários do Zabbix, conforme a Figura 5.

Figura 5. Lista de usuários do sistema Zabbix.

Escolha o usuário Admin. Você verá que no campo Media (Figura 6) não há meio de notificação definido (No media defined). Clique no botão Add.

Figura 6. Propriedades do usuário Admin.

Informe o e-mail que você deseja que receba as notificações no campo Send to e clique em Add.

Na Figura 7 vemos que por padrão serão enviadas para o e-mail indicado todas as mensagens geradas pelo Zabbix em qualquer dia/horário. O campo When active indica os dias (1-7) e as horas de notificação. Você pode criar vários e-mails de notificação de acordo com a severidade e até mesmo horários específicos. No momento criaremos apenas um e-mail. Clique em Add novamente e em seguida em Save.

Figura 7. Definindo o e-mail de notificação do Admin.

Adicionando um host para monitoramento

Iremos agora adicionar em nosso Zabbix um servidor para monitorarmos. Para tanto, escolha no servidor a opção Configuration > Hosts. No campo Group escolha Linux Servers e clique no botão Create Host. Feito isso, preencha os dados abaixo (Figura 8):

· Name: Nome que identificará nosso servidor;

· DNS Name ou IP address: Se o servidor que você irá monitorar possuir um nome registrado no DNS, use-o, caso contrário, use o IP do servidor;

· Connect to: De acordo com a opção escolhida anteriormente, indique se você deseja usar o nome ou o IP.

Figura 8. Definindo o host.

Para fins deste artigo iremos monitorar os serviços localizados na própria máquina onde o Zabbix está instalado. Nesse caso, use no campo IP Address 127.0.0.1 e no Name digite “Servidor aplicativos”. Em seguida clique em Save. A Figura 9 ilustra como ele irá aparecer.

Figura 9. Host criado.

Adicionando um serviço para monitoramento

Neste momento, nosso servidor já está na lista de servidores conhecidos pelo Zabbix. Precisamos agora adicionar um item para monitoramento que, em nosso exemplo, será o serviço web (WWW).

Selecione novamente Configuration > Hosts e clique em Items ao lado do servidor que você criou. Escolha a opção Create Item. Existem vários campos para configuração do item. Deixaremos a maioria com os valores padrão (Figura 10), definindo apenas:

· Description: Servidor WWW (é o nome com o qual o item será identificado);

· Key: net.tcp.service[http,,80]. Esta chave indica que desejamos monitorar um serviço que usa a porta TCP. O campo http é o nome do serviço que desejamos monitorar e o último é a porta na qual o serviço deve ser encontrado.

Figura 10. Criando um item.

Em seguida clique em Save. Você terá acrescentado o serviço WWW que passa a ser monitorado pelo servidor.

Iremos agora repetir o mesmo procedimento, só que desta vez para monitorar o serviço do servidor MySQL (Figura 11) e a carga do processador (Figura 12).

Os dados para uso serão:

a) MySQL

o Description: Serviço MySQL

o Key: net.tcp.port[127.0.0.1,3306]

b) CPU

o Description: CPU Load

o Key: system.cpu.load

o Type of information: numeric (float)

Figura 11. Monitorando o servidor MySQL.

A principal diferença para o item a) é que como a carga da CPU é indicada como um número com casas decimais, usará o tipo float. Até então estávamos usando o tipo inteiro, já que o monitoramento de serviços só assume dois valores: 0 para problemas e 1 para OK.

Figura 12. Monitorando o consumo da CPU.

Observe agora na Figura 13 o conjunto de itens que iremos monitorar e configurados até o momento.

Figura 13. Itens sendo monitorados.

Passo 5 – Acessando os dados monitorados

Até o momento, o que fizemos foi adicionar hosts e itens para o Zabbix. Ele já está monitorando e armazenando o resultado para consultas. Veremos a partir de agora algumas alternativas para manipularmos estas informações.

Para acessar os dados você pode escolher a opção Monitoring > Latest data. Você pode filtrar quais elementos deseja ver baseado no grupo ou nome do Host. No exemplo da Figura 14, vemos os itens sendo monitorados para o servidor aplicativos e quais os valores obtidos na última checagem. Ainda nesta tela, é possível acessar os gráficos gerados pela ferramenta clicando no link Graph.

Figura 14. Itens monitorados.

Criando triggers

O processo que utilizamos adiciona itens para monitoramento pelo Zabbix. Você pode acompanhar seus desempenhos ou mesmo ter acesso a relatórios de uso. Entretanto, você às vezes precisa ser informado (ou executar outras tarefas) quando certos eventos acontecerem. Por exemplo, você deseja receber um e-mail (ou um SMS) quando o servidor WWW estiver inoperante ou a carga de CPU ultrapassar 50%.

Para atingir este objetivo você precisa inicialmente criar um trigger. Este define condições que você deseja monitorar em um item.

Vamos agora criar um trigger que será ativado toda vez que a carga da CPU ultrapassar 100%. Para isso, acesse Configuration > Hosts e clique em Items para o servidor aplicativos.

Feito isso, clique sobre a opção Create Trigger e preencha os dados abaixo (ver Figura 15):

· Name: “CPU Alta”;

· Expression: “{Servidor aplicativos:system.cpu.load.last(180)}>1”.

O campo Name indica apenas o nome que você deseja utilizar para identificar seu trigger. O campo Expression define qual condição você deseja avaliar. Em nosso exemplo ele indica que se a carga da CPU nos últimos 180s ultrapassar 100%, o trigger será acionado.

Figura 15. Criando um trigger.

É importante lembrar que o trigger, por si só, não executa nenhuma ação, apenas definimos condições para monitorar. Na seção seguinte iremos criar ações (actions) que farão uso dos triggers para saber quando deverão ser executadas.

Criando actions

Para o Zabbix, actions correspondem a operações que serão executadas toda vez que um trigger alterar seu status. A ação mais comum que existe é a notificação. Dessa maneira, o administrador (ou quem ele indicar) pode ser informado quando condições de interesse se manifestarem.

Imagine, por exemplo, que estejamos monitorando o servidor web responsável por atender a intranet de nossa empresa ou ainda o nosso site. Ou ainda que a CPU do servidor está com uma carga acima do esperado. É desejável saber, o quanto antes, que eventuais problemas ou funcionamento fora do esperado ocorreram.

Iremos fazer exatamente isso. Portanto, devemos selecionar Configuration > Actions e escolher a opção Create Action. Para criar a ação você irá realizar as três operações a seguir:

1. Informar um nome para a ação;

2. Selecionar a(s) condição(ões) para indicar que a ação deve ser realizada;

3. Selecionar a ação a ser executada (em nosso caso enviar uma notificação).

A tela inicial deste processo pode ser vista na Figura 16. Informe o nome (Name) CPU Alta Action.

Figura 16. Informando o nome da action.

Em seguida clique em New na parte chamada Action conditions (Figura 17). Escolha a opção Trigger e clique em Select. Você irá escolher dentro da lista de triggers existentes qual você deseja utilizar (Figura 18).

Figura 17. Escolhendo a condição – Parte 1.

Figura 18. Escolhendo a condição – Parte 2.

Feito isso, escolha o trigger recém-criado e clique em Add (Figura 19).

Figura 19. Adicionando condição ao trigger selecionado.

A última operação consiste em indicar que ação desejamos executar. Para isso, clique em New no Action operations (ver Figura 16). Ao selecionar esta opção, a tela da Figura 20 será apresentada. Troque a opção Send Message to para Single User.

Figura 20. Indicando a notificação.

Ainda na tela da Figura 20, clique em Select para exibir a lista de usuários existentes. Selecione o usuário Admin, clique em Add (Figura 21) e em seguida em Save para finalizar o processo de criação da ação (Figura 22).

Figura 21. Selecionando o usuário.

Figura 22. Ação criada.

Pronto! Neste momento você terá criado uma ação de notificação que será enviada toda vez que as condições (triggers) selecionadas mudarem de status. Isso significa em nosso exemplo que toda vez que a CPU ultrapassar a carga indicada o administrador será notificado e quando a CPU reduzir a carga (abaixo desse limite) também.

Conclusão

Ao longo deste artigo vimos uma solução que permite o monitoramento de recursos de forma centralizada e com um sistema de notificação para auxiliar na gestão de seus recursos de infraestrutura, sobretudo de rede.

O exemplo aqui apresentado, apesar de funcional, representa apenas uma pequena parte da real capacidade que o software disponibiliza.

O Zabbix possui muitas outras funções e por ser de código aberto permite expandir seu funcionamento, além de contar com uma comunidade que está realizando constantes melhorias e correções no mesmo.

Links

Site do Zabbix
http://www.zabbix.com