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

Posté par . Licence CC by-sa
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 (page perso) . É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 (page perso) . É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 (page perso) . É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 (page perso) . É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/12/13 à 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 (page perso) . É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 à ceux qui les ont postés. Nous n'en sommes pas responsables.