Forum Linux.général Postfix : Generation de stats à partir des logs.

Posté par . Licence CC By‐SA.
Étiquettes :
1
3
déc.
2013

Bonjour,

Je cherche un script qui pourrait me générer des stats d'utilisation à partir des logs de postfix.
Idéalement il me faudrait le nombre de mails reçus, envoyés, mis en attente (deferred) et rejetés par heure et le nombre de destinataires et d’expéditeurs différents et une sortie de ces données dans un fichier texte ou directement sur la console.
Le but est de pouvoir générer tous les jours un csv qui sera ensuite importé dans un outil de tableaux de bord.

J'ai cherché et je ne trouve rien qui corresponde à mes besoins. Le plus connu est pflogsumm, mais il ne fournit pas les mails envoyés. Les autres outils utilisent des bases de données ou génèrent du HTML.

Quelqu'un connait un script qui ferait ça? Merci.

  • # logwatch

    Posté par (site web personnel, Mastodon) . Évalué à 2.

    Salut,

    est-ce que logwatch peut te convenir ? Il envoie chaque jour un mail récapitulatif de ce qu'il regarde dans les logs (paramétrable). Voici un exemple de ce qu'il me renvoie pour Postfix :

    --------------------- postfix Begin ------------------------ 
     3295248 bytes transferred
     165 messages sent
     161 messages removed from queue
     SASL Authenticated messages from: 3 Host(s), 14 Time(s)
     TLS Connections from: 12 Host(s), 32 Time(s)
     Relaying denied: 9 Time(s)
     Messages rejected using Anti-Spam site 1 Time(s)
     sbl.spamhaus.org; identified 1 spam messages.
     Connections lost:
     Connection lost while CONNECT : 2 Time(s)
     Connection lost while RCPT : 7 Time(s)
     **Unmatched Entries**
     00C61F008A: sender delivery status notification: B83AAF008B
     ---------------------- postfix End -------------------------
    
    • [^] # Re: logwatch

      Posté par . Évalué à 2.

      Oui il pourrait convenir, je vais tester. Merci.

      Pour la sortie, ce n'est pas un problème je devrais arriver à mettre en forme avec awk.

  • # logwatch

    Posté par (site web personnel) . Évalué à 4.

    logwatch s'approche de ce que tu recherches.

    On peut régler l'intervalle de stat ( --range ), lui dire de ne s'occuper que d'un service particulier (-- service postfix)

    Par contre il pêche par sa sortie, parfaite pour nous humain, mais difficile à post-traiter par un script.

    Sinon une petite moulinette en awk ?

    Mes 2 ¢

    • [^] # Re: logwatch

      Posté par (site web personnel) . Évalué à 1.

      Oups duplicate found !

      J'ai posté sans rafraîchir ...

      • [^] # Re: logwatch

        Posté par . Évalué à 3.

        c'est pas un duplicate, ca complete la reponse precedente. ;)

  • # pflogsumm

    Posté par . Évalué à -1.

    Bonjour,

    pflogsumm est disponible dans le package postfix-perl-scripts sous centos par exemple.

    Have fun...

    • [^] # Re: pflogsumm

      Posté par (site web personnel, Mastodon) . Évalué à 2.

      Justement, il indique que ça ne lui convient pas :

      Le plus connu est pflogsumm, mais il ne fournit pas les mails envoyés.

      • [^] # Re: pflogsumm

        Posté par . Évalué à 1.

        Bonjour,

        j'avais pas lu, mais je viens de le lancer sur un des mes serveur et:

        Senders by message count
        ------------------------
         33 root@
         7 bz@
         5 notification+zrdorhfehfg1@facebookmail.com
         5 noreply@
         3 info@
         3 admin@
        
      • [^] # Re: pflogsumm

        Posté par . Évalué à 2.

        Et pour être encore plus complet:

        Per-Hour Traffic Summary
         time received delivered deferred bounced rejected
         --------------------------------------------------------------------
         0000-0100 5 5 1 2 6 
         0100-0200 5 5 2 2 51 
         0200-0300 6 6 1 2 5 
         0300-0400 3 3 2 2 2 
         0400-0500 6 5 2 2 0 
         0500-0600 3 3 2 2 2 
         0600-0700 7 7 2 2 4 
         0700-0800 6 6 1 2 1 
         0800-0900 19 22 3 3 7 
         0900-1000 11 11 2 3 31 
         1000-1100 21 22 2 2 20 
         1100-1200 16 15 2 3 10 
         1200-1300 10 10 2 2 9 
         1300-1400 10 10 2 2 4 
         1400-1500 10 11 1 2 23 
         1500-1600 6 6 1 2 13 
         1600-1700 0 0 2 0 0 
         1700-1800 0 0 0 0 0 
         1800-1900 0 0 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 
        Grand Totals
        ------------
        messages
         144 received
         147 delivered
         0 forwarded
         3 deferred (30 deferrals)
         35 bounced
         188 rejected (56%)
         0 reject warnings
         0 held
         0 discarded (0%)
         28465k bytes received
         20524k bytes delivered
         81 senders
         75 sending hosts/domains
         33 recipients
         21 recipient hosts/domains
        

        Donc en gros le monsieur veut quelque chose qui existe déjà mais pas exactement... Va falloir scripter...

        • [^] # Re: pflogsumm

          Posté par . Évalué à 1.

          Ça n'existe justement pas, et j'ai vérifié.
          Dans cet exemple tu n'a pas le nombre de mails envoyés, ni la taille totale des mails envoyés.

          Pour ton example au dessus, c'est les plus gros expéditeurs de mails, que ce soit pour des mails reçus ou envoyés. Je ne veux pas savoir qui en a envoyé le plus, mais combien au total ont été envoyés.
          Et j'ai environ 8000 expéditeurs d’après justement pflogsumm sur mon serveur, donc le top ne représente qu'une petite partie des mails envoyés.

          • [^] # Re: pflogsumm

            Posté par . Évalué à 1.

            pourtant dans son deuxieme exemple je lis

            147 delivered
            [...]
            20524kbytes delivered
            81 senders

            81 emetteurs pour 147 emails et 20MB

            • [^] # Re: pflogsumm

              Posté par . Évalué à 2.

              Il y a bien 81 expéditeurs différents, mais delivered correspond aux mails transmis aux boites et non pas aux mails envoyés/sortant.

              Pour son exemple, Postfix a reçu 144 mails et en a transmis 147 aux boites mails, car un mail peut être envoyé à plusieurs destinataires.

              • [^] # Re: pflogsumm

                Posté par . Évalué à 1.

                je dis surement une betise mais :
                - les delivlered sont les emails SORTANTs
                - les received sont les emails ENTRANTs

                donc il n'y a pas de correllation entre les deux.
                oui un email peut avoir plusieurs destinataires internes ou externes, ou les deux.

                cela n'empeche que cela fait des envois individuels vers l'exterieur, 2 destinataires = 2 envoies
                et une reception multi destinataire fera probablement de meme sur les received.

                • [^] # Re: pflogsumm

                  Posté par . Évalué à 2.

                  Justement, les mails "delivered" ne sont pas les mails sortants, ce sont les mails qui ont été délivrés. C'est à dire les mails qui sont déposés dans une boite d'un utilisateur ou envoyés à un autre serveur SMTP.
                  Il y a corrélation entre les 2, car un mail reçu apparaitra dans delivered, car il aura été déposé(délivré) à un utilisateur interne et si 1 mail est envoyé à 2 destinataires internes, il apparait 1 fois dans received et 2 fois dans delivered.
                  Pour plus d'infos sur received/delivered http://www.postfix.org/OVERVIEW.html.

                  L'info que je recherche c'est le nombre de mails envoyés à l’extérieur.

                • [^] # Re: pflogsumm

                  Posté par . Évalué à 2. Dernière modification le 05 décembre 2013 à 11:34.

                  En complément voici les résultats de pflogsumm et de logwatch pour un serveur de test :

                  PFlogsumm :

                  6 received
                  6 delivered
                  0 forwarded
                  0 deferred
                  0 bounced
                  0 rejected (0%)
                  0 reject warnings
                  0 held
                  0 discarded (0%)
                  3183 bytes received
                  3183 bytes delivered
                  2 senders
                  1 sending hosts/domains
                  2 recipients
                  2 recipient hosts/domains
                  

                  Logwatch (mon serveur est example.com):

                   3.108K Bytes accepted 3,183
                   613 Bytes sent via SMTP 613
                   2.510K Bytes delivered 2,570
                   ======== ==================================================
                   6 Accepted 100.00%
                   -------- --------------------------------------------------
                   6 Total 100.00%
                   ======== ==================================================
                   6 Removed from queue
                   5 Delivered
                   1 Sent via SMTP
                   ***** Detail (2) *****
                   5 Delivered -------------------------------------------------------------------------------
                   5 example.com
                   5 user
                   1 Sent via SMTP ---------------------------------------------------------------------------
                   1 example.org
                   1 userext
                  

                  PFlogsumm ne fait pas la difference entre mail deliveré en local et mails envoyés à l'exterieur, alors que logwatch si.

    • [^] # Re: pflogsumm

      Posté par (site web personnel) . Évalué à 1.

      Paquet pflogsumm pour Debian

      Et au passage les données LinuxFr.org pour ce début décembre :

       2046 received
       2659 delivered
       18 forwarded
       80 deferred (1086 deferrals)
       77 bounced
       17637 rejected (86%)
      

      Moche ce taux de spam.

  • # Mailgraph

    Posté par . Évalué à 1.

    En CGI qui te fait de jolis graphs RRD avec tes données :
    https://github.com/schweikert/mailgraph/blob/master/mailgraph.cgi

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.