15 setembro 2010

Instalando e testando o Halberd

Instalação Halberd

Encontrei no blog “corujati” informação referente uma ferramenta para realizar análise de performance em um ambiente web. Então como no meu trabalho existe uma empresa que esta desenvolvendo um site que acho este site estremamente pesado, por que pelo menos eu nunca encontrei um site que carregasse 1,4 Mb, acho isso um absurdo comparado com sites que passei um dia inteiro navegando e comparando.O máximo encontrado foi 600Kb. Bem, mas isto não vem ao assunto.

Ao ver o apresentava fiquei curioso como um site submarino que concerteza é um dos maiores sites de vendas no Brasil, carrega uma página tão rápida e como é o seu processo de balanceamento nos servidores.

Então decide instalar o Halberd e analisar as informações que iria me retornar.

Bom, o procedimento de instalação foi até rápido comparado a uns problemas entre meu note e a cadeira,devido ao horário de 2:00 hrs da matina.

Para o meu ambiente de testes utilizei o seguinte:

1. Debian lenny - Virtualizada

2. 512 de Memória

Baixei os pacotes de requisito do Halberd que é o Python.

O problema relatado anteriormente foi devido a versão que instalei que foi a 2.4, e quando em seguida realizava a instalação do Halberd e executa me retornava o seguinte erro:

ImportError: No module named hashlib

Então com um pouco de pesquisa verifiquei a correção estava na versão do Python 2.5.

aptitude install python2.5

Beleza, após a atualização do python realizei a instalação do Halberd que realizei o download deste link:

http://halberd.superadditive.com/dist/halberd-0.2.4.tar.gz

Descompactei:

tar –xvf halberd-0.2.4.tar.gz

Agora instalei:

python setup.py install

Vai lhe retornar acredito que algo parecido com o seguinte:

testedebian:~/halberd-0.2.4# python setup.py install

running install

running build

running build_py

running build_scripts

creating build/scripts-2.5

copying and adjusting scripts/halberd -> build/scripts-2.5

changing mode of build/scripts-2.5/halberd from 644 to 755

running install_lib

creating /usr/lib/python2.5/site-packages/Halberd

copying build/lib/Halberd/crew.py -> /usr/lib/python2.5/site-packages/Halberd

copying build/lib/Halberd/clientlib.py -> /usr/lib/python2.5/site-packages/Halberd

copying build/lib/Halberd/reportlib.py -> /usr/lib/python2.5/site-packages/Halberd

copying build/lib/Halberd/conflib.py -> /usr/lib/python2.5/site-packages/Halberd

copying build/lib/Halberd/shell.py -> /usr/lib/python2.5/site-packages/Halberd

copying build/lib/Halberd/logger.py -> /usr/lib/python2.5/site-packages/Halberd

creating /usr/lib/python2.5/site-packages/Halberd/clues

copying build/lib/Halberd/clues/file.py -> /usr/lib/python2.5/site-packages/Halberd/clues

copying build/lib/Halberd/clues/analysis.py -> /usr/lib/python2.5/site-packages/Halberd/clues

copying build/lib/Halberd/clues/Clue.py -> /usr/lib/python2.5/site-packages/Halberd/clues

copying build/lib/Halberd/clues/__init__.py -> /usr/lib/python2.5/site-packages/Halberd/clues

copying build/lib/Halberd/version.py -> /usr/lib/python2.5/site-packages/Halberd

copying build/lib/Halberd/ScanTask.py -> /usr/lib/python2.5/site-packages/Halberd

copying build/lib/Halberd/__init__.py -> /usr/lib/python2.5/site-packages/Halberd

copying build/lib/Halberd/util.py -> /usr/lib/python2.5/site-packages/Halberd

byte-compiling /usr/lib/python2.5/site-packages/Halberd/crew.py to crew.pyc

byte-compiling /usr/lib/python2.5/site-packages/Halberd/clientlib.py to clientlib.pyc

byte-compiling /usr/lib/python2.5/site-packages/Halberd/reportlib.py to reportlib.pyc

byte-compiling /usr/lib/python2.5/site-packages/Halberd/conflib.py to conflib.pyc

byte-compiling /usr/lib/python2.5/site-packages/Halberd/shell.py to shell.pyc

byte-compiling /usr/lib/python2.5/site-packages/Halberd/logger.py to logger.pyc

byte-compiling /usr/lib/python2.5/site-packages/Halberd/clues/file.py to file.pyc

byte-compiling /usr/lib/python2.5/site-packages/Halberd/clues/analysis.py to analysis.pyc

