Iniciando o Zabbix Compilado automaticamente pelo ntsysv no CentOS 5.4

Introdução:

Quando realizei a instalação do Zabbix 1.6 compilando a partir dos fontes de acordo com minhas necessidades, configurei e instalei o sistema, veio a dúvida, e agora como fazer para que o mesmo inicie automáticamente através do ntsysv?
Primeiramente fui ao site do zabbix na seção de downloads (external link) ver o que eu encontrava, na seção Distributions existe um link (external link) para o cvs do fedora, entrei na pasta do EL-5 (external link), já que estou usando CentOS 5.4, e foi lá que encontrei os arquivos bases, os quais adaptei para minhas necessidades. São eles zabbix-server.init (external link) e zabbix-agent.init (external link).
Com os arquivos em mãos, precisei apenas acertar os caminhos do binário, arquivo de configuração e pidfile do zabbix.
A grande vantagem é que continou funcionando para todas as versões do Zabbix que foram lançadas.

Criar 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_agentd
# !/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

Tornar os arquivos executáveis:

# chmod +x zabbix_server
# chmod +x zabbix_agentd

Adicionar o serviço ao sistema:

# chkconfig --add zabbix_server
# chkconfig --add zabbix_agentd

Configurar o serviço para iniciar automáticamente:

# ntsysv

Marque as opções zabbix_agentd e zabbix_server
Clique em OK

Opcional - Zabbix Proxy:

Criar os arquivos:

# cd /etc/init.d/
# vi zabbix_proxy
# !/bin/sh
#
# chkconfig: - 85 15
# description: zabbix proxy 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 proxy
# Description: Zabbix Proxy
### END INIT INFO

# zabbix proxy details
ZABBIX=/usr/local/sbin/zabbix_proxy
CONF=/etc/zabbix/zabbix_proxy.conf
PIDFILE=/tmp/zabbix_proxy.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 proxy: "
daemon $ZABBIX -c $CONF
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/zabbix-proxy
;;
stop)
echo -n "Shutting down zabbix proxy: "
killproc zabbix_proxy
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/zabbix-proxy
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
status)
status zabbix_proxy
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
;;
esac
exit $RETVAL

Opcional - Repetir os passos anteirores para o Zabbix Proxy:

Repita os passos anteriores:
  • Tornar os arquivos executáveis.
  • Adicionar o serviço ao sistema.
  • Configurar o serviço para iniciar automáticamente.

Referências:

Site Oficial Zabbix (external link)
CVS Fedora (external link)
Fórum CentOSBR (external link)
Viva o Linux (external link)

Criado por: André Déo