- Supports auto discovery of providers (SMSC)
- Easy configuration
- Low load on Zabbix server: most elements sending info by zabbix_sender
- Bash: no need to install Perl, PHP, Go or other languages.
We capture useful data from host and kannel status page:
-
Kannel main statistic:
- Status - the current status of Kannel
- Number of running smsboxes - the number of running smsbox processes
- Number of running bearerboxes - the number of running bearerbox processes
- SMS sent - the number of sent SMS per minute
- SMS received - the number of received SMS per minute
- DLR sent - the number of sent delivery reports per minute
- DLR received - the number of received delivery reports per minute
- Status page web check - the answer code, load speed, response time and errors of Kannel status page
-
For each SMSC provider:
- Uptime - the uptime of current provider
- Status - the status of current provider
- SMS sent - the number of sent SMS per minute of current provider
- SMS received - the number of received SMS per minute of current provider
- DLR sent - the number of sent delivery reports per minute of current provider
- DLR received - the number of received delivery reports per minute of current provider
- Failed - the number of failed messages per minute of current provider
- Queued - the number of queued messages per minute of current provider
History storage period is 7 days, trend storage period is 30 days. Data is captured every minute. These timings can be adjusted in template or per host if needed.
- Bearerbox is not running
- SMSbox is not running
- Kannel is not running
- Bad response code for kannel status page
- Long response from kannel status page
- Kannel: {#SMSC} is not in online state (for each SMSC provider)
Displays the following data:
- SMS sent (overall or for provider) per minute
- SMS received (overall or for provider) per minute
- DLR sent (overall or for provider) per minute
- DLR received (overall or for provider) per minute
Perform the following operations on all servers with Zabbix Agent and Kannel from which you want to capture the data.
apt-get update
apt-get install libxml2-utils
wget https://github.com/kreicer/zabbix-kannel-monitoring/archive/master.zip /tmp/zabbix-kannel-monitoring.zip
unzip /tmp/zabbix-kannel-monitoring.zip
cp /tmp/zabbix-kannel-monitoring/kannel-monitoring.conf /etc/zabbix/zabbix_agentd.conf/
cp /tmp/zabbix-kannel-monitoring/kannel-monitoring.sh /etc/zabbix/scripts/
chmod +x /etc/zabbix/scripts/kannel-monitoring.sh
systemctl restart zabbix-agent.service
If you using non-standart zabbix-agent.conf path change it in kannel-monitoring.sh
zabbixconf="/etc/zabbix/zabbix_agentd.conf"
If you using password for status.xml change it in kannel-monitoring.sh
before
curl "$xmlstatus" -o $xmlpath --silent
after
curl "$xmlstatus?password=your_password_here" -o $xmlpath --silent
Delete temporary files:
rm /tmp/zabbix-kannel-monitoring.zip
rm -r /tmp/zabbix-kannel-monitoring/
In Zabbix frontend go to "Configuration"->"Templates"->"Import"
:
Upload file /kannel_template.xml
from the archive.
Add template "Kannel Template" to the hosts.
Add your status page (xml) address in the macros section of the host by adding value:
{$KANNEL_URL}=your status page address .xml
Setup is finished, just wait 15 minutes till Zabbix discovers your providers and captures the data (or use manual check).
Tested with:
- Zabbix 4.x
- Kannel 1.4.x
Should work:
- Zabbix 3.x
Not tested with:
- Kannel 1.3.x and earlier
- Zabbix 2.x
If it works, please let me know.