anúncios

segunda-feira, 27 de julho de 2015

Instalando e configurando Zabbix no Debian

O que é o Zabbix ?

Zabbix é um software que monitora diversos parâmetros de uma rede como a integridade e desempenho dos servidores. Oferece excelentes relatórios e visualização de dados de recursos com base nos dados armazenados, e usa um mecanismo de notificação flexível que permite aos usuários configurar e-mail com alertas para qualquer evento, o que permite uma reação rápida para os problemas do servidor.

Corretamente configurado, o Zabbix pode desempenhar um papel importante no controle da infraestrutura de TI. Isto é igualmente verdade para as pequenas organizações com alguns servidores e para grandes empresas com um grande número de servidores.

O Zabbix é escrito e distribuído sob a GNU General Public License versão 2. Isso significa que seu código-fonte é distribuído gratuitamente e está disponível para o público em geral.

Depois de conhecer o Zabbix e pra que serve, podemos seguir os procedimentos de instalação e configuração do Zabbix em seu servidor GNU/Linux Debian.

Observação: Testado no GNU/Linux Debian 8 (Jessie) e versão atual do Zabbix é 2.4.45 até a data de publicação deste post.

Segue os procedimentos de instalação e configuração do Zabbix
Atualizando o repositório de pacotes
#apt-get update
Instalando os pacotes pré-requisitos necessários
#apt-get install apache2 mysql-server php php-gd php-mysql php-curl php-imap php-ldap

Criando o banco de dados Zabbix no MySQL
# mysql_install_db
# mysql -u root -p
Enter password: < digite a senha de root que foi definida na instalação do MySQL >
Criar o banco de dados zabbix
mysql> create database zabbix character set utf8;
Criar o usuário zabbix para o banco zabbix
mysql> GRANT ALL PRIVILEGES ON *.* TO zabbix@localhost IDENTIFIED BY 'senha_zabbix' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
Listar o banco zabbix que foi criado e demais bancos existentes.
mysql> show database;
mysql> quit

Criando usuário Zabbix sem Shell
#useradd zabbix -s /bin/false
root@Saitam:/etc/mysql# passwd zabbix
Digite a nova senha UNIX: < digite uma senha para o usuário zabbix >
Redigite a nova senha UNIX: < digite a mesma senha informada acima >
passwd: senha atualizada com sucesso

Algumas parametrizações no PHP para o Zabbix
Altere as linha 121, 372, 660, 884 do arquivo /etc/php5/apache2/php.ini e deixe como segue:
max_input_time = 300
max_execution_time = 300
post_max_size = 16M
date.timezone = "America/Sao_Paulo"
Descomentar a linha 704 para não falhar no setup da tela 1 para 2 always_populate_raw_post_data = -1

Reinicie o serviço Apache para efeito
#service apache2 restart

Download do Zabbix
Opcional: Salvo em /usr/src/
#cd /usr/src/
#wget -c "https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz"

Extraindo o arquivo zabbix-2.4.5.tar.gz
# tar -xzvf zabbix-2.4.5.tar.gz
# cd zabbix-2.4.5
Executar o configure com as opções
#./configure --enable-server --enable-agent --with-mysql --with-netsnmp --with-libcurl=/usr/bin/curl-config --with-ssh2 --with-openipmi
Após finalizar de checar a execução do arquivo configure, se aparecer no final 'execute run make install' é porque está pronto para o próximo passo.
# make install

Populando o banco Zabbix
# cd database/mysql
# mysql -D zabbix -u zabbix -p < schema.sql
Enter password: < digitar a senha definida para o usuário zabbix >

# mysql -D zabbix -u zabbix -p < images.sql
Enter password: < digitar a senha definida para o usuário zabbix >

# mysql -D zabbix -u zabbix -p < data.sql
Enter password: < digitar a senha definida para o usuário zabbix >


Configuração do Banco MySQL para Zabbix está OK
Ajuste de permissões
# mkdir /etc/zabbix
# chown -R zabbix.zabbix /etc/zabbix/

Local de configuração padrão do Zabbix
# cd /usr/local/etc
# vim zabbix_agent.conf
Altere a linha 13
Server=192.168.1.5 #Altere para o IP do seu servidor Zabbix
# vim zabbix_server.conf
Verifique as linhas 78,92,102
DBName=zabbix #Nome do banco de dados criado
DBUser=zabbix #Usuário do banco de dados criado
DBPassword=zabbix #Senha do banco de dados criado

Criar um link simbólico no local default (/usr/local/etc/) do Zabbix para /etc/zabbix
# ln -s /usr/local/etc/ /etc/zabbix/

