diff --git a/README.md b/README.md index fac62d7..c2d36fa 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,32 @@ HostChecker =========== -A faire: Faire moins de log (paramétrable ?) et diriger les logs vers syslog si possible +HostChecker est un outil très simpliste, qui teste la disponibilité de services distants (tcp, http, smtp) pour établir la disponibilité d'un serveur (host). + +En fonction du résultat du test, il ajoute ou supprime le serveur (désigné par son IP) d'une table PF. + +L'outil est écrit spécifiquement pour répondre à un besoin précis. +Sur des pare-feux réseau FreeBSD ou OpenBSD, PF (packet filter) permet de distribuer un traffic entrant vers un ou plusieurs serveurs `backends` en round-robin. + +Si l'un de ces serveurs est indisponible, PF ne peut le détecter et continue de distribuer du traffic vers ce backend, générant donc des erreurs. Il existe plusieurs moyens pour pallier à ce problème, dont l'utilisation d'un proxy applicatif sur le pare-feu lui-même ou l'utilisation d'IP virtuelles redondées sur les serveurs backends. + +HostChecker permet d'avoir un troisième solution, celle de gérer dynamiquement la liste des serveurs backends référencés dans une table PF. + +Configuration +-------------- + +La configuration se fait dans un seul fichier YAML qui décrit un ou plusieurs groupes de serveurs, les méthodes de test et les tables PF a mettre à jour. + +``` +cluster-web: + tables: + - cluster-web-hosts + hosts: + - 10.10.1.10 + - 10.10.1.11 + check: + - type: http + - port: 80 + - interval: 5 + - timeout: 2 +``` \ No newline at end of file