terça-feira, 14 de outubro de 2008

Como testar tipos de variáveis em javascript

Hehe, essa eu sempre utilizei em Java, mas não sabia que o javascript também tinha copiado!
Se quiser saber o tipo de uma variável em javascript (em Java também!) utilize a palavra reservada "typeof".

[Exemplo]

var numero = 75;
var naonumero = "oi, tudo bem, como vai";

if(typeof numero == 'number')
{
alert(numero+" é um número :)");
}

if(typeof naonumero == 'number')
{
//não vai entrar aqui pois não é um número!!!
}
else
{
alert("'"+naonumero+"' não é um número :(");
}

quinta-feira, 9 de outubro de 2008

Instalando Pandora FMS 2.0 Beta 1 no Debian

Pandora FMS é uma ferramenta de gerência, não só de redes, mas de tudo que possa oferecer dados. O legal desta ferramenta é a possibilidade de gerar mapas da rede personalizados com alertas entre outras funcionalidades de uma maneira fácil.
Nesta postagem mostro um passo a passo da instalação dessa ferramenta no sistema Debian.

Do original Pandora FMS: User administration guide, cap. 2, pagina 17.
Baixado no site http://pandorafms.org/ no link Pandora_1.3_User_Guide.pdf em 09/10/2008.


[Passos prévios]

- O sistema utilizado para a instalação foi debian-40r4a-i386-netinst baixado no site http://www.debian.org/distrib/netinst em 09/10/2008 no link debian-40r4a-i386-netinst.iso
É necessário que seja i386 por causa das versões dos fontes que utilizaremos.

- Autentique-se como root no sistema para efetuar todos os passos desta explicação.

- Adicione as linhas abaixo no arquivo /etc/apt/source.list para manter o apt-get atualizado:
deb http://ftp.br.debian.org/debian lenny main contrib
deb http://ftp.br.debian.org/debian sid main contrib

Nota: Utilizei as versões lenny (versão de teste) e sid (instável) pois somente elas possuem alguns pacotes utilizados por essa versão do Pandora FMS.

- Após adicionada as linhas, atualize o apt-get com o comando abaixo:
apt-get update

- Instale um LAMP server no seu sistema, veja o passo a passo em http://andreob.blogspot.com/2008/09/instalando-lamp-no-debian.html


[Instalando dependências do Pandora FMS Server]

- Essa versão do debian não vem com os comandos básicos de compilação, gcc, make, devemos instala-los:
apt-get install build-essential

- Instale os pacotes com perl e snmp necessários para o funcionamento do Pandora FMS:
apt-get install libdate-manip-perl
apt-get install snmp
apt-get install snmpd
apt-get install libsnmp-perl
apt-get install libtime-format-perl
apt-get install libxml-simple-perl
apt-get install libnetaddr-ip-perl
apt-get install libdbi-perl
apt-get install libxml-simple-perl
apt-get install libnetaddr-ip-perl
apt-get install libhtml-parser-perl
apt-get install xprobe2


- Instale alguns módulos do perl, que não são instalados com o apt-get:
cpan Digest::MD5 Time::Local DBI threads threads::shared IO::Socket Time::HiRes Time::Format Net::Ping NetAddr::IP Mail::Sendmail Net::Traceroute::PurePerl HTML::Entities

Nota: cpan é como um apt-get para módulos do perl. Responda sim (yes) para todas as perguntas.


[Instalando o Pandora FMS Server]

- Vá para o diretório /usr/src
cd /usr/src

Nota: todos os arquivos fontes que baixar, deixe-os neste diretório pois você pode usa-los no futuro para um update ou mesmo para remover a instalação.

- baixe o pandora do site http://pandora.sourceforge.net/:
wget http://ufpr.dl.sourceforge.net/sourceforge/pandora/ PandoraFMS2.0_beta1.tar.gz

- descompacte o arquivo
tar -xzvf PandoraFMS2.0_beta1.tar.gz

- abra a pasta /usr/src/pandora_server:
cd /usr/src/pandora_server

- execute o script de instalação:
./pandora_server_installer --install

Nota: futuramente se quiser remover o Pandora FMS Server, troque o parametro --install por --uninstall.

- Inicie os principais serviços de monitoramento:
/etc/init.d/pandora_server start
/etc/init.d/pandora_network start
/etc/init.d/pandora_snmpconsole start

[Instalando dependências do Pandora FMS Console]

- Instale as seguintes dependências que não foram previstas em [Passos prévios]:
apt-get install php5-gd
apt-get install php5-snmp
apt-get install graphviz
apt-get install php-pear

- Instale alguns módulos do pear, que não são instalados com o apt-get:
pear install DB
pear install XML_RPC

- Reinicie o servidor web para efetivar as atualizações:
/etc/init.d/apache2 restart


[Instalando o Pandora FMS Console]

Pandora FMS Console é a interface web para você gerenciar o seu Pandora FMS Server.

- Copie a pasta /usr/src/pandora_console para o local dos sites do apache:
cp -rdp /usr/src/pandora_console/ /var/www

Nota: o parâmetro -rdp diz que a cópia será recursiva no diretório e manterá as permissões.

- Altere as pemissões na pasta /var/www/pandora_console/include para que o instalador possa modifica-los:
chmod 777 /var/www/pandora_console/include

- Acesse via web a página de instalação do Pandora FMS Console no seu host:
http://<seu_host>/pandora_console/install.php

- Avance todos os passos, a menos que queira especificar configurações diferentes.