byte-compiling /usr/lib/python2.5/site-packages/Halberd/clues/Clue.py to Clue.pyc

byte-compiling /usr/lib/python2.5/site-packages/Halberd/clues/__init__.py to __init__.pyc

byte-compiling /usr/lib/python2.5/site-packages/Halberd/version.py to version.pyc

byte-compiling /usr/lib/python2.5/site-packages/Halberd/ScanTask.py to ScanTask.pyc

byte-compiling /usr/lib/python2.5/site-packages/Halberd/__init__.py to __init__.pyc

byte-compiling /usr/lib/python2.5/site-packages/Halberd/util.py to util.pyc

running install_scripts

copying build/scripts-2.5/halberd -> /usr/bin

changing mode of /usr/bin/halberd to 755

running install_data

running install_egg_info

Writing /usr/lib/python2.5/site-packages/halberd-0.2.4.egg-info

Após este retorno pode executar o commando abaixo:

Halberd http://www.submarino.com.br –d ( O “ d “ é para debug )









Podem encontrar mais informações das opções de comando no próprio site da Halberd.


Caso tenha algum erro de escrita me desculpem pois agora são 02:55 e vou ter que esta no trabalho as 8:00.


Dúvidas podem postar!

Vlw

10 setembro 2010

Virtualizando controlador de domínio

Dica bastante interessanta de como configurar um controlador de domínio utilizando Hyper-V.
Neste tutorial seguem dicas de como migrar uma máquina vísica para virtual e melhores práticas para configuração de um Active Directory utilizando Hyper-V.



Segue link para download.

Utilização de Hardware no Hyper-V

  • Processador
Primeiro de tudo para virtualização necessida de um processador 64bits,podendo ser AMD-V ou INTEL-VT, ambos com suas respectivas tecnologias de virtualização.

  • Memória
Para que muitos pensam, não é so sair colocando memória no servidor que o Hyper-V vai reconhecer toda a memória disponibilizada.
Para windows 2008 enterprise e datacenter o limite é de 1 Tera e no máximo de 64GB por máquian virtual.
para o windows 2008 Standart suporta até 32 GB e 31 GB para a máquina virtual, na minha opinião virtualizar neste caso será para utilizar o Live Migration ou copiar o disco VHD da VM e colocar em outro servidor,mas sobre cópias de VM vou falar mais na frente.

  • Armazenamento
Existe uma variedade de tipos de armazenamentos que podem ser utilizados por Hyper-v:SATA,eSATA,PATA,SAS,SCSI,USB,FIREWARE,iSCSI,FIBRE CHANNEL E SAS.

Existem outros assuntos sobre placa de rede e as opções de configuração de vlan que é de extrema importância o entendimento sobre este assunto.
Deixando este link sobre redes virtuais para melhor entendimento sobre o assunto
O próximo post será somente sobre armazenamento!Muito interessante!

09 setembro 2010

Mundo da Virtualização Hyper-V

A algum tempo venho estudando sobre virtualização,me dedicando a testes e aprofundando sobre o assunto, as vezes me falta mais hardware para realizar testes mais detalhados,mas estou conseguindo me virar para realizar meus estudos.

Vou postar algumas informações que utilizei para estudo e o ambiente de teste que configurei para realizar o live migration. Mas antes vou postar documentações que são de grande importância para um bom entendimento sobre virtualização.

A seguir tem a imagem da linha de raciocínio para implementar o live migration.





Explicando o desenho representa a seguinte :
Dois servidores, ambos rodando com Hyper-V,podendo ser Standart,Enterprise ou DataCenter nas versões 64 bits. Basta realizar uma pesquisa para entender a diferença de licenciamento.
Os servidores estão compartilhando uma única base de dados,neste caso utilizei um pendrive para simular o storage,que a partir de agora será chamado de storage, e assim simular o LiveMigration em um ambiente de produção.
Foi utilizado um switch 3com com portas Giga,pois precisei utilizar iSCSI para a comunicação com o storage.Para comunicação iSCSI necessita de uma rede Giga. Fui saber depois de muito apanhar!
Para a rede ethernet representa a comunicação da rede interna.

Vou encerrando por aqui a minha linha de raciocínio, a seguir vou postando sobre documentos que estudei até chegar no debug de uma máquina virtual.

11 junho 2010

Configurar OCS Inventário

Instalando o OCS Inventory - NG no Linux Ubuntu
OCS INVENTORY -NG é um software, Open Source, que tem a finalidade de gerar inventários automáticos das estações de trabalho ligadas a rede, dessa forma é possível notar modificações como remoções, paradas funcionais de dispositivos e programas que foram instalados ou removidos.

