Zabbix : acknowledge impossible

Publié le 11 December 2018

Sur un Zabbix 3.4, il n’était pas possible d’acknowledger les alertes. L’erreur était :

Fatal error, please report to the Zabbix team

- Controller: acknowledge.edit
- action: acknowledge.edit
- backurl: zabbix.php?action%3Ddashboard.view
- eventids: Array

Le problème est tout con, et ne provient pas de Zabbix. Dans la configuration Apache j’ai retrouvé les lignes suivantes :

RewriteEngine on
RewriteRule ^/zabbix / [R,L]

Je suppose qu’a une époque l’interface web se trouvait derrière le répertoire /zabbix mais qu’à un moment quelqu’un a voulu simplifier et tout mettre à la racine. Ensuite il a rajouté la redirection pour ne pas casser tous les webservices existants (plusieurs services externes utilisent l’API de ce Zabbix). Le problème c’est que ce faisant il a redirigé tout ce qui commençait par /zabbix, y compris les appels à /zabbix.php. Et, vous l’aurez compris, l’acknowledge fait justement un appel à /zabbix.php.

En regardant les logs Apache j’ai vu que plus aucun webservice n’appelait /zabbix. J’ai donc tout simplement supprimé la redirection.

Si vous devez conserver la redirection, il devrait être possible de s’en sortir avec une règle du type (attention, je n’ai pas testé) :

RewriteEngine on
RewriteRule ^/zabbix(?:/.*)?$ /$1 [R,L]