Logger un fichier sur un serveur distant
Le but de la manip est de récupérer les logs zimbra/carbonio sur un serveur syslog-ng UDP distant, le tout sans modifier la conf de zimbra, pour éviter les problèmes en cas de MAJ majeur de carbonio. Du coup le tuto est valable pour n’importe quel fichier log, à adapter suivant vos besoins.
Préqueris
Autoriser rsyslog local à accéder au fichier log, par défaut si vous utilisez appamor,notamment pour la version carbonio ubuntu, l’accès au fichier log sera bloqué.
bash
# Voir le profil AppArmor actuel de rsyslog
cat /etc/apparmor.d/usr.sbin.rsyslogd
Créer un fichier d’extension local :
# Éditer le profil local (ne pas modifier le profil principal)
vi /etc/apparmor.d/local/usr.sbin.rsyslogd
Ajouter :
# Accès aux logs Zextras/Carbonio
/opt/zextras/log/ r,
/opt/zextras/log/** r,
Recharger AppArmor :
apparmor_parser -r /etc/apparmor.d/usr.sbin.rsyslogd
systemctl restart rsyslog
Configurer votre rsyslog
Créé un fichier /etc/rsyslog.d/60-remote.conf
vi /etc/rsyslog.d/60-remote.conf
Utiliser le module imfile pour lire les fichiers de log Zimbra
module(load="imfile")
input(type="imfile"
File="/opt/zextras/log/mailbox.log"
Tag="carbonio"
Facility="local6"
Severity="info")
local6.\* action(type="omfwd" target="[monsyslog.domain.fr]" port="514" protocol="udp")
On rédémarre le service rsyslog
systemctl restart rsyslog