quinta-feira, 6 de agosto de 2009

Realizando o Inventário de Hardware com o OCS Inventory NG

Introdução:
Inventariar os micros da rede é sempre uma tarefa cansativa, e por muitas vezes imposível de ser realizada. Mas existe uma ótima ferramenta que nos permite realizar o inventário da rede de forma rápida e segura, o OCS Inventory NG.

Dentre as várias vantagens do OCS destacam-se a licença, GNU/GPL, a facilidade de executarmos em ambientes Linux ou Windows, e o fato de os relatórios serem salvos em um banco de dados MySQL.

O que vamos precisar:

- MySQL 4.1 ou superior
- PERL 5.6 ou superior
- Apache versão 1.3.33 ou superior / Apache versão 2.0.X ou superior
- Apache Mod_perl versão 1.29 ou superior
- PHP 4.3.2 ou superior, com suporte a ZIP habilitado.
- Apache Mod_php versão 4.3.2 ou superior
- Perl module XML::Simple versão 2.12 ou superior
- Perl module Compress::Zlib versão 1.33 ou superior
- Perl module DBI versão 1.40 ou superior
- Perl module DBD::Mysql versão 2.9004 ou superior
- Perl module Apache::DBI versão 0.93 ou superior
- Perl module Net::IP versão 1.21 ou superior
- Perl module SOAP::Lite versão 0.66 ou superior
- Perl module XML::Entities versão 0.02 ou superior

O Apache com suporte a Perl e PHP, pode ser instalado normalmente como no artigo Configurando um Servidor LAMP. Os módulos de Perl podem ser instalados com a seguinte sequência:

# perl -MCPAN -e shell

cpan> install XML::SAX::PurePerl
cpan> install XML::Simple
cpan> install Compress::Zlib
cpan> install DBI
cpan> install DBD::mysql
cpan> install Apache::DBI
cpan> install Net::IP
cpan> install SOAP::Lite
cpan> install XML::Entities

Terminada a instalação dos pacotes, poderemos partir para o OCS. O software pode ser obtido em http://www.ocsinventory-ng.org/. Faça o download da versão mais recente e vamos para a configuração.

# cd /usr/local/src
# tar zxvf /install/ocs/OCSNG_UNIX_SERVER-*.tar.gz
# cd OCSNG_UNIX_SERVER-*
# ./setup.sh
Obs.: Onde "*" corresponde a versão do OCS.

A partir deste ponto, aceite as configurações que o instalador for passando.
Atenção neste ponto pois o diretório padrão de instalação é o /usr/share/ocsinventory-reports/ocsreports/


/usr/share/ocsinventory-reports

Criando um link no diretório de páginas web para o diretório default do OCS:
# ln -s /usr/share/ocsinventory-reports/ocsreports/ /var/www/html/ocsreports


No final reinicie o servidor apache:
# service httpd restart

Atualizado em 07/08/12:
# vi /etc/httpd/conf.d/z-ocsinventory-server.conf
Altere os dados da seção "Master Database settings", por padrão nesse arquivo vem setada a base "ocsweb" com usuário "ocs" e senha "ocs". Se as suas configuraações forem diferentes disso você não conseguirá usar o sistema.

Acesse seu OCS:
http://localhost/ocsreports/install.php

Preencha as informações:
MySQL login : root
MySQL password : senha para acessar o banco   
MySQL HostName : localhost


Não se preocupe com a frase "NOTICE: You will not be able to build any deployment package with size greater than Xm."
Se você alterar o php.ini, apenas irá mudar o valor máximo de upload (X), mas a frase não irá desaparecer, é apenas um aviso.

Clique no botão send e será criado o banco que armazenará os dados dos clientes.

Feito isso acesse o ocs pelo endereço http://localhost/ocsreports


Em seu primeiro login, o usuário é admin e a senha é admin.

Referências:
http://www.vidalinux.com.br/archives/60

quarta-feira, 15 de julho de 2009

Criando um segundo HD para a VMware

1º Passo – Cópia “física dos HDs”

Copiei os arquivos:
CentOSdoDeo.vmdk
CentOSdoDeo-flat.vmdk

