[gelöst] Zabbix mit Debian12 - journalctl anstatt mail.log richtig einsetzen?

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
fulltilt
Beiträge: 1157
Registriert: 03.12.2006 20:10:57

[gelöst] Zabbix mit Debian12 - journalctl anstatt mail.log richtig einsetzen?

Beitrag von fulltilt » 28.11.2023 16:22:59

Debain12

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
Wie könnte die Abfrage nun mit folgenden Zabbix Script via journalctl umgesetzt werden?
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
P.S.
Das LOGTAIL=/usr/sbin/logtail kommt noch erschwerend hinzu :mrgreen:

### edit ###
ich habs mal damit versucht, haut aber nicht wirklich hin

Code: Alles auswählen

MAILLOG=$(journalctl -u postfix@-.service)
und unten das LOGTAIL rausgenommen

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}"
Zuletzt geändert von fulltilt am 29.11.2023 13:33:19, insgesamt 1-mal geändert.
Debian: Testing
Desktop: KDE Plasma 5

Benutzeravatar
fulltilt
Beiträge: 1157
Registriert: 03.12.2006 20:10:57

Re: Zabbix mit Debian12 - journalctl anstatt mail.log richtig einsetzen?

Beitrag von fulltilt » 28.11.2023 17:41:26

### edit ###
diese Abfrage könnte klappen mit --since '5 min ago ... logatail kann ja dann auch raus .... was meint ihr?

Code: Alles auswählen

journalctl --no-pager --since '5 min ago' -u postfix@-.service | pflogsumm -h 0 -u 0 --bounce_detail=0 --deferral_detail=0 --reject_detail=0 --no_no_msg_size --smtpd_warning_detail=0
output:

Code: Alles auswählen

Grand Totals
------------
messages

      4   received
      4   delivered
      0   forwarded
      0   deferred
      0   bounced
      0   rejected (0%)
      0   reject warnings
      0   held
      0   discarded (0%)

    926k  bytes received
    926k  bytes delivered
      4   senders
      4   sending hosts/domains
      4   recipients
      4   recipient hosts/domains


Per-Hour Traffic Summary
------------------------
    time          received  delivered   deferred    bounced     rejected
    --------------------------------------------------------------------
    0000-0100           0          0          0          0          0 
    0100-0200           0          0          0          0          0 
    0200-0300           0          0          0          0          0 
    0300-0400           0          0          0          0          0 
    0400-0500           0          0          0          0          0 
    0500-0600           0          0          0          0          0 
    0600-0700           0          0          0          0          0 
    0700-0800           0          0          0          0          0 
    0800-0900           0          0          0          0          0 
    0900-1000           0          0          0          0          0 
    1000-1100           0          0          0          0          0 
    1100-1200           0          0          0          0          0 
    1200-1300           0          0          0          0          0 
    1300-1400           0          0          0          0          0 
    1400-1500           0          0          0          0          0 
    1500-1600           0          0          0          0          0 
    1600-1700           0          0          0          0          0 
    1700-1800           0          0          0          0          0 
    1800-1900           4          4          0          0          0 
    1900-2000           0          0          0          0          0 
    2000-2100           0          0          0          0          0 
    2100-2200           0          0          0          0          0 
    2200-2300           0          0          0          0          0 
    2300-2400           0          0          0          0          0 

smtp delivery failures: none

Fatal Errors: none

Panics: none

Master daemon messages: none
Debian: Testing
Desktop: KDE Plasma 5

Benutzeravatar
fulltilt
Beiträge: 1157
Registriert: 03.12.2006 20:10:57

Re: Zabbix mit Debian12 - journalctl anstatt mail.log richtig einsetzen?

Beitrag von fulltilt » 29.11.2023 13:32:51

scheint mit der Änderung zu funktionieren :mrgreen:

Code: Alles auswählen

journalctl --no-pager --since '5 min ago' -u postfix@-.service | "${PFLOGSUMM}" -h 0 -u 0 --bounce_detail=0 --deferral_detail=0 --reject_detail=0 --no_no_msg_size --smtpd_warning_detail=0 > "${TEMPFILE}"

Code: Alles auswählen

# cat /etc/zabbix/scripts/postfix_statsfile.dat
received;8
delivered;8
forwarded;0
deferred;0
bounced;0
rejected;0
discarded;0
reject_warnings;0
bytes_received;19399
bytes_delivered;19399
Debian: Testing
Desktop: KDE Plasma 5

Antworten