2017-08-31 4 views
0

J'ai un serveur qui est le système d'exploitation hôte pour plusieurs conteneurs docker. Chacun des conteneurs contient une application qui crée des journaux. Je veux que ces journaux soient envoyés à un seul endroit en utilisant le démon syslog, puis je veux que filebeat transmette ces données à un autre serveur. Est-il possible d'installer filebeat sur le système d'exploitation HOST (sans faire un autre conteneur pour filebeat), et de rendre les données du journal des applications du conteneur collectées par le démon syslog puis consolidées dans/var/log sur le système d'exploitation hôte? Merci.Exécution de filebeat sur le système d'exploitation de l'hôte du docker et collecte des journaux à partir des conteneurs

+0

Vous pouvez installer 'filebeat' sur votre' os hôte 'mais vous devez également rassembler tous les journaux dans des conteneurs en un seul endroit sur' hôte OS'. – Tuan

Répondre

2

Vous devez partager un volume avec chaque conteneur afin d'obtenir vos journaux dans le système de fichiers hôte. Puis, vous pouvez installer filebeat sur l'hôte et transférer les journaux où vous voulez, car il s'agissait de fichiers journaux "standard".

Veuillez noter que les conteneurs docker n'écrivent généralement pas de journaux dans les fichiers journaux réels, mais dans stdout. Cela signifie que vous aurez probablement besoin d'images personnalisées pour résoudre ce problème de journalisation.

+0

J'ai résolu le problème en utilisant le pilote de journalisation GELF pour les conteneurs docker. Cela m'a permis d'envoyer directement des données provenant des journaux des conteneurs à mon serveur distant via UDP avec un travail de configuration mineur. – avarkhed