Suite à une mise à jour, Zabbix ne se lance plus au démarrage.

Voici un petit problème qui m’est arrivé recemment.

Après une mise a jour sur un serveur sous Ubuntu 14.04 hébergeant Zabbix server 3.0.3, celui-ci semblait ne plus se lancer automatiquement après un reboot.

En regardant les logs de Zabbix server, on voit que le processus se lance mais s’arrête car il ne semble pas pouvoir se connecter à la base de données :

1651:20160524:111608.583 End of zbx_mem_create()
1651:20160524:111608.583 End of zbx_vc_init()
1651:20160524:111608.583 In zbx_db_get_database_type()
1651:20160524:111608.583 In DBconnect() flag:0
1651:20160524:111608.587 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
1651:20160524:111608.588 Cannot connect to the database. Exiting...

Zabbix semble être trop rapide pour Mysql qui ne s’est pas encore lancé … Je ne sais pas pourquoi ce problème est apparu avec cette récente mise à jour.

Mais il est possible de s’en accommoder : en modifiant le fichier de configuration du service zabbix-server.

Celui-ci se trouve ici : /etc/init/zabbix-server.conf

Il faut l’éditer et lui dire d’attendre quelques secondes avant de se lancer, avec la commande <code>sleep</code>, voici mon fichier de configuration avec mes modifications en gras :

# Upstart job to start the zabbix server

description "Zabbix server"
author "Christian Kampka <chris@emerge-life.de>"

start on (filesystem and net-device-up IFACE=lo)
stop on runlevel [!2345]

expect daemon

respawn

# wait for server to properly disconnect from connected nodes
kill timeout 30

console log

env DIR="/var/run/zabbix"

pre-start script
# add a little time to make sure that Mysql has started
 sleep 15

# stop job from continuing if no config file found for daemon
[ ! -f /etc/default/zabbix-server ] && { stop; exit 0; }

# source the config file
. /etc/default/zabbix-server

# stop job from continuing if admin has not enabled service in
# config file.
[ "x$START" = "xyes" ] || { stop; exit 0; }

[ -d "$DIR" ] || mkdir "$DIR"
chown -R zabbix:zabbix "$DIR"

end script

script
. /etc/default/zabbix-server

exec /usr/sbin/zabbix_server -c $CONFIG_FILE
end script