Aprendendo Zabbix – Templates – Parte 1

Um dos recursos que dá mais agilidade ao Zabbix é o recurso de template. Várias ferramentas suportam esta funcionalidade, entretanto, o Zabbix é uma das poucas que suporta o recurso em conjunto com herança de propriedades.

Mas o que é este tal deste template ? Pra que serve ?

A infopédia define template como sendo: “Ambiente estabelecido como modelo, permitindo criar conteúdos de uma forma rápida“. Para a monitoração usando o Zabbix  é a definição de um modelo de regras de coleta, níveis de alertas e representações gráficas que podem ser aplicadas facilmente à elementos monitorados.

Basicamente o template serve para facilitar a vida de quem consegue trabalhar de forma organizada. Ao invés de você configurar várias vezes os itens para monitorar um servidor apache você configura uma vez e, como se fosse um brinquedo de blocos, vai relacionando o host com os kits de características que se deseja.

Para conseguir se visualizar as configurações dos templates (e todo o menu de configurações) é necessário utilizar um usuário com perfil, no mínimo, de administrador. Para manter e criar templates faz-se necessário ainda possuir direitos de gravação sobre o grupo ao qual o template está associado.

Para acessar o módulo de templates é necessário acessar: Configure -> Templates.

Menu de acesso aos templates

Ao clicar no menu Templates é exibida lista contendo os templates que estão cadastrados no ambiente e que você possua acesso para visualizar. A lista possui colunas com resumo das características de cada template.

Lista de templates

As informações estão distribuídas da seguinte forma:

  1. Nome do template e o link para editar as propriedades do template, links com outros templates, macros do template, etc;
  2. Quantitativo de aplicações e o link para manter seu cadastro no template (as aplicações são uma forma de agrupar itens no Zabbix);
  3. Quantitativo de Itens e o link para manter seu cadastro no template;
  4. Quantitativo de Triggers e o link para manter seu cadastro no template;
  5. Quantitativo de Gráficos e o link para manter seu cadastro no template;
  6. Quantitativo de telas e o link para manter seu cadastro no template;
  7. Quantitativo de autobusca (Low Level Discovery – LLD) e o link para manter seu cadastro no template;
  8. Link para acesso rápido a outros templates que são herdados para compor o template atual;
  9. Lista de hosts associados ao template;

O suporte a telas e LLD foi uma adição da versão 2.0 do Zabbix, até então não era possível se definir telas padronizadas para os hosts. As telas definidas em nível de template só estão acessíveis a partir dos mapas, ao se clicar na opção de Telas do menu Dashboard as mesmas não aparecem.

Para criar um template é preciso clicar no botão Criar Template situado no canto superior direito da tela.

Botão Criar Template

É exibido um formulário que possibilita a definição básica do template. Na aba Template é necessário o preenchimento de, no mínimo dois campos:

  • Nome do Template – Identificador único daquele template dentro daquele ambiente. O Zabbix também não aceita que exista um template e um host com o mesmo nome.
  • Grupos – Grupo ou grupos ao qual o template pertence. Você pode selecionar os grupos já existentes de uma lista ou criar um novo. Para criar novo grupo de templates é necessário o perfil de super administrador do ambiente.

Templates - Novo

 

A aba Associado aos Templates tem a finalidade de possibilitar associações entre templates. Este recurso adiciona ao Zabbix o conceito de herança, de forma muito similar ao que acontece no desenvolvimento de sistemas.

Ao associar um template a outro você herda automaticamente qualquer definição que exista no template “pai” e não é permitida a exclusão de definições, apenas a desativação e alguns ajustes de configurações. Esta inibição de determinados itens ou triggers é análoga a mudança de visibilidade de métodos que as linguagens orientadas a objetos implementam.

A aba Macros adiciona outro recurso muito poderoso ao Zabbix que é pouco explorado na maioria dos ambientes devido à pouco conhecimento dos administradores de monitoração. As macros podem existir em três níveis:

  • Nível de ambiente – Acessíveis em: Administração – Geral – Macros;
  • Nível de template – Acessível através da aba Macros do template;
  • Nível de host – Acessível através da aba Macros do host;

É possível a utilização das macros nos ítens e nas triggers. A utilização consciente e planejada deste recurso pode reduzir significativamente a quantidade de templates e o custo de manutenção destes.

Finalizada a definição das características de seu template clique no botão Botão Salvar - Zabbix situado no canto inferior esquerdo da tela. Após salvar o registro o Zabbix irá retornar para a tela com a lista de templates.

Dita a parte teórica… vamos ao que interessa que é a prática!

Para exercitar o conceito dos templates vamos criar um template simples que pode ser aplicado facilmente ao seu próprio servidor Zabbix: um template para monitorar um servidor apache.

Vamos criar um template com as características abaixo:

Tabela 1 – Definição do Template – 103_Apache
Nome 103_Apache
Nome de Exibição (opcional) Monitoração de Disponibilidade do Apache
Grupos 100 – Linux

 

Acesse a tela de templates (Configuração -> Templates) e clique no botão Criar Template. Será aberto um formulário e você o preencherá conforme as definições da tabela 1, após o preenchimento ele deverá estar similar à imagem abaixo e você poderá clicar no botão Salvar.

Template - Cadastro

Neste momento temos um template que serve para… exatamente nada ! Para o template ser útil temos que definir primeiramente o que esperamos poder coletar com ele.

Tabela 2 – Definição dos primeiro item do template 1
Nome Processo do Apache
Tipo agente Zabbix
Chave proc.num[apache2]
Intervalo atualização (em seg) 300
Manter histórico (em dias) 7
Manter estatísticas (em dias) 365
Nova Aplicação Apache

Após salvar o template o Zabbix retornou para a lista de templates, clique no link Itens(0) da linha que exibe o template 103_Zabbix, isso lhe levará para a tela de itens internos do template em questão.

No alto da tela (acostume-se a este padrão… todas as telas do Zabbix tem o botão de criar “blablabla” no canto superior direito da barra de título) existe o botão Criar Item, clique nele e preencha o formulário com os dados descritos na tabela 2. Sua tela deverá estar similar à tela abaixo.

item_cadastro_proc_apache_2

Clique em Salvar e teremos o nosso primeiro item cadastrado no template.

Mas… dependendo da distribuição que você estiver utilizando… este item não vai cumprir a função que você deseja pois o nome do processo responsável pelo apache pode variar de distribuição para distribuição. Como fazer então ? Fazer N templates ? Um para cada distribuição ?

Absolutamente NÃO. Lembrem-se que na hora da criação do template tinhamos uma aba chamada Macros… agora vamos utiliza-la pois vamos construir um template adaptável para as diversas distribuições.

Cliquem no link para editar o template conforme a imagem abaixo destaca.

Template - 103 - Retorno a definições do template

Será apresentada a tela de definições gerais do template. Cliquem na aba Macros para que possamos preenche-la conforme as definições abaixo.

Tabela 4 – Definição de macro
Macro {$APACHE_PROCESSO}
Valor httpd2-prefork

Sua tela deverá estar similar à imagem abaixo, confira e clique no botão Salvar.

Template 103 - Editar Macro

Agora precisamos ajustar o item para que ele utilize esta macro que acabamos de definir. Clique no link Itens(1) da mesma linha do template 103_Apache. Observem que na lista aparece o nome de exibição do template (Monitoração de disponibilidade do Apache) e não o nome real, estou citando propositalmente o nome real do template para que se acostumem com isso. É uma opção de projeto utilizar-se ou não do nome de exibição, ele não é obrigatório e tampouco existia em versões anteriores da ferramenta mas foi adicionado na versão 2.0.

Clique agora no nome do item “Processo do apache” para editarmos suas propriedades. Mude a Chave dele para que fique conforme exemplo abaixo e salve a configuração.

Template 103 - Editar item de monitoração do processo do apache

Agora temos um template que aceitará facilmente a customização, em nível de host, do nome do processo responsável pelo servidor de aplicações Apache. Crie agora outro item para coletar quanto o apache está ocupando de memória RAM.

Tabela 5 – Item para coleta da quantidade de memória
Nome Quantidade de memória utilizada pelo Apache
Tipo agente Zabbix
Chave proc.mem[{$APACHE_PROCESSO}]
Intervalo atualização (em seg) 300
Manter histórico (em dias) 7
Manter estatísticas (em dias) 365
Aplicação Apache

Observe que agora já criamos o item utilizando a macro e não precisamos criar novamente a aplicação, apenas seleciona-la.

Temos agora um template com dois itens sendo coletados a cada cinco minutos (300 segundos), mas apenas coletar dados não soma muito na gerência de serviços é preciso ter como definir limites que sinalizem problemas em nossa infra-estrutura. No Zabbix estes limites são conhecidos como Triggers.

Para este post não ficar grande demais da conta irei tratar das triggers num post adicional. Espero que este texto tenha lhe auxiliado a conhecer um pouco mais da ferramenta.