Exigências para usar OCS INVENTORY-NG na distribuição Linux Ubuntu
Apache versão 1.3.33 / 2.0.46 ou superiores.
* Módulo versão 1.29 de Mod_perl ou superior.
* Módulo versão 4.3.2 de Mod_php ou superior.
* PHP 4.3.2 ou superior.
* Perl 5.6 ou superior.
* Módulo XML do Perl: Versão simples 2.12 ou superior.
* Módulo Compressa do módulo do Perl: Versão 1.33 de Zlib ou superior.
* Módulo Versão 1.40 do módulo DBI do Perl ou superior.
* Módulo Módulo DBD do Perl: Versão 2.9004 de Mysql ou superior.
* Módulo Módulo Apache do Perl: Versão 0.93 de DBI ou superior.
* Módulo Rede do módulo do Perl: Versão 1.21 do IP ou superior.
* Módulo SOAP do Perl: Versão 0.66 de Lite ou mais elevado (opcional)
* Versão 4.1.0 de MySQL ou superior com o motor de InnoDB (Motor de Armazenamento-Storage Engine) ativo.
MySQL 4.1 ou superior

Instalação

Instale os seguintes pacotes com o comando:
sudo apt-get install \
apache2 \
libapache2-mod-php5 \
libapache2-mod-perl2 \
php5 \
php5-gd \
php5-mysql \
mysql-server \
libxml-simple-perl \
libcompress-zlib-perl \
libdbi-perl \
libdbd-mysql-perl \
libapache-dbi-perl \
libnet-ip-perl \
libsoap-lite-perl \
php5-dev \
php-pear

Acesse a página do OSC Inventory NG:
http://www.ocsinventory-ng.org

No menu Download baixe a última versão do OCS Inventory NG:
OCSNG Unix Server "OCSNG_UNIX_SERVER-1.02.1.tar.gz"
OCSNG Unix Agent "OCSNG_UNIX_AGENT-1.02.tar.gz"

Copie o arquivo OCSNG_UNIX_SERVER-1.02.1.tar.gz para a pasta /usr/local/:
sudo cp /home/usuario/Área\ de\ Trabalho/OCSNG_UNIX_SERVER-1.02.1.tar.gz /usr/local/

Copie o arquivo OCSNG_UNIX_AGENT-1.02.tar.gz para a pasta /usr/local/:
sudo cp /home/usuario/Área\ de\ Trabalho/OCSNG_UNIX_AGENT-1.02.tar.gz /usr/local/

Entre na pasta /usr/local/:
cd /usr/local/

Execute o comando para descompactar o arquivo OCSNG_UNIX_SERVER-1.02.1.tar.gz:
sudo tar -zxvf OCSNG_UNIX_SERVER-1.02.1.tar.gz

Execute o comando para descompactar o arquivo OCSNG_UNIX_AGENT-1.02.tar.gz:
sudo tar -zxvf OCSNG_UNIX_AGENT-1.02.tar.gz

Entre na pasta /usr/local/OCSNG_UNIX_SERVER-1.02.1/:
cd OCSNG_UNIX_SERVER-1.02.1/

Execute o comando para instalar o OCS-NG Server:
sudo ./setup.sh

Aparecerá uma mensagem de boas vindas e pedirá se deseja começar a instalação, escolha a padrão:
Do you wish to continue ([y]/n)?y

Aparecerá uma mensagem com algumas informações sobre o banco de dados MySQL e o endereço IP do banco, pressione "Enter" para escolher o endereço padrão ou, digite o endereço IP:
Which host is running database server [localhost] ?

Aparecerá uma mensagem com o número da porta que o banco será executado, pressione "Enter" para escolha o número padrão:
On which port is running database server [3306] ?

Aparecerá uma mensagem com o nome do arquivo daemon do Apache, pressione "Enter" para escolher o arquivo padrão:
Where is Apache daemon binary [/usr/sbin/apache2] ?

Aparecerá uma mensagem com o nome do arquivo principal do Apache, pressione "Enter" para escolher o arquivo padrão:
Where is Apache main configuration file [/etc/apache2/apache2.conf] ?

Aparecerá uma mensagem para criar a conta do usuário que executará o Apache, entre com o nome do usuário do sistema:
Which user account is running Apache web server [${APACHE_RUN_USER}] ? usuario

Aparecerá uma mensagem para criar um grupo para a conta do usuário Apache, escolha um nome para o grupo:
Which user group is running Apache web server [${APACHE_RUN_GROUP}] ? admin

