Ich habe hier mit einem Zabbix Script Probleme aufgrund des logging bei Debian12, alles andere konnte ich anpassen (fail2ban etc.) nur hier bei dioesem Script stehe ich auf dem Schlauch ...
Es greift via Zabbix Agent auf Mailstatistiken zu, Pflogsumm Abfrage via joutrnalctl habe ich hinbekommen:
Code: Alles auswählen
journalctl --no-pager --since=yesterday -u postfix@-.service | pflogsumm -d yesterday
MAILLOG=/var/log/mail.log
Code: Alles auswählen
#!/usr/bin/env bash
MAILLOG=/var/log/mail.log
PFOFFSETFILE=/etc/zabbix/scripts/zabbix-postfix-offset.dat
PFSTATSFILE=/etc/zabbix/scripts/postfix_statsfile.dat
TEMPFILE=$(mktemp)
PFLOGSUMM=/usr/sbin/pflogsumm
LOGTAIL=/usr/sbin/logtail
PFVALS=( 'received' 'delivered' 'forwarded' 'deferred' 'bounced' 'rejected' 'discarded' 'reject_warnings' 'bytes_received' 'bytes_delivered' )
[ ! -e "${PFSTATSFILE}" ] && touch "${PFSTATSFILE}" && chown zabbix:zabbix "${PFSTATSFILE}"
printvalues() {
key=$1
pfkey=$(echo "$1" | tr '_' ' ')
value=$(grep -m 1 "${pfkey}" $TEMPFILE | awk '{print $1}' | awk '/k|m/{p = /k/?1:2}{printf "%d\n", int($1) * 1024 ^ p}')
old_value=$(grep -e "^${key};" "${PFSTATSFILE}" | cut -d ";" -f2)
if [ -n "${old_value}" ]; then
sed -i -e "s/^${key};${old_value}/${key};$((${old_value}+${value}))/" "${PFSTATSFILE}"
else
echo "${key};${value}" >> "${PFSTATSFILE}"
fi
}
if [ -n "$1" ]; then
key=$(echo ${PFVALS[@]} | grep -wo $1)
if [ -n "${key}" ]; then
value=$(grep -e "^${key};" "${PFSTATSFILE}" | cut -d ";" -f2)
echo "${value}"
else
rm "${TEMPFILE}"
exit 2
fi
else
"${LOGTAIL}" -f"${MAILLOG}" -o"${PFOFFSETFILE}" | "${PFLOGSUMM}" -h 0 -u 0 --bounce_detail=0 --deferral_detail=0 --reject_detail=0 --no_no_msg_size --smtpd_warning_detail=0 > "${TEMPFILE}"
for i in "${PFVALS[@]}"; do
printvalues "$i"
done
fi
rm "${TEMPFILE}"
/etc/zabbix/zabbix_agentd.d/userparameter_postfix.conf
Code: Alles auswählen
UserParameter=postfix.pfmailq,mailq | grep -v "Mail queue is empty" | grep -c '^[0-9A-Z]'
UserParameter=postfix[*],/etc/zabbix/scripts/postfix-zabbix-stats.bash $1
Das LOGTAIL=/usr/sbin/logtail kommt noch erschwerend hinzu
### edit ###
ich habs mal damit versucht, haut aber nicht wirklich hin
Code: Alles auswählen
MAILLOG=$(journalctl -u postfix@-.service)
Code: Alles auswählen
"${MAILLOG}" -o"${PFOFFSETFILE}" | "${PFLOGSUMM}" -h 0 -u 0 --bounce_detail=0 --deferral_detail=0 --reject_detail=0 --no_no_msg_size --smtpd_warning_detail=0 > "${TEMPFILE}"