Logs-Sync
Logs-Sync est un systeme permettant de synchroniser des fichiers de logs ne pouvant pas etre geré par syslog vers une machine centrale. Il est utilisé a Claranet pour envoyer les logs des serveurs web vers ((Machines/vaucluse|vaucluse)). (Script Clara)
Fonctionnement
Logs-Sync fonctionne un peu comme ((Scripts/Configs-Backups)). Chaque jour, sur les machines clientes, le script /usr/local/Claranet/Logs-Sync/logs-sync.pl(lancé en root, depuis la crontab), effectue une connexion rsync+ssh vers vaucluse afin d'envoyer les fichiers de logs de la machine.
La configuration se trouve dans le fichier /usr/local/Claranet/Logs-Sync/logs-sync.conf Le user distant sur vaucluse est claralogs. Chaque machine cliente possède une clé ssh spécifique (dans /usr/local/Claranet/Logs-Sync/logs-sync.key*) Sur vaucluse le fichier ~claralogs/.ssh/authorized_keys contient la liste des clés publiques des machines, ce qui leur permet de se connecter. De plus la seule commande executable à l'aide des clés en question est le démarrage d'un serveur rsync.
Sur vaucluse, les fichiers de config sont copiés dans ~claralogs/Hosts/nom_machine/Logs Les logs des transferts rsync sont disponibles dans les fichiers ~claralogs/Hosts/nom_machine/rsync.log Un fichier ~claralogs/Schedule contient la liste des horaires auxquels sont executés les logs-sync.pl sur les machines clientes, cela permet d'etaler les copies pour ne pas surcharger vaucluse.
Installation
Sur la machine cliente
Le script necessite
- package perl File-Temp (/usr/ports/devel/p5-File-Temp)
- rsync > 2.5.4 (option --no-implied-dirs)
- perl ./setup-logs-sync.pl <nom_machine>
( par exemple sur bretagne : perl ./setup-logs-sync.pl bretagne )
- Copier la ligne contenant la clé publique telle qu'indiquée par le script setup-logs-sync.pl
- Le fichier de conf est /usr/local/Claranet/Logs-Sync/logs-sync.conf
Sur le serveur (vaucluse))
- su root
- cd ~claralogs
- ./Setup-Logs-Host.sh bretagne 212.43.194.18
Le script ouvre un vim ~claralogs/.ssh/authorized_keys, et on doit remplacer la derniere ligne du fichier par la ligne copiée sur la machine client. L'adresse IP indiquée doit etre l'ip principale de la machine client - les rsync seront restreints à cette ip sur Vaucluse, par mesure de sécurité.
Ensuite lancer une 1ere fois le script de copie sur la machine cliente :
/usr/local/Claranet/Logs-Sync/logs-sync.pl
(nécessaire car la 1ere execution demande de confirmer la hostkey de Vaucluse, ce qui nécessite une interactivité)
Ensuite, toujours sur la machine client, on peut modifier la crontab pour activer la copie automatique. Une ligne en commentaire à été rajoutée par le script setup-logs-sync.pl, à la fin du fichier crontab. Remplacer <MINUTE> par la minute choisie, en fonction du fichier Schedule sur Vaucluse (ne pas oublier de mettre ce fichier à jour d'ailleurs...), et décommenter la ligne.