Como podemos transferir os logs do contêiner em execução para outro servidor usando o Rsysnc?

Como podemos transferir os logs do contêiner em execução para outro servidor usando o Rsysnc?

Já tentei publicar os logs na máquina host (usando docker run -v src:/des) agora quero transferir os logs para um servidor diferente

Comandos que usei:

  • rsync -u -avze ssh fonte/* exemplo.com:/des/logs

    rsync: Falha ao executar ssh: Arquivo ou diretório inexistente (2) Erro de rsync: erro no código IPC (código 14) em pipe.c (84) [sender = 3.0.9] rsync: writefd_unbuffered falhou ao gravar 4 bytes no soquete [remetente]: Pipe quebrado (32) erro de rsync: erro no código IPC (código 14) em io.c(1532) [remetente=3.0.9]

Já verifiquei os caminhos de origem e destino, mas ainda diz o mesmo.


  1. Se o servidor host 1 puder se comunicar com o servidor 2, então o contêiner Docker em execução no servidor 01 deverá ser capaz de se comunicar com o servidor 2. (Esta é uma afirmação correta?)

  2. Existe alguma maneira de usar os utilitários do Linux para podermos gerenciar os logs sem usar outras ferramentas como o Splunk

Responder1

Sua sintaxe está errada, é por isso que você está recebendo a mensagem de erro:

“No such file or directory (2) rsync error”

A sintaxe correta é:

$ rsync  <options>  /source host:/dest

Por exemplo

$ rsync -avz /source host:/dest

Se você precisar especificar uma porta personalizada para ssh, use aspas para isso, o exemplo está abaixo:

$ rsync -e "ssh -p port"  <options> /source host:/dest

Além disso, verifique a propriedade do diretório de origem, deve ser o usuário que está executando o rsync, caso contrário, a sincronização falhará.

informação relacionada