Aparecerá uma mensagem dizendo que o OCS Inventory NG irá colocar as configurações no diretório //etc/apache2/conf.d/, pressione "Enter" para escolher o padrão:
Setup found Apache Include configuration directory in //etc/apache2/conf.d/.
Setup will put OCS Inventory NG Apache configuration in this directory.
Where is Apache Include configuration directory [//etc/apache2/conf.d/] ?

Aparecerá uma mensagem para confirmar o caminho para o PERL intérprete, pressione "Enter" para escolher o caminho padrão:
Found PERL Intrepreter at ;-)
Where is PERL Intrepreter binary [/usr/bin/perl] ?

Execute o comando para inicializar o serviço do Apache, caso o mesmo não esteja inicializado:
sudo /etc/init.d/apache2 start

Aparecerá uma mensagem para confirmar a comunicação com o servidor, escolha a padrão:
Do you wish to setup Communication server on this computer ([y]/n)? y

Aparecerá uma mensagem dizendo que o servidor de comunicação pode criar arquivos de log, e que esses arquivos de log podem ser ativados com a criação de um valor, no console do administrador em menu configuração, pressione "Enter" para escolher o caminho padrão dos arquivos de log do OCS Inventory:
Communication server can create detailled logs. This logs can be enabled by setting interger value of LOGLEVEL to 1 in Administration console menu Configuration.
Where to put Communication server log directory [/var/log/ocsinventory-server]?

Pode aparecer uma mensagem dizendo que módulo XML do Perl não está instalado, e que só será exigido pelo OCS Inventory NG SOAP, escolha o padrão:
Checking for SOAP::Lite PERL module...
Found that PERL module SOAP::Lite is available.
Checking for XML::Entities PERL module...
*** Warning: PERL module XML::Entities is not installed !
This module is only required by OCS Inventory NG SOAP Web Service.
Do you wish to continue ([y]/n)? y

Pode aparecer uma mensagem dizendo que para garantir as cargas do módulo perl do Apache antes do Servidor de Comunicação do OCS Inventory NG, a instalação pode renomear o arquivo de configuração de comunicação 'ocsinventory-Server.conf' para 'z-Server.conf-ocsinventory', escolha a padrão:
Do you allow Setup renaming Communication Server Apache configuration file to 'z-ocsinventory-server.conf' ([y]/n)? y

Aparecerá uma mensagem perguntando se você gostaria de administrar o servidor de configuração no computador, escolha a padrão:
Do you wish to setup Administration Server (Web Administration Console) on this computer ([y]/n)? y

Aparecerá uma mensagem dizendo que a instalação instalará os arquivos conforme a hierarquia do Sistema de Arquivo, escolha a padrão:
Do you wish to continue ([y]/n)? y

Aparecerá uma mensagem dizendo que os arquivos estáticos do Servidor de Administração PHP serão copiados para [/usr/share/ocsinventory-reports, pressione "Enter" para escolher o padrão:
Where to copy Administration Server static files for PHP Web Console [/usr/share/ocsinventory-reports] ?

Aparecerá uma mensagem perguntando onde criar e gravar o diretório que armazenará os pacotes para a implantação e descobrimento de Ip, pressione "Enter" para escolher o padrão:
Where to create writable/cache directories for deployement packages and
IPDiscover [/var/lib/ocsinventory-reports] ?

Aparecerá uma mensagem dizendo que a instalação do servidor foi concluída, também pedirá para rever se está tudo ok com o arquivo /etc/apache2/conf.d//ocsinventory-reports.conf, e para reiniciar o servidor Apache. Também aparecerá uma mensagem dizendo para aproveitar o ONS Inventor-NG, e que foi criado um arquivo de log em /usr/local/OCSNG_UNIX_SERVER-1.02.1/ocs_server_setup.log, salve esse arquivo, ele pode ser útil para detectar alguma falha durante o processo de instalação.
DON'T FORGET TO RESTART APACHE DAEMON!
Enjoy OCS Inventory NG ;-)

Reinicie o servidor Apache com o comando:
sudo /etc/init.d/apache2 restart

Para realizar a configuração do banco de dados do OCSInventory, abra o browser em:
http://127.0.0.1/ocsreports/install.php

Aparecerá uma tela pedindo o endereço do servidor MySql, nome e a senha do usuário root do MySql:
MySql Login: usuário
Mysql Password: senha
Mysql HostName: ipservidor

Caso apareça uma mensagem:
ERROR: can't write in directory (on dbconfig.inc.php), please set the required rights in order to install ocsinventory (you should remove the write mode after the installation is successfull), isso significa que o arquivo dbconfig.inc.php não possui permissão de escrita:

