1. Import template from: https://raw.githubusercontent.com/incognico/scripts/master/zabbix/postfix/smtp_and_postfix_passive_checks_zabbix_template.xml or http://pastebin.com/akwa89gG
2. Enable Remote Commands in Agent Config
3. In /etc/zabbix/zabbix_agentd.d/userparameter_postfix.conf :
5. crontab -e : */5 * * * * root PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin && $(which logtail) /var/log/maillog > /tmp/logtailoffset && $(which pflogsumm) /tmp/logtailoffset -h 0 -u 0 --bounce_detail=0 --deferral_detail=0 --reject_detail=0 --no_no_msg_size --smtpd_warning_detail=0 > /tmp/pflogsummoffset && chown zabbix:zabbix /tmp/pflogsummoffset
6. Add /usr/local/bin/postfix-zabbix-stats.bash and chmod+x it.
UserParameter=postfix.pfmailq,mailq | grep -c '^[0-9A-Z]'4. Install logtail and pflogsumm
UserParameter=postfix[*],/usr/local/bin/postfix-zabbix-stats.bash $1
5. crontab -e : */5 * * * * root PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin && $(which logtail) /var/log/maillog > /tmp/logtailoffset && $(which pflogsumm) /tmp/logtailoffset -h 0 -u 0 --bounce_detail=0 --deferral_detail=0 --reject_detail=0 --no_no_msg_size --smtpd_warning_detail=0 > /tmp/pflogsummoffset && chown zabbix:zabbix /tmp/pflogsummoffset
6. Add /usr/local/bin/postfix-zabbix-stats.bash and chmod+x it.
#!/bin/bash
pfkey=$(echo "$1" | tr '_' ' ')
if [ "$pfkey" = "bytes received" ]; then
number=$(cat /tmp/pflogsummoffset | grep -e 'bytes received' | cut -c1-7 | xargs)
echo "$(($number *1024))"
elif [ "$pfkey" = "bytes delivered" ]; then
number=$(cat /tmp/pflogsummoffset | grep -e 'bytes delivered' | cut -c1-7 | xargs)
echo "$(($number *1024))"
else
cat /tmp/pflogsummoffset | grep -E $pfkey | cut -c1-7 | head -1 | xargs
fi