Dengage Push Senders
We have prepared a zabbix template Template App Dengage Sender Checker to monitor error counts and delays of push sends. With this template, you can be aware of un-processed push reports and delays.
To monitor push senders please import the template and create shell scripts on sender servers.
pushsender-zabbix-template.xml
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>5.0</version>
<date>2021-09-08T18:49:35Z</date>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<templates>
<template>
<template>Template App Dengage Sender Checker</template>
<name>Dengage Sender Checker</name>
<description>Dengage Template for monitoring Sender Instances</description>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<applications>
<application>
<name>DengageSender</name>
</application>
</applications>
<items>
<item>
<name>Dengage Sender Checks - AppInbox Processing</name>
<key>dengage.sender.checker[/dengage/workdir/bulkcustomizer/appinbox,processing,{$SENDER_LOG_THRESHOLD_MIN}]</key>
<delay>5m</delay>
<history>7d</history>
<trends>30d</trends>
<applications>
<application>
<name>DengageSender</name>
</application>
</applications>
<triggers>
<trigger>
<expression>{last(#1)}>0</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>{last(#1)}=0</recovery_expression>
<name>Dengage Sender Checks - AppInbox Processing</name>
<opdata>File Count: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
</trigger>
</triggers>
</item>
<item>
<name>Dengage Sender Checks - AppInbox DB Error</name>
<key>dengage.sender.checker[/dengage/workdir/bulkcustomizer/appinbox/dbError,all,0]</key>
<delay>5m</delay>
<history>7d</history>
<trends>30d</trends>
<applications>
<application>
<name>DengageSender</name>
</application>
</applications>
<triggers>
<trigger>
<expression>{last(#1)}>0</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>{last(#1)}=0</recovery_expression>
<name>Dengage Sender Checks - AppInbox DB Error</name>
<opdata>File Count: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
</trigger>
</triggers>
</item>
<item>
<name>Dengage Sender Checks - AppInbox Error</name>
<key>dengage.sender.checker[/dengage/workdir/bulkcustomizer/appinbox/error,all,0]</key>
<delay>5m</delay>
<history>7d</history>
<trends>30d</trends>
<applications>
<application>
<name>DengageSender</name>
</application>
</applications>
<triggers>
<trigger>
<expression>{last(#1)}>0</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>{last(#1)}=0</recovery_expression>
<name>Dengage Sender Checks - AppInbox Error</name>
<opdata>File Count: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
</trigger>
</triggers>
</item>
<item>
<name>Dengage Sender Checks - InApp Processing</name>
<key>dengage.sender.checker[/dengage/workdir/bulkcustomizer/inapp,processing,{$SENDER_LOG_THRESHOLD_MIN}]</key>
<delay>5m</delay>
<history>7d</history>
<trends>30d</trends>
<applications>
<application>
<name>DengageSender</name>
</application>
</applications>
<triggers>
<trigger>
<expression>{last(#1)}>0</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>{last(#1)}=0</recovery_expression>
<name>Dengage Sender Checks - InApp Processing</name>
<opdata>File Count: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
</trigger>
</triggers>
</item>
<item>
<name>Dengage Sender Checks - InApp DB Error</name>
<key>dengage.sender.checker[/dengage/workdir/bulkcustomizer/inapp/dbError,all,0]</key>
<delay>5m</delay>
<history>7d</history>
<trends>30d</trends>
<applications>
<application>
<name>DengageSender</name>
</application>
</applications>
<triggers>
<trigger>
<expression>{last(#1)}>0</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>{last(#1)}=0</recovery_expression>
<name>Dengage Sender Checks - InApp DB Error</name>
<opdata>File Count: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
</trigger>
</triggers>
</item>
<item>
<name>Dengage Sender Checks - InApp Error</name>
<key>dengage.sender.checker[/dengage/workdir/bulkcustomizer/inapp/error,all,0]</key>
<delay>5m</delay>
<history>7d</history>
<trends>30d</trends>
<applications>
<application>
<name>DengageSender</name>
</application>
</applications>
<triggers>
<trigger>
<expression>{last(#1)}>0</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>{last(#1)}=0</recovery_expression>
<name>Dengage Sender Checks - InApp Error</name>
<opdata>File Count: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
</trigger>
</triggers>
</item>
<item>
<name>Dengage Sender Checks - OnSite Processing</name>
<key>dengage.sender.checker[/dengage/workdir/bulkcustomizer/onsite,processing,{$SENDER_LOG_THRESHOLD_MIN}]</key>
<delay>5m</delay>
<history>7d</history>
<trends>30d</trends>
<applications>
<application>
<name>DengageSender</name>
</application>
</applications>
<triggers>
<trigger>
<expression>{last(#1)}>0</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>{last(#1)}=0</recovery_expression>
<name>Dengage Sender Checks - OnSite Processing</name>
<opdata>File Count: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
</trigger>
</triggers>
</item>
<item>
<name>Dengage Sender Checks - OnSite DB Error</name>
<key>dengage.sender.checker[/dengage/workdir/bulkcustomizer/onsite/dbError,all,0]</key>
<delay>5m</delay>
<history>7d</history>
<trends>30d</trends>
<applications>
<application>
<name>DengageSender</name>
</application>
</applications>
<triggers>
<trigger>
<expression>{last(#1)}>0</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>{last(#1)}=0</recovery_expression>
<name>Dengage Sender Checks - OnSite DB Error</name>
<opdata>File Count: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
</trigger>
</triggers>
</item>
<item>
<name>Dengage Sender Checks - OnSite Error</name>
<key>dengage.sender.checker[/dengage/workdir/bulkcustomizer/onsite/error,all,0]</key>
<delay>5m</delay>
<history>7d</history>
<trends>30d</trends>
<applications>
<application>
<name>DengageSender</name>
</application>
</applications>
<triggers>
<trigger>
<expression>{last(#1)}>0</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>{last(#1)}=0</recovery_expression>
<name>Dengage Sender Checks - OnSite Error</name>
<opdata>File Count: {ITEM.LASTVALUE1}</opdata>
<priority>HIGH</priority>
</trigger>
</triggers>
</item>
</items>
</template>
</templates>
</zabbix_export>
/usr/local/bin/senderchecker.sh
(don't forget to make it executable with chmod +x)
#!/bin/bash
cpath=$1
cname=$2
ctime=$3
if [[ $cname == '' || $cname == 'all' ]]; then
cname="*"
fi
if [[ $ctime == '' || $ctime == '0' ]]; then
ctime="*"
fi
if [[ $cpath != '' ]]; then
if [[ -d "$cpath" ]]; then
if [[ $ctime == '*' ]]; then
#echo "all times"
find "$cpath" -type f -name "$cname"* -ls|wc -l
else
#echo "specific $ctime"
find $cpath -type f -name "$cname"* -mmin +$ctime -ls|wc -l
fi
else
echo 0
fi
else
echo "Please provide a path to check"
fi
Macro Examples:
{$SENDERLOG_THRESHOLD_MIN} --> 60 (in seconds)_