Após o post sobre tuning de mysql alguns leitores me questionaram sobre como eu fazia para monitorar a performance do disco e se eu poderia compartilhar o template.

Para monitorar a performance do disco de um servidor linux eu me utilizo de um script que trata as informações constantes no “arquivo” /proc/diskstats. Neste local conseguimos uma série de dados sobre performance de disco.

Para possibilitar a coleta destes dados é necessária a criação de parâmetros de usuário no agente do Zabbix instalado no servidor a ser monitorado. Os procedimentos aqui descritos importam a necessidade de um restart do agente de monitoração logo, se você vai aplicar isso em ambiente de produção certifique-se de possuir janela de manutenção autorizada (é claro que poder testar os procedimentos aqui descritos em um ambiente de laboratório é sempre recomendado).

Para a instalação deste template será preciso:

  1. Download do pacote do template;
  2. Instalar o script de coleta de dados;
  3. Ajustar permissões;
  4. Alterar o arquivo de configuração do Agente do Zabbix – no servidor a ser monitorado;
  5. Copiar o arquivo de configuração específico para permitir a execução do script;
  6. Reiniciar o agente do zabbix;
  7. Importar o template (Clique aqui para tutorial sobre importação de templates);

Todos os caminhos referenciados neste tutorial se referem a localizações padrões do zabbix 2.0. Se seu ambiente tiver sido instalado em localizações personalizadas poderão ser necessários alguns ajustes.

Efetue download do template e dos scripts clicando aqui  ou execute os comandos abaixo no seu servidor. Nas minhas instalações costumo utilizar o /install ou o /tmp/install para baixar arquivos temporários de instalação do ambiente. Caso seu ambiente adote outro padrão favor modificar as duas primeiras linhas.

mkdir /tmp/install
cd /tmp/install
wget https://github.com/SpawW/zabbix-templates/blob/master/104-disk-performance/104-disk-performance.zip?raw=true
unzip 104-disk-performance.zip

Caso prefira baixar os arquivos individualmente…

wget https://raw.github.com/SpawW/zabbix-templates/master/104-disk-performance/104-Disk-Performance-Linux.xml
wget https://raw.github.com/SpawW/zabbix-templates/master/104-disk-performance/zadiskio.conf
wget https://raw.github.com/SpawW/zabbix-templates/master/104-disk-performance/zadiskio.sh

O script deverá ser instalado na localização padrão para scripts externos e deveremos garantir que o usuário zabbix possui acesso a execução do mesmo.

cp zadiskio.sh /usr/local/share/zabbix/externalscripts/
chown zabbix: /usr/local/share/zabbix/externalscripts/zadiskio.sh
chmod +x /usr/local/share/zabbix/externalscripts/zadiskio.sh

O Zabbix possui suporte à definição de diretório de arquivos de configuração. Esta funcionalidade é muito útil quando se quer proceder com uma monitoração de melhor qualidade o que, normalmente, implica em utilização de recursos adicionais aos nativos da ferramenta (que já são muitos).

Para habilitar é necessária a alteração do arquivo de configuração do agente zabbix (processo feito apenas uma vez, mesmo que se tenha vários arquivos de configuração adicinais).

vi /usr/local/etc/zabbix_agentd.conf

No meu caso a linha é a 217, mas isso pode variar de local para local. Você deve remover o comentário da linha abaixo:

#Include=/usr/local/etc/zabbix_agentd.conf.d/

Deixando conforme o exemplo abaixo e salvando o arquivo:

Include=/usr/local/etc/zabbix_agentd.conf.d/

Eu usei o vi para editar o arquivo, sintam-se livres para utilizar o editor que mais lhe agradar.

Copie o arquivo de configuração que adiciona a referência ao script de coleta de performance do disco para a localização informada na tag Include do agente.

cp zadiskio.conf /usr/local/etc/zabbix_agentd.conf.d/

Neste momento está concluída a de configuração dos arquivos, sendo necessário agora  reiniciar o agente de monitoração, importar o template no Zabbix e aplicar o mesmo para a monitoração do servidor que teve o agente alterado.

Para reiniciar o agente do Zabbix em um servidor “RedHat / CentOS”:

service zabbix_agentd restart

Para reiniciar o agente do zabbix em um servidor “Debian”:

service zabbix-agent restart

Agora sairemos do modo shell para as configurações via interface web. Precisamos importar o arquivo 104_Disk_Monitor.xml. Observe que você precisará ter acesso ao arquivo XML, logo precisará que ele esteja na mesma estação de trabalho que você utilizar para acessar o Zabbix.

Observem que após a importação o zabbix alerta sobre o sucesso ou falha do processo, a tela deverá estar similar à imagem abaixo.

Importação de template com sucesso

Após a importação do arquivo será criado um grupo chamado “100 – Linux” e, dentro deste grupo, um template chamado “104 – Disk Monitor”. Costumo adotar um padrão específico de nomenclatura onde separo os templates e hosts em grupos diferentes e agrupo os templates conforme uma codificação específica, mas isso é assunto para outro post.