Ajustar scripts de inicialização Zabbix para o Debian
# cd /usr/src/zabbix-2.4.5/misc/init.d/debian
# cp zabbix-* /etc/init.d/
# cd /etc/init.d/
# chmod +x zabbix-server
# chmod +x zabbix-agent
# rcconf
Marque as opções zabbix-server e zabbix-agent
Startar os serviços Zabbix
# /etc/init.d/zabbix-server start
Starting Zabbix server daemon: zabbix_server
# /etc/init.d/zabbix-agent start
Starting Zabbix agent daemon: zabbix_agentd
Criar o diretório zabbix no /var/www/html
# mkdir /var/www/html/zabbix
Copiar o diretório frontends do Zabbix para o /var/www/html/zabbix
# cd ../../../
# cp -R frontends/php/* /var/www/html/zabbix/
# chown -R www-data:zabbix /var/www/html/zabbix/

Criar o VirtualHost zabbix
# cd /etc/apache2/sites-available/
# cp 000-default.conf zabbix.conf
# vim /etc/apache2/sites-available/zabbix.conf
Alterar a linha 12 e deixar como segue:
DocumentRoot /var/www/zabbix/ Habilitar o VirtualHost
# a2ensite zabbix.conf
Reiniciar o Apache
# service apache2 restart
Acesse no navegador: http://< IP ou nome do servidor Zabbix >/zabbix
Irá aparecer as telas de configuração (Setup) do Zabbix
Tela 1: Clique em Next
Tela 2: Se tiver OK, clique em Next
Tela 3: Colocar o nome do banco de dados MySQL criado anteriormente, nome de usuário e senha do banco. Faça o teste de conexão e clique em Next
Tela 4:
Host: Colocar o IP do servidor Zabbix
Port: 10051
Name: Nome do servidor Zabbix
Depois clique em Next.
Tela 5: Apenas de conferência, se tiver OK, clique em Next.
Tela 6: Se seguiu os passos corretamente, receberá nessa tela "Congratulations on successful installation of Zabbix frontend", clique em Finish, caso contrário reveja o howto.
Após terminar o Setup do Zabbix, terá acesso a tela de login, usuário e senha default são conforme abaixo:
Login: admin
Senha: zabbix
Tela final:
Ativar o monitoramento do Zabbix
No menu Configuration -> hosts para visualizar
O host do Zabbix, depois clique em "Not monitored"
NOTA: Se utiliza as regras do firewall em DROP, liberando apenas as portas dos serviços de redes ativos, então lembrar de liberar a porta 10051 default do Zabbix no script firewall.

Referências:
https://www.zabbix.com/documentation/2.4/manual/introduction/about
http://www.vivaolinux.com.br/artigo/Monitoracao-com-Zabbix-no-Debian-Squeeze?pagina=2
http://zabbixbrasil.org/files/Tutorial_de_instala%C3%A7%C3%A3o_do_Zabbix_2.0.0_debian.pdf
Feito!

segunda-feira, 20 de julho de 2015

Instalando e configurando o SVN (Subversion) no Debian

O que é Subversion ?

O Subversion é um controle de versão opensource, que gerencia arquivos de códigos fontes e diretórios das modificações realizadas durante o desenvolvimento do projeto. Nisso permite que você faça revisão da versão anterior do projeto comparando com a versão atual, analisando as alterações de cada código fonte do projeto.


Segue os procedimentos de instalação e configuração do servidor SVN (Subversion).
Instalação dos pacotes necessários
#apt-get update
#apt-get install subversion libapache2-mod-passenger libapache2-svn apache2

Criação do arquivo de configuração
# vim /etc/apache2/sites-available/svn.conf
OBS: A tag < Location > foi adicionado um espaço para ser exibido no post, no arquivo de configuração é sem o espaço.

< Location /Projetos>
DAV svn
SVNListParentPath on
#(local do repositório onde estarão seus projetos)
SVNParentPath "/var/svn/repositorio"
AuthType Basic
AuthName "Projetos"
#(arquivo com as senhas dos usuários)
AuthUserFile "/var/svn/repositorio/.svnpasswd"
Require valid-user
< /Location>


Criação dos diretórios conforme mencionado no arquivo de configuração
#mkdir /var/svn
#mkdir /var/svn/repositorio

Habilita o módulo DAV_SVN e o VirtualHost
#a2enmod dav_svn
#a2ensite svn

Reinicie o servidor Apache para efeito
#service apache2 restart

Criação do repositório conforme mencionado no arquivo de configuração e as devidas permissões
#svnadmin create /var/svn/repositorio/projetos
#htpasswd -c /var/svn/repositorio/.svnpasswd NomeDoProgramador1
#htpasswd /var/svn/repositorio/.svnpasswd NomeDoProgramador2
E assim sucessivamente para os demais usuários que terão acesso ao SVN
#chown -R www-data /var/svn
Faça o teste acessando pelo navegador conforme o contexto utilizado no arquivo de configuração
http://ip-ou-nome-do-servidor/Projetos
Para adicionar nos clientes SVN, basta utilizar a URL: http://ip-ou-nome-do-servidor/Projetos/projetos/, onde /Projetos é o contexto definido no arquivo de configuração e /projetos foi definido na execução do repositório.
Screenshot de teste.