- Por questões de sergurança, remova o arquivo /var/www/pandora_console/install.php
rm /var/www/pandora_console/install.php

- Crie o seguinte link:
ln /var/www/pandora_console/attachment/ /var/www/pandora_consoleattachment -s

Nota: não sei, mas o pandora_console que instalei não conseguiu achar /var/www/pandora_console/attachment/, tive que utilizar esse artifício.

- Pronto, já pode acessar o seu Pandora FMS e gerenciar sua rede:
http://<seu_host>/pandora_console


[Testando]

- Monitore um agent somente para testar. Abra a interface web e acesse:
Manage agents -> Create agent

- Preencha os dados do agent com ip localhost e Network Server igual a *_Net.

- Crie o agent e veja se este apareceu em View agents -> Network Map


[Possíveis problemas e soluções]

- Network Map não é gerado! Fica uma imagem quebrada!
Isso aconteceu na minha instalação, o pandora_console não conseguiu achar /var/www/pandora_console/attachment/.
Crie o seguinte link:
ln /var/www/pandora_console/attachment/ /var/www/pandora_consoleattachment -s

- Ao alterar a senha do banco de dados depois de tudo instalado, não acesso a interface web!
Lembre-se de altera-la também em /etc/pandora/pandora_server.conf e /var/www/pandora_console/include/config.php

- /etc/init.d/mysql: ERROR: Using expire_logs_days without log_bin crashes the server.
Estranho, mas após instalar o Pandora FMS isso ocorreu.
Edite o arquivo /etc/mysql/my.cnf e comente a linha que contém a variável expire_logs_days.

- Notice: Undefined variable: status_parent in /var/www/pandora_console/include/functions_visual_map.php on line 118
Neste passo a passo ensinamos a instalação do Pandora FMS 2.0 Beta1. Para quem não sabe, tudo que está na fase Beta está na fase de testes. E tudo que está em testes pode conter erros!
O programador esqueceu de iniciar a variável $status_parent no arquivo /var/www/pandora_console/include/functions_visual_map.php, inicie-a então. O seguinte trecho mostra como deve ficar o arquivo:

19 ...
20 function print_pandora_visual_map ($id_layout, $show_links = true, $draw_lines = true) {
21 global $config;
22 $layout = get_db_row ('tlayout', 'id', $id_layout);
23 $status_parent = -1;//Essa variável não estava definida. Alterado em 10/10/2008 por André O. B. aob@email.si
24 ...

- Could'nt find package wmi-client: possivelmente os seus repositorios nao tem referencia a esse pacote. Caso nao ache um repositorio que o tenha, baixe manualmente em http://www.pandorafms.org no link de downloads o pacote wmi.

quarta-feira, 8 de outubro de 2008

Como desabilitar ou habilitar a tela de log de desligamento inesperado do windows server (Shutdown Event Tracker ou Shutdown Unexpected Tracker)

As vezes, quando acontece um pique-de-luz e nossa máquina Windows Server volta, executa o Logon e fica parada numa tela de Shutdown Event Tracker. Quando queremos automatizar o processo de boot, isso acaba nos atrapalhando.
Para desabilitar essa tela, proceda os seguintes passos:

[Pelo gpedit.msc]

- abra: iniciar->executar e execute o comando gpedit.msc

- Ao executar o comando anterior, abrirá uma tela para gerenciamento de políticas, navega para:
local computer policy -> computer configuration -> administrative templates -> system -> Display Shutdown Event Tracker

- escoha Enabled ou disabled para habilitar ou desabilitar a tela.


[Pelo registro]

- Se quiser alterar diretamente pelo registro, altere a seguinte variável para 0 ou 1:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Reliability]
"ShutdownReasonOn"=dword:00000000

segunda-feira, 6 de outubro de 2008

Como auto iniciar (iniciar automaticamente) um script no linux durante o boot

As vezes precisamos iniciar um script ou um programa automaticamente no boot do nosso sistema. Existem muitas maneiras de fazer isso, umas mais gambiarradas outras menos. A que mais utilizo e julgo ser correta para os diversos scripts e serviços que crio é adicionar os comandos, programas ou scripts no arquivo /etc/rc.local (semelhante ao autoexec.bat do windows).

[Exemplo1]

Quero que toda vez que meu linux der boot, exiba a mensagem "==== Mensagem do rc.local!!!===="

- edite o arquivo /etc/rc.local e coloque a seguinte linha
echo "==== Mensagem do rc.local!!!===="
- salve o arquivo
- da próxima vez que iniciar o sistema, verá a alteração


[Exemplo2]

Quero que a placa eth0 venha com o mac 00:01:02:03:04:05
- edite o arquivo /etc/rc.local e coloque as seguintes linhas
ifconfig eth0 down
ifconfig eth0 hw ether 00:01:02:03:04:05
ifconfig eth0 up


[Exemplo3]

Tive problemas com maquinas virtuais que sempre iniciavam com a hora errada, uma saída que encontrei foi utilizar o comando ntpdate para sincrozar a hora com algum servidor. Então, inseri a seguinte linha no /etc/rc.local
ntpdate -u pool.ntp.org

Nota: pool.ntp.org é um servidor para sincronização de relógio


[Considerações finais]

O arquivo /etc/rc.local é sempre o último a ser executado depois do boot. Se quiser inserir comandos com precedência, deverá utilizar as pastas /etc/rc*.d, mas não entrarei em detalhes por agora.