segunda-feira, 17 de junho de 2013

Script Munin/FreeBSD - Monitoramento de temperatura

Verifique se o módulo de monitoramento de temperatura foi inicializado:
 # kldstat 
 Id Refs Address    Size     Name
 1   12 0xc0400000 972234   kernel
 2    1 0xc0d73000 164e8    geom_mirror.ko
 3    1 0xc0d8a000 58e0     if_vlan.ko
 4    1 0xc0d90000 36d6c    pf.ko
 5    1 0xc0dc7000 295c     coretemp.ko
 6    1 0xc0dca000 6a32c    acpi.ko
 7    1 0xc67fa000 22000    linux.ko
Caso o módulo já esteja em execução, utilize 'sysctl' para verificar a temperatura:
# sysctl -a | grep temperature

 dev.cpu.0.temperature: 68
Se o modulo 'NÃO' está carregado edit o arquivo '/boot/loader.conf' acrescentando:
 coretemp_load="YES" 
Reinicie a máquina e rode novamente o comando:
# sysctl -a | grep temperature
Para fazer o script para o Munin faça o seguinte:
Como 'root' acesse '/usr/local/etc/munin/plugins/' e crie o seguinte script:
 #!/usr/local/bin/bash
 case $1 in
  config)
    echo "graph_title CPU Temperatures";
    echo "graph_vtitle Celsius";
    echo "graph_args --base 1000 -l 0";
    echo "graph_category sensors";

    for n in $(eval echo "{0..$(expr $(sysctl -n hw.ncpu) - 1)"})
    do
     echo "core${n}.label Core ${n}";
    done

  exit 0;;
 esac

 for n in $(eval echo "{0..$(expr $(sysctl -n hw.ncpu) - 1)"})
 do
   echo -n "core${n}.value $(sysctl -n dev.cpu.${n}.temperature).0"
 done
Salve o script como por exemplo 'cpu_temp'.
Rode o seguinte comando:
 # chmod + x cpu_temp 
Para obter a temperatura execute
 # ./cpu_temp
Para obter as informações de configuração execute
 # ./cpu_temp config
O resultado com o Munin é algo como:

Nenhum comentário:

Postar um comentário