Para:
SegundoHD.vmdk
SegundoHD-flat.vmdk



2º Passo – Editar o arquivo .vmx
Editei o arquivo Red Hat Enterprise Linux 5.vmx (Arquivo de configuração do VMware), acrescentando as seguintes linhas:
ide1:1.present = "TRUE"
ide1:1.fileName = "SegundoHD.vmdk"

O início do arquivo ficou assim:
.encoding = "windows-1252"
config.version = "8"
virtualHW.version = "6"
scsi0.present = "TRUE"
scsi0.virtualDev = "lsilogic”
memsize = "1024"
ide0:0.present = "TRUE"
ide0:0.fileName = "CentOSdoDeo.vmdk"
ide1:0.present = "TRUE"
ide1:0.fileName = "C:\Arquivos de programas\VMware\VMware Workstation\linux.iso"
ide1:0.deviceType = "cdrom-image"
ide1:1.present = "TRUE"
ide1:1.fileName = "SegundoHD.vmdk"
floppy0.autodetect = "TRUE"
ethernet0.present = "TRUE"
ethernet0.connectionType = "nat”"

3º Passo – Iniciar a VM

Dois HDs presentes na seção Devices da VM


Dois HDs presentes na inicialização da VM

4º Passo – Verificar se o SO reconhece os discos
# fdisk -l /dev/hda

Disk /dev/hda: 4617 MB, 4617089536 bytes
255 heads, 63 sectors/track, 561 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes

Dispositivo Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 78 522112+ 82 Linux swap / Solaris
/dev/hda3 79 561 3879697+ 83 Linux

# fdisk -l /dev/hdd

Disk /dev/hdd: 4617 MB, 4617089536 bytes
255 heads, 63 sectors/track, 561 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes

Dispositivo Boot Start End Blocks Id System
/dev/hdd1 * 1 13 104391 83 Linux
/dev/hdd2 14 78 522112+ 82 Linux swap / Solaris
/dev/hdd3 79 561 3879697+ 83 Linux

Agora tenho dois discos iguais, perfeito para meus propósitos de demonstrar o uso de RAID em GNU/Linux.

Se não é essa a sua intenção, basta usar as ferramentas do GNU/Linux para:
Reparticionar o disco (cfdisk, fdisk)
Formatar de acordo com o sistema de arquivos desejável (mkfs.ext2, mkfs.ext3, mkreiserfs, mkswap).

terça-feira, 24 de março de 2009

Monitorando um Equipamento via Zabbix com Simple Check

Introdução:
Muitas vezes precisamos realizar a checagem de embarcados como catracas, no-break, cameras de vigilância, etc, ou seja equipamentos que muitas vezes não vem com suporte a SNMP e não suportam a instalação de um agente. Em outras situações precisamos monitorar se determinados serviços estão em execução, como SMTP, FTP, IMAP, POP3, SSH, HTTP, etc.
Para estes casos o Zabbix possibilita o uso de Simple Checks, checagens que não necessitam de SNMP e nem de agentes instalados, checagens que nos retornam "sim" ou "não", 0 ou 1.
Neste tutorial utilizei a distribuição CentOS, mas os procedimentos são genéricos, com exceção da instalação do fping.

Para utilização do Simple Check é necessário a instalação do fping:
# yum -y install fping

Verifique se o fping possui permissão para o root e a flag SUID habilitada:
# ls -las /usr/sbin/fping
24 -rwsr-xr-x 1 root root 23468 Jul 30 2007 /usr/sbin/fping

Se for necessário alterar:
# chown root:root /usr/sbin/fping
# chmod a+s /usr/sbin/fping

Testando o funcionamento do comando:
# /usr/sbin/fping IP

A resposta deve ser:
IP is alive

Configurando o zabbix_server.conf:
# vi /etc/zabbix/zabbix_server.conf

Descomente a linha abaixo:
FpingLocation=/usr/sbin/fping

Reinicie o processo do zabbix_server:
# ps -aux | grep zabbix_server

# kill -15 PID do primeiro processo

# /etc/zabbix/zabbix_server

Configurando o Simple Check de um host
Configuration // Hosts // Creat Host