Execute o seguinte comando para permitir escrita no arquivo:
sudo chmod 666 /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php

Para acessar o OCSInvertory, abra o browser em:
http://127.0.0.1/ocsreports

Caso apareça caracteres estranhos, será preciso editar o arquivo brazilian_portuguese.txt, na primeira linha troque "iso-8859-1" por "utf-8", também será necessário corrigir os caracteres estranhos. Clique aqui para baixar o aquivo "brazilian_portuguese.txt" corrigido:
sudo editor /usr/share/ocsinventory-reports/ocsreports/languages/brazilian_portuguese.txt

Aparecerá uma tela pedindo o usuário e senha:
Usuário: admin
Senha: admin

Saia do diretório OCSNG_UNIX_SERVER-1.02.1:
cd ..

Entre na pasta /usr/local/Ocsinventory-Agent-1.0.1:
cd Ocsinventory-Agent-1.0.1/

Execute o comando para instalar o OCS-NG Agent:
sudo perl Makefile.PL

Aparecerá uma mensagem pedindo para instalar o nmap, caso queira usar o recurso para descobrir redes:
Plese install nmap or ipdiscover if you want to use the network discover feature.
Checking if your kit is complete...
Looks good
Writing Makefile for Ocsinventory::Agent

Execute o comando abaixo para copilar os arquivos do OCS-NG Agent:
sudo make

Execute o comando para instalar os arquivos do OCS-NG Agent:
sudo make install

Aparecerá uma mensagem pedindo se deseja configurar o agente, escolha a padrão:
Do you want to configure the agent
Please enter 'y' or 'n'?> [y] y

Aparecerá uma mensagem pedindo onde você deseja gravar o arquivo de configuração, escolha um número correspondente ao diretório pretendido:
Where do you want to write the configuration file?
0 -> /etc/ocsinventory
1 -> /usr/local/etc/ocsinventory
2 -> /etc/ocsinventory-agent
?> 1

Aparecerá uma mensagem pedindo se deseja criar o diretório pretendido, escolha a padrão:
Do you want to create the directory /usr/local/etc/ocsinventory?
Please enter 'y' or 'n'?> [y] y

Aparecerá uma mensagem confirmando o diretório onde será salvo o arquivo de configuração, e pedirá o endereço do OCS-NG Server:
[info] The config file will be written in /etc/ocsinventory/ocsinventory-agent.cfg.
What is the address of your ocs server?> [ocsinventory-ng] 127.0.0.1

Aparecerá uma mensagem pedindo se você precisa de credenciais para o servidor, provavelmente não precisará, escolha a padrão:
Do you need credential for the server? (You probably don't)
Please enter 'y' or 'n'?> [n] n

Aparecerá uma mensagem pedindo se você deseja criar e aplicar uma tag administrativa nesta máquina:
Do you want to apply an administrative tag on this machine
Please enter 'y' or 'n'?> [y] n

Aparecerá uma mensagem pedindo se deseja instalar uma tarefa no arquivo /etc/cron.d, escolha a padrão (O Cron é um daemon que pode ser utilizado para agendar a execução de tarefas):
Do yo want to install the cron task in /etc/cron.d
Please enter 'y' or 'n'?> [y] y

Aparecerá uma mensagem pedindo onde você deseja guardar os arquivos do agente, pressione "Enter" para escolher o padrão:
Where do you want the agent to store its files? (You probably don't need to change it)?> [/var/lib/ocsinventory-agent]

Aparecerá uma mensagem pedindo se você deseja criar o diretório /var/lib/ocsinventory-agent, pressione "Enter" para escolher o padrão:
Do you want to create the /var/lib/ocsinventory-agent directory?
Please enter 'y' or 'n'?> [y]

Aparecerá uma mensagem dizendo que novas definições foram escritas, agradecendo o uso do OCS Inventory e pedirá se deseja remover o antigo linux_agent, escolha a padrão:
New settings written! Thank you for using OCS Inventory
Should I remove the old linux_agent
Please enter 'y' or 'n'?> [n] n

Aparecerá uma mensagem pedindo se você deseja implantar o recurso de implantação de software OCS Inventory, escolha a padrão:
Do you want to use OCS-Inventory software deployment feature?
Please enter 'y' or 'n'?> [y] y

Aparecerá uma mensagem pedindo se você gostaria de enviar um inventário desta máquina, escolha a padrão:
Do you want to send an inventory of this machine?
Please enter 'y' or 'n'?> [y] y

[info] Accountinfo file doesn't exist. I create an empty one.
-> Success!