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
sexta-feira, 10 de outubro de 2008
Assinar:
Postagens (Atom)