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%3Faction%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 :
[pastacode lang= »apacheconf » manual= »RewriteEngine%20on%0ARewriteRule%20%5E%2Fzabbix%20%2F%20%5BR%2CL%5D » message= » » highlight= » » provider= »manual »/]
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 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é) :
[pastacode lang= »apacheconf » manual= »RewriteEngine%20on%0ARewriteRule%20%5E%2Fzabbix(%3F%3A%2F.*)%3F%24%20%2F%241%20%5BR%2CL%5D » message= » » highlight= » » provider= »manual »/]