Feito!

domingo, 12 de julho de 2015

Gerenciando VirtualBox pelo navegador

Caso você tenha várias máquinas virtuais (VMs) no VirtualBox e pretende gerenciar o VirtualBox pelo navegador de qualquer máquina, então você está no lugar certo.
Será utilizado o projeto phpVirtualBox que foi desenvolvido com o objetivo de ser possível gerenciar VMs do VirtualBox pelo navegador.
No entanto são necessários a instalação do Apache e PHP no servidor que tiver instalado o VirtualBox.


Então, vamos nessa ? Segue os passos atentamente.
Procedimentos de instalação e configuração
Apache + PHP
No Debian
#apt-get install apache2 libapache2-mod-php5
Oracle VirtualBox
#echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -c | \rev | cut -d: -f1 | rev) contrib" >> /etc/apt/sources.list

#wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add - #apt-get install virtualbox-4.3

Instalação do phpVirtualBox
#wget http://sourceforge.net/projects/phpvirtualbox/files/latest/download/phpvirtualbox-4.3-3.zip
#unzip phpvirtualbox-4.3-3.zip -d /var/wwww
Irá criar o diretório /var/www/phpvirtualbox-4.3-3, após extrair o arquivo phpvirtualbox-4.3-3.zip
Acessar /var/www e renomear o diretório.
#mv phpvirtualbox-4.3-3/ phpvirtualbox

Criação do usuário utilizador do VirtualBox
Precisamos adicionar um usuário para o serviço do VirtualBox e integração com phpVirtualBox.
#useradd -d /home/vbox -m -g vboxusers -s /bin/bash vbox
#passwd vbox
OBS: O nome de usuário vbox foi apenas uma sugestão, podendo ser qualquer outro usuário, desde que pertença ao grupo vboxusers.

Mapeando o usuário utilizador com o IP do servidor de virtualização
Criar o arquivo /etc/default/virtualbox
#vim /etc/default/virtualbox
Coloca nesse arquivo
VBOXWEB_USER=usuario_utilizador_vbox
VBOXWEB_HOST=IP_SERVIDOR_VIRTUALIZAÇÃO

Criar um VirtualHost para phpvirtualbox
#cd /etc/apache2/sites-available
#cp default phpvirtualbox
#vim phpvirtualbox
Altere as linhas
DocumentRoot /var/www/phpvirtualbox
< Directory /var/www/phpvirtualbox >

Habilita o VirtualHost
#a2ensite phpvirtualbox

No diretório onde foi extraído o phpVirtualBox /var/www/phpvirtualbox
#cd /var/www/phpvirtualbox
#mv config.php-example config.php
#vim config.php
Alterar as linhas 12, 13 e 176 var $varusername = 'usuario_vbox';
var $password = 'senha_usuario_vbox';
var $language = 'pt_br';
var $enableAdvancedConfig = true;

Por fim, ativar o serviço na inicialização do sistema
#update-rc.d vboxweb-service defaults

Faça o teste de outra máquina e tente acessar o servidor: http://IP/phpvirtualbox
Se acessar, então está OK, agora pode gerenciar as VMs pela interface web no navegador.

Caso as VMs estiver em outro local, deve mover para o diretório de usuário utilizador do VirtualBox, alterando as devidas permissões.
#hown -R vbox:vboxusers /home/vbox/VirtualBox\ VMs/[DirVM]/

Possíveis erros e soluções
1. Se caso ocorrer o erro "Invalid username or password".
O username / password default para logar no phpVirtualBox é admin/admin. Esse username/password é exclusivo do phpVirtualBox, porém você pode alterar o password por questão de segurança.

2. Caso após o acesso do login ocorrer o erro "Could not connect to host (http://127.0.0.1:18083/)". É porque faltou startar o serviço vboxwebsrv do VirtualBox.
#vboxwebsrv >nul &
#/etc/init.d/apache2 start
#/etc/init.d/vboxweb-service start
#/etc/init.d/vboxdrv start
Interessante colocar no script na inicialização.

3. Se caso ocorrer o erro "Method 'ns1:xxxxxxxxxxx' not implemented: method name or namespace not recognized". É porque a versão do phpVirtualBox é incompatível com a versão do VirtualBox. Verifique se esta na mesma versão.

Referência
http://sourceforge.net/p/phpvirtualbox/wiki/Home/
Feito!