quarta-feira, 5 de novembro de 2008

Migrando Zabbix 1.4.1 para 1.6.1

Introdução:
Relato aqui os procedimentos que realizei para a migração do Zabbix 1.4.1 para 1.6.1, seguindo as instruções contidas no ZABBIX Manual v1.6.

Meu ambiente:
CentOS release 5 (Final)
Zabbix 1.4.1 (Compilado)
Base de Dados MySQL

Download da nova versão:
# mkdir /install
# cd /install
# wget http://prdownloads.sourceforge.net/zabbix/zabbix-1.6.1.tar.gz?download

Descompacte o arquivo:
# tar xzvf zabbix-1.6.1.tar.gz

Parar o Zabbix:
# ps -aux grep zabbix
# kill -9 número do processo
É preciso ter certeza que o Zabbix está parado e que não há novas informações sendo gravadas na base de dados.

Faça backup da base de dados existente:
# mkdir /backup
# cd /backup
# mysqldump --user=root --password=zabbix --databases zabbix > backup-08-11-05.sql
# tar -czvf backup--08-11-05.tar.gz backup-08-11-05.sql
Gerar um .tar.gz é opcional, eu sempre gero.

Faça backup dos arquivos de configuração, arquivos PHP e arquivos binários do Zabbix:
# cp -Rv /etc/zabbix/ .
# cp /etc/php.ini .
# mkdir html
# cp -Rv /var/www/html/zabbix/ html/

Instale os novos binários:
# cd /install/zabbix-1.6.1
# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp
# make install

Reveja os parâmetros de configuração do Server:
# diff misc/conf/zabbix_server.conf /etc/zabbix/zabbix_server.conf
Nada de interessante, no meu caso não alterei nada

Faça o upgrade da base de dados:
# cd upgrades/dbpatches/1.6/mysql/
# mysql -u zabbix -p'zabbix' < patch.sql
No manual diz que este procedimento pode durar várias horas ou mais, a minha base está com 5,8 Gb e demorou segundos.

Instalar a nova Interface Web:
# cd /var/www/html/zabbix/
# rm -rf *
# cp -Rv /install/zabbix-1.6.1/frontends/php/* .
Como eu fiz o backup antes, resolvi apagar tudo e começar com uma interface web do zero.

Inicie os novos binários do Zabbix:
# cd /etc/zabbix/
# ./zabbix_server
# ./zabbix_agent
# ps -aux grep zabbix

Verifique os logs:
# cat /var/log/messages

Acesse a interface web:
http://localhost/zabbix/
Siga as telas até o final

Ele vai solicitar para salvar o arquivo:
/var/www/html/zabbix/conf/zabbix.conf.php
Salve o arquivo no diretório

Pronto você vai estar logado como guest!
Faça o logoff, entre com seu usuário administrador e sua senha
E veja que seus hosts já tem as novas opções

Observe nesta tela que peguei o histórico de 1 mês (30d history), e todos os meus dados estão intactos.

Propriedades do host:

Observe que o host Bilbo que já existia, está no novo padrão de grupos e com os novos camos da versão 1.6.x:
Monitoraded by proxy
Use IPMI
Use profile
Use extended profile

Referências:
ZABBIX Manual v1.6

terça-feira, 4 de novembro de 2008

Iniciando o Zabbix (Compilado) automáticamente pelo ntsysv no CentOS 5.2

Introdução:
Realizei a instalação do Zabbix 1.6 compilando a partir dos fontes de acordo com minhas necessidades, sistema configurado e instalado veio a dúvida, e agora como fazer para que o mesmo inicie automáticamente através do ntsysv?
Bom vamos lá:
Primeiramente fui ao site do zabbix na seção de downloads ver o que eu encontrava, na seção Distributions existe um link para o cvs do fedora, entrei na pasta do EL-5, já que estou usando CentOS 5.2, e foi lá que encontrei os arquivos bases, os quais adaptei para minhas necessidades. São eles zabbix-server.init e zabbix-agent.init.
Com os arquivos em mãos, precisei apenas acertar os caminhos do binário, arquivo de configuração e pidfile do zabbix.

Criando os arquivos:
# cd /etc.init.d/

# vi zabbix-server
#!/bin/sh

#

# chkconfig: - 85 15

# description: zabbix server daemon

#



### BEGIN INIT INFO

# Provides: zabbix

# Required-Start: $local_fs $network

# Required-Stop: $local_fs $network

# Default-Start:

# Default-Stop: 0 1 2 3 4 5 6

# Short-Description: start and stop zabbix server

# Description: Zabbix Server

### END INIT INFO



# zabbix details

ZABBIX=/usr/local/sbin/zabbix_server

CONF=/etc/zabbix/zabbix_server.conf

PIDFILE=/var/tmp/zabbix_server.pid



# Source function library.

. /etc/rc.d/init.d/functions



# Source networking configuration.

. /etc/sysconfig/network



# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0



[ -x $ZABBIX ] || exit 5

[ -e $CONF ] || exit 6



RETVAL=0



case "$1" in

start)

echo -n "Starting zabbix server: "

daemon $ZABBIX -c $CONF

RETVAL=$?

echo

[ $RETVAL -eq 0 ] && touch /var/lock/subsys/zabbix

;;

stop)

echo -n "Shutting down zabbix server: "

killproc zabbix_server

RETVAL=$?

echo

[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/zabbix

;;

restart|reload)

$0 stop

$0 start

RETVAL=$?

;;

status)

status zabbix_server

RETVAL=$?

;;

*)

echo "Usage: $0 {start|stop|restart|reload|status}"

exit 1

;;

esac



exit $RETVAL

# vi zabbix-agent

#! /bin/sh

#

# chkconfig: - 85 15

# description: zabbix agent daemon

#



### BEGIN INIT INFO

# Provides: zabbix-agent

# Required-Start: $local_fs $network

# Required-Stop: $local_fs $network

# Default-Start:

# Default-Stop: 0 1 2 3 4 5 6

# Short-Description: start and stop zabbix agent

# Description: Zabbix Agent

### END INIT INFO



# zabbix details

ZABBIX_AGENTD=/usr/local/sbin/zabbix_agentd

CONF=/etc/zabbix/zabbix_agentd.conf

PIDFILE=/var/tmp/zabbix_agentd.pid



# Source function library.

. /etc/rc.d/init.d/functions



# Source networking configuration.

. /etc/sysconfig/network



# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0



[ -x $ZABBIX_AGENTD ] || exit 5

[ -e $CONF ] || exit 6



RETVAL=0



case "$1" in

start)

echo -n "Starting zabbix agent: "

daemon $ZABBIX_AGENTD -c $CONF

RETVAL=$?

echo

[ $RETVAL -eq 0 ] && touch /var/lock/subsys/zabbix-agent

;;

stop)

echo -n "Shutting down zabbix agent: "

killproc zabbix_agentd

RETVAL=$?

echo

[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/zabbix-agent

;;

restart|reload)

$0 stop

$0 start

RETVAL=$?

;;

status)

status zabbix_agentd

RETVAL=$?

;;

*)

echo "Usage: $0 {start|stop|restart|reload|status}"

exit 1

;;

esac



exit $RETVAL

Tornando os arquivos executáveis:
# chmod +x zabbix-server
# chmod +x zabbix-agent

Criando os links simbólicos nos diferentes níveis de init:
# cd ../rc0.d/
# ln -s ../init.d/zabbix-server zabbix-server
# ln -s ../init.d/zabbix-agent zabbix-agent
# cp zabbix-* ../rc1.d/
# cp zabbix-* ../rc2.d/
# cp zabbix-* ../rc3.d/
# cp zabbix-* ../rc4.d/
# cp zabbix-* ../rc5.d/
# cp zabbix-* ../rc6.d/

Adicionando o serviço ao sistema:
# chkconfig –add zabbix-server
# chkconfig –add zabbix-agent

Selecionando o serviço para iniciar automáticamente:
# ntsysv

Marque as opções zabbix-agent e zabbix-server
Clique em OK

Referências:
Site Oficial Zabbix
CVS Fedora
Fórum CentOSBR
Viva o Linux

sexta-feira, 10 de outubro de 2008

Passo-a-Passo: Instalando o Zabbix no CentOS 5

Palestrei dia 07/10/08 na Jornada Acadêmica da FAC 2 e resolvi transformar a apresentação (Zappix na Prática - FAC II) neste artigo.

Sobre a escolha do SO:
Escolhi o CentOS por ser um SO Corporativo e ao mesmo tempo fácil de administrar para a maioria das pessoas, pois os procedimentos são os mesmos para Fedora, Red Hat Enterprise e CentOS.

Requisitos para a Instalação do Zabbix (CentOS):

Apache httpd 2.2.3-11.el5.centos
Php php-5.1.6-20.el5_2.1
Módulos Php:
php-gd-5.1.6-20.el5_2.1
php-bcmath-5.1.6.-20.el5_2.1
php-common-5.1.6.-20.el5_2.1
MySQL mysql-5.0.45-7.el5
MySQL Server mysql-server-5.0.45-7.el5
MySQL Devel mysql-devel- 5.0.45-7.el5
Net-Snmp net-snmp-5.3.1-19.el5
Net-Snmp-Devel net-snmp-devel-5.3.1-24.el5_2.1
Net-Snmp-Utils net-snmp-utils-5.3.1-19.el5
Net-Snmp-Libs net-snmp-libs-5.3.1-19.el5
Zabbix zabbix-1.4.5-2. el5
Zabbix Web zabbix-web-1.4.5-2. el5
Zabbix Agent zabbix-agent-1.4.5-2. el5

Resolvendo as Dependências:
Precisamos suprir as dependências de pacotes antes de instalarmos o Zabbix:

# yum -y install mysql-devel net-snmp-devel php-common php-gd php-bcmath


Irá surgir uma tela semelhante a esta:

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
net-snmp-devel i386 1:5.3.1-24.el5_2.1 updates 1.8 M
php-bcmath i386 5.1.6-20.el5_2.1 updates 32 k
php-gd i386 5.1.6-20.el5_2.1 updates 113 k
Updating:
mysql-devel i386 5.0.45-7.el5 base 2.4 M
php-common i386 5.1.6-20.el5_2.1 updates 154 k
Installing for dependencies:
beecrypt-devel i386 4.1.2-10.1.1 base 160 k
elfutils-devel i386 0.125-3.el5 base 52 k
elfutils-devel-static i386 0.125-3.el5 base 78 k
elfutils-libs i386 0.125-3.el5 base 105 k
Updating for dependencies:
mysql i386 5.0.45-7.el5 base 4.1 M
mysql-server i386 5.0.45-7.el5 base 9.7 M
php i386 5.1.6-20.el5_2.1 updates 1.1 M
php-cli i386 5.1.6-20.el5_2.1 updates 2.1 M
php-ldap i386 5.1.6-20.el5_2.1 updates 35 k
php-mysql i386 5.1.6-20.el5_2.1 updates 84 k
php-pdo i386 5.1.6-20.el5_2.1 updates 62 k

Transaction Summary
=============================================================================
Install 7 Package(s)
Update 9 Package(s)
Remove 0 Package(s)

Total download size: 22 M

Installed: net-snmp-devel.i386 1:5.3.1-24.el5_2.1 php-bcmath.i386 0:5.1.6-20.el5_2.1 php-gd.i386 0:5.1.6-20.el5_2.1
Dependency Installed: beecrypt-devel.i386 0:4.1.2-10.1.1 elfutils-devel.i386 0:0.125-3.el5 elfutils-devel-static.i386 0:0.125-3.el5 elfutils-libs.i386 0:0.125-3.el5
Updated: mysql-devel.i386 0:5.0.45-7.el5 php-common.i386 0:5.1.6-20.el5_2.1
Dependency Updated: mysql.i386 0:5.0.45-7.el5 mysql-server.i386 0:5.0.45-7.el5 php.i386 0:5.1.6-20.el5_2.1 php-cli.i386 0:5.1.6-20.el5_2.1 php-ldap.i386 0:5.1.6-20.el5_2.1 php-mysql.i386 0:5.1.6-20.el5_2.1 php-pdo.i386 0:5.1.6-20.el5_2.1
Complete!

Adicionando o EPEL (Extra Packages for Enterprise Linux):
O EPEL é um repositório confiável onde podemos encontrar os pacotes nas versões que precisamos:

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm

# yum -y install foo

Instalando do Zabbix:

# yum -y install zabbix zabbix-web zabbix-agent

Irá surgir uma tela semelhante a esta:

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
zabbix i386 1.4.5-2.el5 epel 2.1 M
zabbix-agent i386 1.4.5-2.el5 epel 199 k
zabbix-web i386 1.4.5-2.el5 epel 933 k
Installing for dependencies:
fping i386 2.4b2-7.el5 epel 30 k
iksemel i386 1.2-13.el5 epel 47 k

Transaction Summary
=============================================================================
Install 5 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 3.3 M

Installed: zabbix.i386 0:1.4.5-2.el5 zabbix-agent.i386 0:1.4.5-2.el5 zabbix-web.i386 0:1.4.5-2.el5
Dependency Installed: fping.i386 0:2.4b2-7.el5 iksemel.i386 0:1.2-13.el5
Complete!

Criaremos agora base de dados zabbix, vamos setar as permissões e importar os dados do Zabbix para o banco:

Iniciando o Banco de dados:
# service mysqld start

Entrando no Banco de dados:
# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

Criando a base de dados:
mysql> create database zabbix;
Query OK, 1 row affected (0.00 sec)

Definindo os privilégios:
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 row affected (0.00 sec)

Saindo do Banco de dados:
mysql> exit
Bye

Importando as tabelas do Zabbix para dentro do banco:
# mysql -D zabbix < /usr/share/doc/zabbix-1.4.5/dbinit/schema/mysql.sql
# mysql -D zabbix < /usr/share/doc/zabbix-1.4.5/dbinit/data/data.sql
# mysql -D zabbix < /usr/share/doc/zabbix-1.4.5/dbinit/data/images_mysql.sql

Iniciando o servidor Web:

# service httpd start

Abra um Browser e acesse:

http://localhost/zabbix/setup.php

Com isso, irá abrir o assistente de configuração do zabbix!

Bem Vindo


Licença GPL V2


Pré-requisitos

Para resolvermos estes erros precisamos acertar alguns parâmetros no php.ini:
# vi /etc/php.ini

date.timezone = "America/Sao_Paulo"
max_execution_time = 300

Após alterarmos os parâmetros precisamo reiniciar o Apache:
# service httpd restart


Pré-requisitos


Conexão com o Banco

Alterando o usuário de conexão com o Banco:
Observe que ele tenta se conectar com o usuário root e sem senha, mas precisamos mudar para o usuário zabbix, com a senha zabbix.

Conexão com o Banco


Resumo das informções de conexão com o Banco


Arquivo zabbix.conf.php

Corrigindo o zabbix.conf.php:
Primeiro clique em "save configuration file" e salve o arquivo no Desktop.

Observação: A tela diz para salvar em /usr/share/zabbix/conf/, porém:

# ls -las /usr/share/zabbix/conf/zabbix.conf.php
0 rwx rwx rwx 1 root root 38 Out 3 16:31 /usr/share/zabbix/conf/zabbix.conf.php -> ../ ../ ../ ../etc/zabbix/zabbix.conf.php

Veja que é um link para: /etc/zabbix/zabbix.conf.php

Por isso vamos fazer um backup do arquivo original:
# mv /etc/zabbix/zabbix.conf.php /etc/zabbix/zabbix.conf.php.orig

E depois mover o arquivo que salvamos no Desktop para o local correto:
# mv ~/Desktop/zabbix.conf.php /etc/zabbix


Arquivo de configuração OK


Finalizando


Login

Observe nesta tela acima que temos uma série de mensagens inúteis no topo, vamos remove-las:
# vi /etc/zabbix/zabbix.conf.php

Apague as seguintes linhas:
# This file is a place-holder. When you run through the zabbix # web setup, a proper configuration file should be generated # for you to drop in this location.

Recarregue a página:


Login

Logue como admin sem senha
Observação: Na versão atual (1.6) a senha padrão é zabbix

Entre em Reports // Status os ZABBIX

Observe que o Status do Zabbix está como No (Não está rodando)

Iniciando o Zabbix:
# service zabbix start
# service zabbix-agent start

Verificando o status do serviço:
# service zabbix status
zabbix_server está parado

# service zabbix-agent status
zabbix_agentd (pid XXX XXX ...XXXX) está rodando

O Zabbix Server não está rodando, por isso vamos verificar os logs:
# cat /var/log/zabbix/zabbix_server.log
2946:20081004:141745 Starting zabbix_server. ZABBIX
1.4.5.
2946:20081004:141745 **** Enabled features ****
2946:20081004:141745 SNMP monitoring: YES
2946:20081004:141745 WEB monitoring: YES
2946:20081004:141745 Jabber notifications: YES
2946:20081004:141745 IPv6 support: NO
2946:20081004:141745 **************************
2946:20081004:141745 Failed to connect to database: Error: Access denied for user 'zabbix'@'localhost' (using password: NO) [1045]

Corrigindo o zabbix_server.conf:
# vi /etc/zabbix/zabbix_server.conf
Altere o paramêtro:
DBPassword=zabbix

Observação: Na tela do assistente nós só testamos a conexão, mas é neste arquivo que fazemos a configuração definitiva.

Verificando o status do serviço:
# service zabbix status
zabbix_server (pid XXX XXX ...XXXX) está rodando

# service zabbix-agent status
zabbix_agentd (pid XXX XXX ...XXXX) está rodando

Recarregue a tela:

Observe que o Status do Zabbix está como Yes (Está rodando)

Colocando os serviços para iniciar automáticamente:
# ntsysv

Marque as opções:
[*] httpd
[*] mysqld
[*] zabbix
[*] zabbix-agent


Ntsysv

Instalação dos Agentes:

Red Hat Enterprise / Fedora / CentOS:
# yum -y install zabbix-agent

Agente Plataforma *nix:

Criar um usuário chamado zabbix, este usuário não precisa de shell:
# adduser
Username: zabbix
Shell: nologin

Criar um diretório chamado zabbix em /etc:
# mkdir /etc/zabbix

Faça o download do agente no site do Zabbix:

Descompacte o arquivo:
# tar -xzvf zabbix_agents_XXX.tar.gz

Entre no diretório que foi descompactado:
# cd zabbix_agents

Copie todo o conteúdo para o diretório /etc/zabbix:
# cp * /etc/zabbix

Altere as permissões deste diretório para o usuário zabbix e grupo users:
# chown -R zabbix:users /etc/zabbix

Precisamos configurar o arquivo zabbix_agentd.conf:
# vi /etc/zabbix/zabbix_agentd.conf

Conteúdo mínimo do arquivo:
Server=IP do Servidor do Zabbix

Hostname=Nome da máquina Cliente

StartAgents=5

DebugLevel=3
# Specifies debug level
# 0 - debug is not created
# 1 - critical information
# 2 - error information
# 3 - warnings (default)
# 4 - for debugging (produces lots of information)

PidFile=/var/tmp/zabbix_agentd.pid

LogFile=/tmp/zabbix_agentd.log

Timeout=3

Executando o agente:
# /etc/zabbix/zabbix_agentd

Verificando a execução do serviço: # ps -e | grep zabbix
16182 ? 00:00:00 zabbix_agentd
16183 ? 00:00:00 zabbix_agentd
16184 ? 00:00:05 zabbix_agentd
16185 ? 00:00:05 zabbix_agentd
16186 ? 00:00:05 zabbix_agentd

Agente Plataforma Windows:

Faça o download do agente no site do Zabbix:

Descompactar o arquivo

Copiar o diretório zabbix para C:\zabbix

Copiar o arquivo zabbix_agentd.conf para C:\zabbix_agentd.conf

Conteúdo mínimo do arquivo zabbix_agentd.conf:

Server=IP do Servidor do Zabbix

Hostname=Nome da máquina Cliente

StartAgents=5

DebugLevel=3

PidFile=c:\zabbix\zabbix_agentd.pid

LogFile=c:\zabbix\zabbix_agentd.log

Timeout=3

Executando o agente:
Duplo cliquem em c:\zabbix\zabbix_agentd.exe

Como esta tela fica em execução, qualquer pessoa que tenha acesso à máquina pode fechar esta janela, intencionalmente ou não, por isso o ideal é que o agente do zabbix rode como um serviço da máquina.

Gerando um serviço do Windows:
zabbix_agentd.exe -i

Observe que o próprio agente do zabbix já possui uma série de opções.

Verificando o status do serviço do zabbix:
Iniciar // Painel de Controle // Ferramentas administrativas // Serviços:

Serviço do Agente do Zabbix

Verificando as propriedades do serviço:
Duplo clique em ZABBIX Agent

Propriedades do serviço no Windows

Removendo o serviço:
zabbix_agentd.exe -d

Observe que o próprio agente do zabbix já possui uma série de opções.

Verificando se o serviço do zabbix foi removido:
Iniciar // Painel de Controle // Ferramentas administrativas // Serviços:

Verificando que o Agente do Zabbix foi removido

Referências:
Site do Zabbix:
http://www.zabbix.com

Licença Zabbix:
http://www.zabbix.com/licence.php

Manual do Zabbix:
http://www.zabbix.com/documentation.php

Site da Comunidade Brasileira:
http://www.zabbixbrasil.org

Lista da Comunidade Brasileira:
http://br.groups.yahoo.com/group/zabbix-brasil

Artigos:
http://www.linuxchix.org.br/files/evento/2005/palestras/zabbix.pdf
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=3951
http://www.dicas-l.com.br/dicas-l/20070728.php
http://www.slacklife.com.br/article.php?sid=1498
http://gentoo-wiki.com/HOWTO_Zabbix

quarta-feira, 17 de setembro de 2008

Jornada Acadêmica da FAC 2

Todos os anos temos algum tipo de evento na FAC 2 (Unianhanguera) relacionado aos cursos de informática, e este ano não será diferente.
Este ano teremos uma semana de palestras de todos os curso (Administração, Contabilidade, Recursos Humanos, Segurança Pessoal e Patrimonial, Sistemas de Informação, Ciência da Computação, Tecnologia em Analise e Desenvolvimento de Sistemas e Tecnologia em Redes), chamado de Jornada Acadêmica, ou seja acontecerá simultaneamente todas as noites uma série de palestras sobre os mais diversos temas de acordo com a área de interesse de cada curso.
Disponibilizo abaixo a Grade de Palestras:


Informações Importantes:
O evento é aberto ao público;
Empresas/ Grupos interessados em montar estande, podem nos procurar a única exigência é que distribuam alguns brindes para sorteio;

Contato:
André Déo - andredeo AT yahoo.com.br
Marcos Corá - marcos.cora AT unianhanguera.edu.br

sábado, 23 de agosto de 2008

SlackwareShow 2008

"Pelo quarto ano consecutivo será realizado em São Paulo o IV SlackShow, um evento voltado para técnicos, com palestras técnicas ministradas por técnicos, *dias 22 e 23 de Agosto*. Esse ano contamos com a presença de palestrantes internacionais como Alan Hicks (autor do The Book, manual do slackware), Eric Hameleers (responsável por boa parte da configuração de rede, das novidades do instalador) e Robby Workman (HAL, pacotes do KDE4, etc). Todos eles participam ativamente do desenvolvimento da nossa distribuição e são comitters do Slackbuilds.org."[1]
E eu estive lá!!!!

O Evento foi como todos os anos fantástico em vários sentidos, primeiro o foco do evento continua firme e forte, evento de técnicos para técnicos, o lugar foi um show a parte, a Universidade Mackenzie é simplesmente linda, pena que não tive tempo de tirar fotos do local, afinal de contas queira ver as palestras...
Este ano em especial teve as atrações internacionais... Cada um com seu estilo, seu jeito de falar mas as 3 palestras foram sensacionais, pessoalmente cada um é uma figura, Robby Workman impressiona pela humildade, muito tranquilo, diz não sei, fantástico, Eric Hameleers (Alien Bob) é o simpático, altão, se destaca no meio das pessoas, bem tranquilo também na hora de palestrar, Alan Hicks é o mais Slackware way of life, extremamente técnico (não que os outros não sejam), sorri bastante, mas a postura é outra, tipo eu sou assim gostem vocês ou não... Bem Slackware mesmo *risos*...
Tive o prazer de rever alguns amigos como o Reinaldo, a Camila, a Sulamita, o Piter e conhecer pessoalmente o Red Hate, amigo da lista do Zabbix.
Troquei algumas idéias técnicas com o Toledo, mesmo ele querendo esconder informações, arranquei dele o que queria...
Das palestras já sei as duas próximas coisas para brincar:
Pfsense e L-Series OS

Aliás a palestra do Ramoni na minha opinião foi a melhor...
Além de tudo isso, a compania não podia ser melhor fui ao evento com meu grande amigo Marcelo Franklin, o cara manja tudo de andar em SP de carro, foi a primeira vez que fui pra Sampa de carro e não nos perdemos nem na ida e nem na volta *risos*, fomos e voltamos trocando idéias, curtindo um bom rock n' roll, e matando a saudade do tempo que trabalhavamos juntos e trocavamos altas idéias... Além da capacidade técnica que dispensa comentários...

As fotos estão aqui!!

Para finalizar morram de inveja meros mortais, EU SOU ROOT:

Robby Workman [2] , Eric Hameleers (Alien Bob) [3] , Déo e Alan Hicks [4].

[1] - SlackwareZine
[2] - Robby Workman: É professor do ensino médio, ensina física em Tuscaloosa (E.U.A.), onde ele vive com sua esposa e filha. Ele utiliza sistemas operacionais Unix-like desde finais de 2004 e gosta de gastar a maior parte do seu tempo livre em computadores ... :) Ele é um membro da equipe principal do Slackware, e ele é um dos fundadores da SlackBuilds.org, um "quase oficial" repositório de scripts para construir um software adicional para Slackware. Robby também gosta de ajudar a traduzir o slackpkg de pt_BR para en_US.
[3] - Eric Hameleers (Alien Bob): É um dos membros, da equipe principal de desenvolvedores do Slackware. Ele também mantém um repositório de pacotes não-oficial Slackware e scripts, é um dos administradores do site SlackBuilds.org, e escreve artigos para o seu próprio Wiki. Ele nasceu na Holanda e ainda vive lá, com sua esposa, filho e vários pequenos animais.
[4] - Alan HicksNascido na Lizella,cidade da Georgia, E.U.A. Trabalha com computadores utilizando Slackware desde outubro de 2001. Ele atualmente trabalha para CTSMacon, uma pequena rede de engenharia e de apoio empresarial na Geórgia. Alan, ao longo dos anos tem trabalhado com inúmeros grupos relacionados a Slackware, incluindo os Slacksec, Slackbuilds.org, e a segunda edição do Slackware Linux Essentials. Quando não trabalhar com computadores, Alan gosta de gastar o seu tempo com caça, pesca, leitura e trabalhando em seus caminhões.

quarta-feira, 30 de julho de 2008

Levantamento de Hardware via VBScript (.vbs)

VBScript (acrónimo de Microsoft's Visual Basic Scripting Edition) é um sub-sistema do Visual Basic usado em Active Server Pages em Windows Scripting Host como uma linguagem de aplicação universal (general-purpose). O VBScript é frequentemente usado em substituição dos batch files DOS.
VBScript é interpretado por um script engine, seja um ASP num ambiente web, wscript.exe num ambiente Windows, e cscript.exe num ambiente de linha de comando.
Fonte: Wikipedia

Agora que você já sabe o que é um vbs, vamos ao que interessa, eu precisava levantar rapidamente as configurações das máquinas para criar um inventário de hardware, todo mundo já fez isso e sabe que é um inferno, passar de máquina em máquina vendo as configurações, anotando, depois monta a planilha ou banco de dados, enfim sem chances.
Poderia também montar um servidor para isso, usando o OCS Inventory NG ou o Cacic, mas lembre-se eu precisava levantar rapidamente as configurações, e ae o que fazer? A solução foi um vbs.

Através do Blog do Vinicius Canto, achei o post no fórum Technet-br, excelente script gera um relatório em html com sumário, exibe as informações em sessões, maravilha; Só que ele te pergunta de qual computador você quer gerar as informações

e depois algumas opções de geração de relatório.


Ae pensei, pô mas se eu pudesse gerar esse cara via script de login, ae sim seria perfeito, não que é que o Anthony já tinha pensado nisso!! Só que o dele gerava um arquivo .xml, fiz algumas adaptações para gerar só as informações que realmente me interessavam, removi as tags xml e gerei um .txt. Depois ficou fácil gerar uma planilha com as informações.

Segue abaixo o meu script baseado nos acima:
hardware.vbs

' Modificaçao para o arquivo gerado ter o nome do computador.

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_ComputerSystem",,48)
For Each objItem in colItems
NomeComputador = objItem.Caption
Next


'----------------------------- Cria o arquivo

Dim fso, txtfile
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtfile = fso.CreateTextFile("\\IP\NOME_DO_COMPARTILHAMENTO\" & NomeComputador & ".txt", True)
txtfile.Write ("Relatório de Hardware:")
txtfile.WriteBlankLines(3)
'--------------- Software
strComputer = "."
strProperties = "*"'"CSName, Caption, OSType, Version, OSProductSuite, BuildNumber, ProductType, OSLanguage, CSDVersion, InstallDate, RegisteredUser, Organization, SerialNumber, WindowsDirectory, SystemDirectory"
objClass = "Win32_OperatingSystem"
strQuery = "SELECT " & strProperties & " FROM " & objClass
Set colOS = objWMIService.ExecQuery(strQuery, , wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem in colOS
txtfile.write ("Nome:")
txtfile.WriteBlankLines(1)
txtfile.write (objItem.CSName)
txtfile.WriteBlankLines(1)
txtfile.write ("S.O.:")
txtfile.WriteBlankLines(1)
txtfile.write (objItem.Caption)
txtfile.WriteBlankLines(1)
If SO_Type = 16 Then
SO_Name = "Microsoft Windows 95"
ElseIf SO_Type = 17 Then
SO_Name = "Microsoft Windows 98"
End If
If SO_ProdType = 1 Then
SO_ProdType = "Estação de Trabalho"
ElseIf SO_ProdType = 2 Then
SO_ProdType = "Controlador de Domínio"
ElseIf SO_ProdType = 3 Then
SO_ProdType = "Servidor"
End If
If SO_Language = 1033 Then
SO_Language = "Inglês - Estados Unidos"
ElseIf SO_Language = 1046 Then
SO_Language = "Português - Brasil"
Else
SO_Language = "Outro idioma"
End If
If SO_Suite = 1 Then
SO_Suite = "Small Business"
ElseIf SO_Suite = 2 Then
SO_Suite = "Enterprise"
ElseIf SO_Suite = 4 Then
SO_Suite = "Backoffice"
ElseIf SO_Suite = 8 Then
SO_Suite = "Communication Server"
ElseIf SO_Suite = 16 Then
SO_Suite = "Terminal Server"
ElseIf SO_Suite = 18 Then
SO_Suite = "Enterprise e Terminal Server"
ElseIf SO_Suite = 32 Then
SO_Suite = "Small Business (Restrito)"
ElseIf SO_Suite = 64 Then
SO_Suite = "Embedded NT"
ElseIf SO_Suite = 128 Then
SO_Suite = "Data Center"
ElseIf SO_Suite = 256 Then
SO_Suite = "Single User"
ElseIf SO_Suite = 512 Then
SO_Suite = "Personal"
ElseIf SO_Suite = 1024 Then
SO_Suite = "Blade"
End If
Next
'------------------------------------------------------ Usuario----
txtfile.WriteBlankLines(1)
txtfile.write ("Usuário:")
txtfile.WriteBlankLines(1)
objClass = "Win32_ComputerSystem"
strQuery = "SELECT " & strProperties & " FROM " & objClass
Set colSys = objWMIService.ExecQuery(strQuery, , wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem in colSys
txtfile.write (objItem.UserName)
txtfile.WriteBlankLines(1)
Next
'-------------------------------Processador
txtfile.write("Processador:")
txtfile.WriteBlankLines(1)
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_Processor",,48)
For Each objItem in colItems
'------------------------------------------------- Nome do processador
txtfile.write (objItem.name)
txtfile.WriteBlankLines(1)
'------------------------------------------------- Clock
txtfile.write ("Clock:")
txtfile.WriteBlankLines(1)
txtfile.write (objItem.CurrentClockSpeed & " MHZ")
txtfile.WriteBlankLines(1)
Next
'----------------------------------Memoria
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_physicalmemory",,48)
For Each objItem in colItems
'------------------------------------------------- Nome do Banco
txtfile.write ("Memória:")
'------------------------------------------------- Capacidade
txtfile.write ("Capacidade:")
txtfile.WriteBlankLines(1)
txtfile.write (objItem.capacity/1048576)
txtfile.WriteBlankLines(1)
Next
'---------------------------------- hd
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_diskdrive",,48)
For Each objItem in colItems
'------------------------------------------------- modelo do disco
txtfile.write ("Disco:")
txtfile.WriteBlankLines(1)
txtfile.write (objItem.caption)
txtfile.WriteBlankLines(1)
'----------------------------------------------------- Interface
txtfile.write ("Interface:")
txtfile.WriteBlankLines(1)
txtfile.write (objItem.interfacetype)
txtfile.WriteBlankLines(1)
'----------------------------------------------------- Tamanho
txtfile.write ("Tamanho:")
txtfile.WriteBlankLines(1)
txtfile.write (int(objItem.size/1073741824) & " GB")
txtfile.WriteBlankLines(1)
Next
'------------------------------------------------- Nome do adaptador
strComputer = "."
strProperties = "Description, MACAddress, IPAddress, IPSubnet, DefaultIPGateway, DNSServerSearchOrder, DNSDomain, DNSDomainSuffixSearchOrder, DHCPEnabled, DHCPServer, WINSPrimaryServer, WINSSecondaryServer, ServiceName"
objClass = "Win32_NetworkAdapterConfiguration"
strQuery = "SELECT " & strProperties & " FROM " & objClass & " WHERE IPEnabled = True AND ServiceName <> 'AsyncMac' AND ServiceName <> 'VMnetx' AND ServiceName <> 'VMnetadapter' AND ServiceName <> 'Rasl2tp' AND ServiceName <> 'PptpMiniport' AND ServiceName <> 'Raspti' AND ServiceName <> 'NDISWan' AND ServiceName <> 'RasPppoe' AND ServiceName <> 'NdisIP' AND ServiceName <> ''"
Set colAdapters = objWMIService.ExecQuery(strQuery, , wbemFlagReturnImmediately + wbemFlagForwardOnly)
'--------------------------------------------------------rede
For Each objItem in colAdapters
'For Each objItem in colItems
txtfile.write ("Adaptador:")
txtfile.WriteBlankLines(1)
txtfile.write (objItem.Description)
txtfile.WriteBlankLines(1)
'------------------------------------------------- IP
txtfile.write ("IP:")
txtfile.WriteBlankLines(1)
IP_Address = objItem.IPAddress
txtfile.write (IP_Address(i))
txtfile.WriteBlankLines(1)
Next

terça-feira, 22 de julho de 2008

Descobrindo a senha de Adm do XP e do VISTA (Isso mesmo Descobrindo!!!)

Fonte:
Ophcrack

Todo Administrador de Redes está acostumado com Live CD de Linux que são usados para zerar a senha de adm do Windows XP e Vista, como por exemplo o Hiren's Boot CD, mas a proposta do Ophcrack é diferente, ele não zera a senha, ele lê a SAM e exibe todos os usuários locais e qual a senha deles.

Prático não? Se você tiver acesso fisíco a máquina basta iniciar com este Live CD, descobrir a senha de adm da máquina, usar para seus propósitos e depois deslogar ;-)

Obs: As informações contidas neste post são para Administradores de Rede, não me resposabilizo pelo uso indevido da ferramenta.