como posso executar um teste de desempenho de disco como hdparm -t em nagios?

4

Os plugins usuais são todos sobre estatísticas conhecidas de um sistema, mas estamos vendo resultados realmente estranhos em algumas de nossas instâncias de vmware com hdparm -t.

Alguém sabe de um teste que realmente escreve / lê em um disco ou nfs em nagios?

    
por hoberion 23.09.2011 / 06:49

4 respostas

1

Eu escolheria outra abordagem (se você estiver usando o ESX)

  • Faça o download do plug-in do ESX Nagios e salve-o na sua pasta de plugins do Nagios
  • Instale os módulos Perl necessários com perl -MCPAN -e 'install <pluginname>' :
    • Nagios :: Plugin
    • Params :: Validar
    • Matemática :: Calc :: Unidades
    • Classe :: Accessor :: Rápido
    • Config :: Minúsculo
  • Faça o download do SDK mais recente chamado "vSphere SDK para Perl x.x" (registro obrigatório): link
  • Instale as bibliotecas necessárias: aptitude install libxml-libxml-perl libclass-methodmaker-perl libcrypt-ssleay-perl libsoap-lite-perl libuuid-perl
  • Edite Makefile.PL e altere a linha 'UUID' => '0.03', para 'UUID' => '0.02',
  • Compile:
    perl Makefile.PL
    make
    make test
    make install

Crie este novo comando:

define command {
    command_name    check_esx
    command_line    $USER1$/check_esx3 -H $HOSTADDRESS$ $ARG1$ -u $ARG2$ -p $ARG3$ -w $ARG4$ -c $ARG5$ $ARG6$
}

Agora, adicione um novo serviço, por exemplo:

define service {
   name                    esx-io
   use                     generic-service
   service_description     ESX I/O
   check_command           check_esx!-l io!$_SERVICEESX_USER$!$_SERVICEESX_PW$!$_SERVICEIO_WARNING$!$_SERVICEIO_CRITICAL$!$_SERVICEESX_VM$
}

Em seguida, use essa verificação em um host:

define service {
    use               esx-io
    host_name         <hostname>
    servicegroups     foo
    _ESX_USER         <ESX-api check user>
    _ESX_PW           a-password
    _IO_WARNING       70
    _IO_CRITICAL      80
}

Talvez não seja exatamente o que você queria, mas eu pensei em compartilhá-lo.

    
por 23.09.2011 / 14:11
0

Ainda não testei isso, mas se tudo o que você quer fazer é escrever, leia um arquivo, tente um pequeno script de shell como

#!/bin/bash

DATE='date'

#Write
echo $DATE > /drive/mount/point/testfile

if [ $? -eq 0 ]; then
        echo "Write Successful"
else
        echo "Cound not write file"
        exit 2
fi


#Read
cat /drive/mount/point/testfile > /dev/null

if [ $? -eq 0 ]; then
        echo " - Read Successful"
else
        echo " - Cound not read file"
        exit 2
fi

exit 0

Esse script pode ser muito melhorado e provavelmente tem alguns erros, mas ele grava em um arquivo e, em seguida, lê-o de volta, se o ether desses falhar, ele retornará crítico. Você provavelmente poderia fazer com modificando isso para que ele use um argv para o caminho do arquivo e pode lançar alguns erros indesejados para o console, mas é um começo

    
por 23.09.2011 / 09:43
0

É fácil escrever seus próprios testes. Escreva um script que faça o que você deseja testar e avaliar os possíveis resultados.

No seu caso, você pode tentar um dd no nfs-share ou no disco para testar a gravação e abrir um arquivo para testar a leitura. Você poderia então usar o resultado de dd para retornar um em três status:

  • CRÍTICO
  • AVISO
  • OK

Você pode adicionar informações extras na string após o status. Ex:

OK - Everything went better then expected. Writespeed > 2500kbps
WARNING - Write speed is below treshold: < 500kbps.
CRITICAL - Write Failed!

Adicione o script em seu check_nrpe-config (ou o que você estiver usando para executar scripts remotos) e você está pronto.

    
por 23.09.2011 / 11:01
0

O monitoramento do desempenho do disco pode ser muito mais complicado do que apenas gravar um arquivo e ver quanto tempo demora. Mesma coisa com a leitura. Como você sabe o que está acontecendo durante as gravações / leituras? Poderia haver picos na carga da CPU, problemas de tráfego de rede (especialmente se nfs), em suma, todos os tipos de coisas. No mínimo, execute collectl em uma janela enquanto grava o arquivo em outra. Aqui está um exemplo rápido do que mostra depois de instalar o RPM e simplesmente executando o comando 'collectl':

[root@poker ~]# collectl
#<--------CPU--------><----------Disks-----------><----------Network---------->
#cpu sys inter  ctxsw KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut
   0   0  1103    171      0      0      0      0      0      1      0       0
   0   0  1120    265      0      0      0      0      0      1      0       1

lotes mais opções e opções. pode até mostrar as estatísticas do nfs na mesma linha, se estiver interessado.

    
por 23.09.2011 / 13:38