Name: Nome do Host
Groups: Grupo do Host
DNS name: Nome DNS
IP address: IP do Host
Connect to: IP
Port: 0
Link with template: Template_Standalone



Configuration // Graphs // Creat Graph
Name: Ping
Items: Template_Standalone: ICMP ping



Monitoring // Graphs


Exemplo de gráfico de Ping da catraca.

Criando o gráfico para resposta do Ping em Milisegundos

Além de monitorar o estado da conexão é interessante também monitorar a resposta em milisegundos do ping, isto pode ser usado inclusive para monitorar a qualidade do sinal da sua rede sem fio ;-)

Criando um item para monitorar a resposta do ping em milisegundos:

Configuration // Items
Group: Templates
Host: Template_Standalone

Abra o ICMP ping

Clique em Clone

Faça as seguintes alterações:
Description: ICMP ping ms
Key: icmppingsec
Type of information: Numeric (float)
Use multiplier: Custom multiplier
Custom multiplier: 1000
Save



Precisamos alterar o Custom multiplier para 1000 pois o fping responde em Milissegundos e o icmppingsec como o própio nome já diz responde em Segundos, por isso precisamo multiplicar por 1000, para recebermos o valor correto nos gráficos.

Agora basta você criar um gráfico com este novo item.


Exemplo de gráfico de tempo de resposta em ms do ping da catraca.

Agradecimentos ao Redhate (Luiz Antonio), que me deu a dica do fping e me disse que dava para pegar também o tempo de resposta.
O parâmetro icmppingsec eu achei no forum do Zabbix.

sexta-feira, 20 de março de 2009

Livro SNMP Essencial em Português

Pessoal depois de muito tempo querendo este livro que teve tiragem única, consegui quase simultâneamente duas cópias...
O livro mesmo eu comprei pela internet de um sebo em SP, aliás se achar algum livro lá pode comprar sem medo, recomendado.
Depois um amigo da lista do Zabbix me disse que tinha uma cópia scaneada que ele arrumou no underground, e compartilhou comigo...
Segue o link para feliciade de todos:
Livro SNMP Essencial

Abraços,
Déo

terça-feira, 23 de dezembro de 2008

Mensagem de Fim de Ano 2008

Pois é meus amigos como passa.... 2008 dá os últimos respiros e 2009 começa a brilhar na nossa mente, novos sonhos, esperanças, promessas, expectativas...
Como todo ano costumo fazer uma breve retrospectiva da minha vida, e como sempre só tenho a agradecer ao papai do céu...
Em 2008, migrei da iniciativa privada para a pública e tive um aumento de 110% na minha qualidade de vida, tanto pessoal quanto profissional.
Tive o privilégio de novamente participar de alguns eventos, fazer alguns treinamentos, conhecer novas pessoas, trocar experiências e ganhar alguns amigos novos, tive o imenso prazer de ler alguns livros (http://andredeo.blogspot.com/2008/03/livros-que-eu-li-em-2008.html)...
Realizei o sonho de me tornar um professor universitário, consegui continuar meu inglês, minha pós está quase terminada, mais 2 meses de aula em 2009, uma monografia e está feito.
Venci todas as adversidades e situações que se colocaram a minha frente, fecho o ano com aquela sensação de dever cumprido, com a consciência limpa e o coração alegre...
Claro que não foram só alegrias, teve muita luta, muitas dificuldades, alguns contratempos, mas o que não nos mata nos torna mais fortes.. Lembre-se que Deus não nos dá carga maior do que podemos suportar e mais, em Romanos 5.3 e 4 está escrito: E não somente isto, mas também nos gloriamos nas próprias tribulações, sabendo que a tribulação produz perseverança; e a perseverança, experiência; e a experiência, esperança.
Que você aproveite este natal com a sua família, seus amigos, seus entes queridos, que seja um dia de paz, amor, reflexão e alegrias.
E que em 2009 sua vida seja repleta de esperança, esperança de novos sonhos, de novas conquistas, de paz, saúde, amor, alegria e tudo que vocês meus AMIGOS, merecem.
Que Deus abençoe a todos.
Feliz Natal e Feliz 2009!
André Déo

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