Este template não possui nenhum dos elementos normalmente encontrados nos templates padrão Zabbix 1.8. Todos os itens são criados dinamicamente através do processo de low level discovery – LLD. Por isso para ver os itens que o compõem você precisa olhar a parte de Autobusca do template.

Templates - 104 na lista

Na lista de autobusca podemos observar que o template possui alguns itens, triggers e gráficos ;). Lembrando sempre que os quantitativos apresentados na imagem abaixo são expotenciais, para cada sistema de arquivos que ele localizar ele irá acrescer 12 itens, 1 trigger e dois gráficos.

Templates - 104 - Composição do LLD

O intervalo de varredura por modificações está configurado para 24 horas (86400 segundos). É provável que neste momento você esteja pensando: poxa, vou ter que esperar até 24 horas para saber se funciona este template ? Não, podemos fazer a alteração do tempo de varredura no escopo de um host (recomendo o host apontando para o próprio servidor do Zabbix) e ver rapidamente os resultados.

Para facilitar os testes e comprovação sobre o perfeito funcionamento do template crie um host e o associe ao template 104_Disk_Performance, em seguida edite as propriedades do LLD do host (observe… do host, não do template) modificando o intervalo de atualização de 86400 (24 horas) para 60 segundos (por isso a alteração em um host específico… senão o custo operacional pode ser muito alto).

Template - 104 - Antes da alteração

Após a alteração para 60 segundos a lista dos processos de descoberta de baixo nível deverá estar conforme a imagem abaixo.

Templates - 104 - Após modificação de tempo

Vamos aos itens monitorados, temos 12 itens sendo que 10 são do tipo agente ativo e 2 calculados. Qual o motivo deles serem agente ativo ? Simples… os famosos “buracos” dos gráficos do Zabbix são praticamente eliminados quando utilizamos monitoração ativa uma vez que o agente de monitoração consegue continuar fazendo o seu trabalho mesmo que o servidor de monitoração não esteja conseguindo se comunicar com o agente (e vice versa). Em alguns cenários será necessária a alteração destes itens para agente passivo devido à restrições de projeto (por exemplo regras de firewall).

Exemplo de coleta de dados em um servidor com dois sistemas de arquivo instalados:

Template 104 - Dados Recentes

Além dos dados de performance de disco (principal motivador deste post) temos também informações sobre capacidade do disco. Exemplos de gráficos gerados:

Template - 104 - Gráfico de Latência de Disco

 

Template - 104 - Gráfico de Disk Rate

Espero que este artigo auxilie seu ambiente e que as idéias aqui apresentadas auxiliem na organização de sua monitoração pois entendo que sem organização não adianta nada ter uma excelente ferramenta.

19 thoughts on “Template e Script para monitoração de performance de disco

  1. Fiz o procedimento todo, provavelmente errei em algum ponto, porque no meu laboratório aparece apenas o item “Sistema de Arquivos – Capacidade” e não aparece “Sistema de Arquivos – Performance” como nas imagens do artigo. Alguma sugestão?

    1. Robson,

      Observe se o seu agente está perfeitamente configurado para monitoração ativa, todos os itens gerados são deste tipo.
      Em breve vou postar nova versão com melhorias (suporte a LVM) e duas versões do template (ativo e passivo).

      []s,
      Adail

  2. Bom dia.
    Estou com o mesmo problema do Robson.
    Aonde vejo está configuração do Agente passivo ou ativo.
    O que devo fazer?
    Aguardo orientações.
    Att.

    Wellington.

    1. No arquivo zabbix_agentd.conf (/usr/local/etc/zabbix_agentd.conf) você configura a permissão para o agente se reportar a um servidor zabbix de forma ativa (ActiveServer).

      Quando você criar os itens você usa o tipo “Agente Zabbix (Ativo)”.

  3. Boa tarde. Segui o passo-a-passo conforme acima, porem o meu consta como “Not supported by Zabbix Agent” no Zabbix 2.0. Sabe o que pode ser, pois está tudo conforme descrito por ti.

  4. Adail boa tarde,

    zabbix nao coleta dados para gerar graficos, instalamos o zabbix em uma máquina e esta rodando 100%, serviço do windowa ativo, snmp ativos nos equipamentos, fizemos um testes com o cact e coleta dados noemalmente mas o zabbix nao.
    Criei host e usei os templates default mas sem sucesso.

  5. Muito bom o artigo.

    Na minha rede eu tenho o zabbix 2.2.2 e ja consigo monitorar maquinas linux. Os discos estão em LVM, só que não consigo monitorar o estado do disdo (espaço total, livre, essas coisas).

    Tem alguma dica?

    Grato.

  6. Boa tarde,
    sabes se essa configurações tem compatibilidade com o zabbix 2.4.6?
    fiz as alterações em relação aos diretórios, mas não consigo coletar nenhum dado.

    Agradeço desde já.

Deixe uma resposta para Rodrigo Carvalho Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *