domingo, 25 de novembro de 2012

Monitorando a Temperatura do CPD com Termometro USB da China e Zabbix

Introdução
Recentemente comprei um Termometro USB na Deal Extreme por US$ 9,20 com frete grátis, isso mesmo, praticamente R$ 20,00. Quando ele chegou espetei em uma máquina Windows, instalei o software e realizei os testes, tudo OK. Hora de fazer esse cara funcionar no Linux.

Fiz algumas pesquisas na net e achei alguns scripts[1][2] que resolviam o problema, mas eu executava o script, ele não dava erro, mas não mostrava nada, cheguei a achar um projeto de um novo driver para resolver o problema[3], mas resolvi procurar mais um pouco, então encontrei o link que dizia que ele procurou pelo ID do USB[4], resolvi fazer a mesma coisa. Então achei em um fórum da própia DX[5], a dica do pcsensor[6], e a informação mais importante: Que ele tinha comprado 2 termometros, o primeiro que funcionava com as soluções que eu já tinha encontrado e um novo que ele adquiriu depois, e que possui um novo chipset, e o mesmo não funciona com as soluções anteriores.
Volta a pesquisar soluções com o pcsensor + ID do USB e achei a receita base para o tutorial abaixo aqui.

Instalação do PCSensor
Resolver as dependências:
# yum install libusb-devel make gcc

Download dos fontes:
# wget http://www.isp-sl.com/pcsensor-0.0.1.tgz

Compilar:
# tar xzf pcsensor-0.0.1.tgz
# cd pcsensor-0.0.1
# make clean
# make


Instalar:
# cp ./pcsensor /usr/local/bin/
# cp 99-tempsensor.rules /etc/udev/rules.d

Inserir o Termometro USB, se ele já estava inserido, remova e insira novamente.

Testar a leitura de informações:
# pcsensor
2012/11/23 17:14:17 Temperature 65.30F 18.50C


Separar a parte da informação que nos interessa:
# pcsensor | cut -d" " -f5 | cut -dC -f1
18.50

Criar a entrada no Agente do Zabbix:
# vi /etc/zabbix/zabbix_agentd.conf
UserParameter=temperatura,/usr/local/bin/pcsensor | cut -d" " -f5 | cut -dC -f1

Reiniciar o serviço do agente:
# service zabbix_agentd restart

Criar o item no Zabbix Server:
Clique em Configuration // Hosts
Na linha do servidor que está com o termometro instalado, clique em Items
Clique em Create item
Configure conforme imagem abaixo:

Observações:
Em Host vai aparecer o nome do seu servidor;
O campo Name pode ter o nome que você quiser dar ao item;
O campo Key deve ter o mesmo nome informado no arquivo de configuração do agente;
Em Host Interface vai aparecer o IP do Servidor.
Clique no botão Save.

Agora basta montar o gráfico com o item recém criado:


Referências:
[1] https://grepular.com/Using_Linux_to_Monitor_Room_Temperature_Remotely_and_Cheaply
[2] http://lab4.org/wiki/Zabbix_Raumtemperatur_ueberwachen_mit_USB_Temper
[3] http://relavak.wordpress.com/2009/10/17/temper-temperature-sensor-linux-driver/
[4] http://bitplane.net/2012/01/temper1-ubuntu/
[5] http://club.dx.com/forums/forums.dx/threadid.463194
[6] http://www.isp-sl.com/pcsensor-0.0.1.tgz