Aprendendo Zabbix – Templates – Parte 2

Conforme o prometido no artigo anterior continuamos aqui o aprendizado sobre o que considero ser o núcleo de otimização do Zabbix: os templates.

No artigo anterior você aprendeu a construir templates simples que coletam dados a partir  de um agente. Neste artigo vamos demonstrar como transformar estes dados em novas informações, como criar representações gráficas dos dados coletados, importação e exportação de templates e sobre conceitos de herança entre templates.

As Triggers

A tradução correta de trigger para o português seria gatilho, entretanto, este termo tem um tom muito pejorativo e remete a algo feito “nas coxas”, “sem qualidade” e por isso a comunidade optou por manter o termo original.

O conceito de trigger (gatilho) nos remete a banco de dados, é esta a nomenclatura adotada para a execução automatizada de procedimentos sempre que um evento acontecer. No Zabbix não é diferente, as triggers são como uma “marca d´agua”, limites configuráveis para representar situações que temos que estar atentos.

Quando uma trigger é acionada automaticamente o Zabbix replica esta informação para todos os mapas, telas e dashboards onde o host ou os grupos ao qual o host está associado estejam representados. Além da apresentação gráfica do incidente é possível a representação sonora (beep) e a configuração de Ações específicas (veremos isso em um artigo posterior) visando notificar os administradores ou até mesmo executar procedimentos automatizados visando mitigar o incidente.

Voltemos ao listagem de templates e cliquemos no link Triggers (0) do template 103_Apache. Será apresentada a lista de triggers configuradas para este template que, neste momento, deve estar vazia. Clique no botão Criar Trigger para abrir o formulário de cadastro de triggers o preenchendo conforme a tabela 1.

Tabela 1 – Trigger de alerta do processo do apache
Nome Não existe processo do apache sendo executado
Expressão {103_Apache:proc.num[{$APACHE_PROCESSO}].last(0)}=0
Severidade Alta

Existem duas formas de preencher a expressão no formulário, você pode digitar manualmente ela no campo ou utilizar o botão Adicionar para, através de uma sequência de passos, ir selecionando o que deseja. A segunda forma é muito boa quando está se iniciando pois reduz a curva de aprendizado uma vez que todas as principais formas de construção da expressão estão previstas nas telas. A imagem abaixo apresenta a sequência de passos para construir a mesma expressão descrita na tabela 1.

Template 103 - Trigger - Processo Apache

Uma vez que os dados estejam preenchidos você deve clicar no nível de severidade desejado (observe que ele irá mudar de cor para confirmar o nível de severidade selecionado) e clicar no botão Salvar.

Template 103 - Trigger - Processo Apache - Nivel Severidade

Pronto! Viu como é simples criar uma trigger no Zabbix ? Neste momento temos uma trigger capaz de detectar caso o apache não esteja rodando pois quando o apache não estiver rodando não haverá processo dele executando em memória.

Mas sabemos que existem situações mais complexas, que exigirão expressões não tão simples e iremos tratar isso em artigo posterior.

Neste momento você pode estar pensando, e com razão, que tem um template mas ainda não o testou… não tem como ter certeza de que ele funciona! Vamos então tirar esta dúvida cadastrando um host simples e o configurando para utilizar o template.

Acesse a tela de Hosts (Configuração -> Hosts) e clique no botão Criar Host. Será exibido o formulário de cadastramento de host e você deverá preenche-lo conforme a tabela 2 define.

Tabela 2 – Host de testes
Nome Servidor_Teste_1
Novo Grupo de Hosts TESTES
Interfaces do Agente -> Endereço IP 127.0.0.1

 

Como você deve ter percebido o IP do servidor de testes é o endereço de loopback do próprio servidor Zabbix, usamos esta abordagem para facilitar os testes. Além dos dados básicos do host precisamos associa-lo ao template 103_Apache para que ele possa executar o plano de monitoração lá definido.

Template - 103 - Associar host a template

Para associar o host a um template clique na aba Templates, clique no link Adicionar, selecione o template desejado na janela de seleção (no nosso caso o template 103_Apache) e clique no botão Selecionar. A tela de host será recarregada ficando conforme imagem abaixo.

Template - 103 - Host Associado ao template

Agora é clicar no botão Salvar e aguardar a coleta dos dados. Enquanto aguardamos a coleta dos dados vamos criar gráficos em nosso template, neste momento serão gráficos  simples pois os itens são poucos e sem muita variação esperada.

Vamos criar um gráfico para representar o consumo de memória dos processos do apache. Para criarmos gráficos no nosso template precisamos retornar à tela de templates (Configuração -> Templates) e clicar no link Graficos (0) do template 103_Apache. Clique no botão Criar Gráfico para abrir o formulário de cadastro de gráficos.

Tabela 3 – Gráfico de memória
Nome Apache – Uso de memória
Tipo do Gráfico Normal
Item 1 Processo do Apache

Após informar o tipo e o nome do gráfico clique no link Adicionar existente na caixa Itens e selecione o item Processo do Apache. A sua tela será modificada exibindo configurações adicionais para o item.

Template 103 - Grafico de uso de memória

Ajuste o Estilo para “Área Gradiente” e mude a cor para um tom de verde, na sequência clique no botão Salvar e terá um novo gráfico definido para todos os hosts associados ao template 103_Apache.

Vamos consultar os dados recentes e verificar se os dados estão sendo coletados com sucesso?

Para consultar os dados coletados é necessário ir até a tela de Dados Recentes (Monitoração -> Dados Recentes), selecionar o host desejado (dependendo das telas que você visitou nesta sessão com o Zabbix pode ser necessária a seleção do grupo também).

