Forum Linux.général Bogofilter en démon ?

Posté par  .
Étiquettes : aucune
0
30
juil.
2005
Est-ce qu'il n'existerait pas un logiciel du type de bogofilter mais qui tournerait en tâche de fond ?

Je m'explique : j'utilise Sylpheed et Bogofilter et, à la réception de chaque message, sylpheed lance bogofilter (qui charge donc sa base de données), lui donne le message à manger et récupère sa note pour le filtrer.
Le problème, c'est que la base de bogofilter grossit et est modifiée à chaque message : la base n'est pas « cachée » en mémoire et est relue du disque dur et rechargée pour chaque message.
C'est très lourd lorsque l'on reçoit plusieurs messages (100 messages ça prend plus d'une minute, une dizaine de messages ça prend dans les 15-20 secondes).

Je ne souhaite pas monter un système complexe avec un démon spamd, la méthode Bogofilter me convient mieux mais je préférerais qu'il soit plus rapide. J'ai donc pensé que si un bogofilter-serveur était lancé en parallèle à Sylpheed, il conserverait la base en mémoire et il suffirait d'utiliser un bogofilter-client qui n'aurait pas à la recharger à chaque fois.

Est-ce qu'il existe un logiciel de ce type ?
  • # « Modifiée à chaque message » ?

    Posté par  . Évalué à 2.

    Ça me semble très bizarre ça. Quand un nouveau message arrive, comment tu détermines automatiquement si il doit servir à entrainer la base du ham ou celle du spam ? Tu es sûr que tu l'utilises correctement bogofilter ?

    Bon sinon, sur l'idée d'un démon, effectivement ça semblerait utile, mais non je ne connais rien de tel. Sauf éventuellement à utiliser Spamassassin... Je l'utilise pas perso donc je dis peut-être des conneries, mais il me semble que :
    - on peut configurer les types de règles qu'on veut utiliser
    - il sait faire entre autre de la classification bayesienne
    Donc on devrait pouvoir en faire en gros un bogofilter. Mouaif, à voir...
    • [^] # Re: « Modifiée à chaque message » ?

      Posté par  . Évalué à 3.

      Tous les messages passent par bogofilter. Seules les erreurs sont corrigées manuellement (ce qui revient à l'entraîner au début). La méthode est expliquée là :
      http://bogofilter.sourceforge.net/faq_fr.shtml#with-sc(...)
      et elle se trouve aussi dans la doc de sylpheed.

      Je ne voudrais justement pas à avoir à configurer spamassassin. Le principe de l'utilisation de bogofilter et la simplicité de cette utilisation (je n'ai qu'à lui dire quand il se trompe et la mise en place a été faite en deux minutes) me plaisent trop pour que j'aie envie d'utiliser un char d'assaut comme spamassassin (ou alors c'est une idée que je me fais de la complication de spamassassin).

      Il ne me semble pas que spamassassin soit prévu pour l'utilisateur moyen (alors que bogofilter l'est) mais plus dans une optique serveur (ou proxy). J'ai pas trop envie de configurer tout une chaîne de filtrage. En gros, sur le coup, je suis fainéant et c'est bien parce que la mise en place et l'utilisation de bogofilter sont simples que je ne me contente plus de faire le tri moi-même.

      Sinon, j'ai encore la solution de placer la base de bogofilter dans un ramdisque (/dev/shm) : ça évitera les accès disque¹.

      ¹ : sachant qu'en général je récupère la majeur partie de mon courrier juste après avoir allumer mon portable et donc juste pendant qu'il fait son anacron (et donc, entre autres, les find du updatedb de locate).
      • [^] # Re: « Modifiée à chaque message » ?

        Posté par  . Évalué à 2.

        > Tous les messages passent par bogofilter.
        > Seules les erreurs sont corrigées manuellement

        Ah je préfère, donc la base n'est pas modifiée à chaque message comme l'indique ton journal, mais juste consultée en lecture. C'est juste là dessus que je tiquais.

        À part ça :
        - sur spamassassin, je suis plutôt d'accord quant à la lourdeur de la solution, c'est bien pour ça que je ne l'utilise pas non plus. C'était plus une suggestion "faute de mieux"...
        - quant à ton anacron, je te suggère d'essayer fcron à l'occasion en remplacement. Ça combine en gros un cron classique, plus un anacron, plus quelques autres features. Si je dis ça, c'est parce que tu peux y configurer un délais minimum à respecter entre son démarrage et l'exécution des jobs en retard. Ça évite d'avoir un gros rush d'IO direct après le boot, quand tu démarres toi aussi tes applications, et donc dans ton cas quand tu récupères un premier coup tes mails.
        • [^] # Re: « Modifiée à chaque message » ?

          Posté par  . Évalué à 3.

          Si la base est modifiée à chaque message : le test est "bogofilter -u", ce qui signifie que le message est enregistré après avoir été mesuré. La base est donc modifiée à chaque message ham ou spam (pas les unsure).

          En fait, je viens de m'apercevoir que j'aurais dû mieux lire la FAQ de bogofilter : elle diffère de la FAQ de Sylpheed sur ce point. C'est la FAQ de Sylpheed qui indique d'utiliser "-u" et de corriger ensuite (avec "-Ns -B" ou "-Sn -B"). La FAQ de bogofilter ne fait effectivement qu'un test (donc pas d'écriture) et la correction se fait avec "-n -v -B" ou "-s -v -B".

          Je crois que je vais simplement utiliser la méthode de la FAQ de Bogofilter.

          Quant à anacron/fcron, on peut aussi modifier les délais dans anacrontab, c'est juste que je ne fais jamais exactement la même chose et que dois réfléchir à un bon réglage de ce délai. Mais, bon, le updatedb est juste un ralentissement supplémentaire : c'est aussi chiant quand il n'est pas là.

          Merci.
  • # Problème?

    Posté par  . Évalué à 2.

    Le problème, c'est que la base de bogofilter grossit et est modifiée à chaque message : la base n'est pas « cachée » en mémoire et est relue du disque dur et rechargée pour chaque message.

    La base de données n'est pas entièrement relue à chaque message, c'est l'intérêt de la base de données et la BerkeleyDB est très véloce. De plus, dans le cas où Bogofilter est lancé plusieurs fois de suite, le système "cache" lui-même les informations.
    Bogofilter peut procéder plusieurs mails à la fois via l'option "-B"

    C'est très lourd lorsque l'on reçoit plusieurs messages (100 messages ça prend plus d'une minute, une dizaine de messages ça prend dans les 15-20 secondes).
    Tu dois avoir un problème puisque sur mon AMD 2500+, Bogofilter met moins de 700ms à traiter 300 mails d'une totalité de 4Mo.
    • [^] # Re: Problème?

      Posté par  . Évalué à 2.

      le système "cache" lui-même les informations

      Vu la vitesse, ce n'est pas l'impression que j'ai :o(

      Bogofilter peut procéder plusieurs mails à la fois via l'option "-B"

      Oui, mais le principe du filtrage sous Sylpheed est de lancer bogofilter pour chaque message.

      Quant au PC sur lequel cela prend du temps, c'est un P3 1,13 GHz - 384 Mo. Il n'est pas de toute première jeunesse mais il devrait quand même tenir...
      • [^] # Re: Problème?

        Posté par  . Évalué à 2.

        Quant au PC sur lequel cela prend du temps, c'est un P3 1,13 GHz - 384 Mo. Il n'est pas de toute première jeunesse mais il devrait quand même tenir...

        Aboslument, et c'est pour ça que ton problème ne doit pas venir de Bogofilter mais plutôt d'ailleurs.

Suivre le flux des commentaires

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