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