Template 103 - Visualizando dados coletados

Ao clicar no botão + existente antes do grupo Apache podemos verificar que os dois itens definidos estão sendo coletados e que o item Quantidade de Memória Utilizada pelo Apache está representando os dados coletados em usa unidade básica (byte) o que o torna pouco agradável para lermos uma vez que é padrão do mercado usar a notação em Megas ou em Gigas para representar esta informação. Retornemos então à definição do item para que possamos ajustar esta representação.

Retorne a tela de itens (Configuração -> Templates -> Itens (2)) abrindo a tela de itens do template 103_Apache e clique no nome do item desejado para edita-lo, conforme exemplifica a imagem abaixo.

template_103_item_memoria_ajuste_1

Você deve alterar o campo Unidades informando o valor “B” (Letra B maiúscula) e clicar no botão Salvar para que o Zabbix entenda corretamente qual tabela de notação deverá ser utilizada. Retorne à tela de dados recentes e verifique a diferença.

Template 103 - Dados Recentes 2 - Formatação

Importação de templates

Neste momento temos um primeiro template construído e precisamos de mais outro para que eu possa explicar de forma mais didática o conceito de herança. Vou resolver este problema ao ensinar uma técnica que você utilizará muito no Zabbix: a importação de templates.

O processo de importação (e de exportação) do Zabbix utiliza um arquivo XML (arquivo texto com tags padronizadas). Através deste arquivo de texto é possível se transferir entre servidores Zabbix os perfis de monitoração desejados.

Vamos testar este processo ao importar arquivo XML existente aqui neste blog. Este arquivo XML tem as configurações de um template simples para monitoração de disponibilidade de um servidor MySQL.

Tabela 4 – Composição do template 102_MySQL
Quantidade de Itens 3
Quantidade de Triggers 2
Quantidade de gráficos 1

Para importar o template execute as tarefas abaixo:

  • Baixe o arquivo do template (usando o link de download logo abaixo);
  • Acesse a tela de templates (Configuração -> Templates);
  • Clique no botão Importar situado no alto da tela;
  • Será aberto formulário de importação de dados, clique em Escolher Arquivo e selecione o template que você baixou no primeiro passo;
  • Cerfifique-se que o formulário está similar à imagem abaixo e clique no botão Importar;

[wpdm_file id=9]

Template 102 - Importar

Ao final da importação deverá aparecer mensagem (com fundo verde) informando que a importação foi concluída com sucesso. Retorne à tela de templates (Configuração -> Templates) e certifique-se que no grupo “100 – Linux” existe o template 102_MySQL pois para os próximos exercícios iremos utilizar recurso de herança e ele será utilizado.

Herança entre templates

Poder criar perfis de monitoração para aplicação em múltiplos elementos a serem monitorados (hosts) já acelera consideravelmente o processo de configuração da monitoração, além de padronizar as técnicas de gerência.

Mas várias vezes temos situações onde precisamos agrupar perfis ou então criar novos perfis estendendo as características de monitoração, definindo novos limites, etc. O Zabbix possibilita isso através da aba Associado aos templates.

Vamos exercitar esta funcionalidade então através da junção de dois templates em um novo template. Acredito que em seu ambiente seja comum ter servidores com o famoso kit Linux+Apache+PHP+MySQL (LAMP). Nós já temos aqui templates para monitorar o Apache e para monitorar o MySQL mas não temos nada que monitore o PHP.

Sabemos que, por via de regra, não é usual ter o PHP sem ter um apache (ou um outro servidor de páginas). Vamos então criar um novo template e associa-lo aos templates de monitoração do Apache e do MySQL, ele terá as características definidas na tabela 5.

Tabela 5 – Associação
Nome 105_Apache_PHP_MySQL
Associação 1 102_MySQL
Associação 2 103_Apache

 

Para criar o novo template execute as tarefas abaixo:

  • Use o botão Criar Template para abrir o formulário de cadastro de templates;
  • Informe o Nome;
  • Clique na aba Associado aos Templates;
  • Clique no link Adicionar;
  • Selecione os dois templates informados na tabela 5;

O seu formulário deverá estar similar à imagem abaixo.

Template 105 - Associado ao 102 e 103

 

Salve o registro e observe a listagem de templates: o novo template tem a soma das propriedades dos outros dois templates.

template_105_lista

 

Clique no link Itens (5) do template 105 e observe que os itens deste template são um pouco diferentes dos itens que você cadastra normalmente. Antes do nome de cada item tem a indicação da origem do mesmo (que é externa…). Temos aqui um padrão bom de recordarmos.

Nas listagens do menu configuração temos então três padrões:

  1. Linhas com nome precedido de identificador de origem na cor cinza – ele é um item herdado de um template;
  2. Linhas com nome precedido de identificador de origem na cor amarela – item foi criado automaticamente através do processo de descoberta de baixo nível (LLD – será visto num próximo artigo);
  3. Item sem nenhum indicador de origem – item convencional;

Os itens convencionais (que você criou no primeiro artigo sobre templates) são aqueles que você tem total controle… pode mudar qualquer característica… pode excluir até.

Itens do tipo 1 e do tipo 2 por outro lado você tem um controle restrito. Você pode modificar algumas informações. As figuras abaixo exemplificam estas restrições, os campos com fundo cinza não podem ser modificados por pertencerem a um elemento herdado de outro template.

template_105_exemplo_item_herdado
Exemplo de edição limitada de um item que é herdado de um template
template_105_exemplo_trigger_herdado
Exemplo de edição limitada de um template que é herdado de um template