Zabbix should theoretically be able out of the box to send alerts via XMPP.
For some reason this functionality does not work as intended, luckily it is possible to specify a custom script to send alerts; combining the aforementioned script with the Perl library sendxmpp is the easiest way to enable Zabbix from sending notifications via XMPP.

$ yum install sendxmpp

Create a bash script, this will be invoked by Zabbix to send notifications:

$ vi /usr/lib/zabbix/alertscripts/sendxmpp.sh
---
#!/bin/sh

echo “$3” | /usr/bin/sendxmpp -u <sender_user> -j <sender_domain> -p <sender_user_password> -s “$2” -i "$1" -t
---

Change file ownership and permissions accordingly

$ chown zabbix:zabbix /usr/lib/zabbix/alertscripts/sendxmpp.sh
$ chmod 755 /usr/lib/zabbix/alertscripts/sendxmpp.sh

Three more steps are needed, those can be performed directly inside Zabbix’s web GUI:

  • Navigate Adminstration -> Media Types, create a new one with Type set to script, Script set to sendxmpp.sh and three parameters: {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE}.
    https://uwot.eu/2017/10/media_type.png Those three parameter will be used as CLI arguments for the BASH script.

  • While still being in Adminstration -> Media Types page, select tab Message templates and add a few templates for the events you wanna be notified about.
    https://uwot.eu/2017/10/media_type_2.png

  • Navigate Configuration -> Actions, click on Report problems to Zabbix administrators and make sure it is enabled.
    https://uwot.eu/2017/10/action.png

  • Navigate Configuration -> Users, click on a username, navigate to the Media tab, add a new one and specify the receiver XMPP address.
    https://uwot.eu/2017/10/user.png

You should now receive XMPP notifications.

Updated on 29 January 2021 - Zabbix 5 LTS