Ajustement pour le démarrage ClamAV / Amavis
J'utilise ClamAV, joint avec Amavis-new pour protéger mes boîtes aux lettres des virus et des pourriels.
Ces logiciels sont installés via EPEL, qui fournis mises à jour et intégration facile.
Je constatais que mes serveurs se mettaient à utiliser du swap suite au démarrage. Cette utilisation était causée par l'instantiation de différents processus clamscan, chacun utilisant une grande quantité de mémoire vive, puisque l'analyse faite par Amavisd se faisait avant que le service centralisé clamd soit démarré.
La solution me semblait alors simple, m'assurer que postfix démarre après amavisd, et que amavisd démarre après clamd@amavis.
Voici donc les modifications faites pour contrôler ce démarrage :
Modification de l'override pour postfix :
sudo systemctl edit postfix
Comme j'utilise des données inscrites dans MySQL pour spécifier des alias, des domaines virtuels et autres informations, ce service doit être démarré avant Postfix. Entrez ces informations dans l'override.
[Unit]
Requires=mysqld.service amavisd.service amavisd-milter.service
After=mysqld.service amavisd.service amavisd-milter.service syslog.target network.target
Modification de l'override pour amavisd :
sudo systemctl edit amavisd
J'utilise le stockage MySQL pour les base de données bayes. Amavis-new doit dont démarrer suite au démarrage de MySQL. Il faut aussi s'assurer de le faire attendre la création du socket du service de ClamAV. La liste ExecStartPre est donc une boucle qui attend la création de ce socket.
[Unit]
Requires=mysqld.service clamd@amavisd.service
After=network.target mysqld.service clamd@amavisd.service
[Service]
ExecStartPre=bash -c "while [ ! -f /run/clamd.amavisd/clamd.sock ]; do sleep 1; done"
Avec ces paramètres, il m'est possible de bien contrôler le démarrage de mes serveurs de courrier et d'éviter la création de swap et la surcharge de la mémoire allouée.
Écrit le: 11/08/2021 @ 12:42
Effet intéressant constaté :
Lors de la mise à jour de MySQL, le service Postfix s'est arrêté, pour respecter le besoin de celui-ci, puis a été redémarré automatiquement.
C'est génial