Visualizando Logs em um Servidor Linux Remoto

21

Existem ferramentas legais para executar um 'tail -f' em um servidor remoto (linux)? Seria bom poder fazer algo como "taillog server_host / var / log / syslog" para visualizar os logs em vários servidores sem precisar ssh.

Que tal um aplicativo que mostra vários logs lado a lado?

ro.
fonte

Respostas:

16

Se os arquivos de log estiverem sendo gerados no servidor do cliente por meio do syslogrecurso, a melhor maneira é configurar o daemon syslog do cliente para encaminhar esses logs para um host separado. Por exemplo, se eu tiver um nome interno syslog.privateque aponte para o servidor remoto que desejo receber as entradas de log. Eu posso adicionar a seguinte linha /etc/syslog.confno servidor do cliente.

*.*          @syslog.private

e, em seguida, reinicie o daemon syslog no cliente

service syslog reload

Isso fará com que todas as entradas que passam pelo syslog do cliente sejam enviadas pela conexão syslog.privatee, se essa máquina estiver configurada corretamente, as entradas também estarão disponíveis lá. Nos sistemas RedHat, isso é controlado pelo /etc/sysconfig/syslogarquivo. Verifique se a -ropção está presente

% grep "SYSLOGD" /etc/sysconfig/syslog 
SYSLOGD_OPTIONS="-m 0 -r"

e, em seguida, reinicie o daemon syslog no servidor de recebimento.

Você também pode controlar o que é encaminhado para o servidor remoto adicionando exclusões, veja o exemplo abaixo

*.*;mail.none   @syslog.private

O que diz encaminhar tudo, syslog.privatecom exceção de qualquer coisa enviada para a mailinstalação.

Se esta solução funcionar para você, considere uma das implementações alternativas do syslog, como rsyslog ou syslog-ng , que fornecem opções extras de log e armazenamento.

Dave Cheney
fonte
1
+1. Repositórios de log centralizados são imo essenciais. É muito bom ter um conjunto limpo de logs após um arrombamento. Bem, não há garantia de limpeza, pois eles podem ser envenenados por um atacante. Mas o atacante não pode remover nada.
Comandante Keen
Em seguida, usando multitail ou sperlunk em seu servidor de registro central é uma ótima maneira de começar uma sensação para toda a sua rede
Dave Cheney
9

Se você configurar a autenticação ssh com base em chave e o sudo nos hosts remotos nos hosts remotos para permitir a execução posterior dos arquivos de log sem a solicitação de senha. Seria muito fácil criar um script de taillog que faça o que você deseja abaixo. Isso realmente não evita o ssh, mas economiza alguns passos.

#!/bin/bash
ssh $1 sudo tail -f $2

Ou, você pode configurar o syslog para encaminhar todas as mensagens de log para um sistema central e, em seguida, executar o comando tail no servidor syslog. Apenas observe os arquivos de log no sistema central.

Zoredache
fonte
5

Eu recomendo o multitail para visualização avançada de logs. Auto-descrito como cauda em esteróides.

gacrux
fonte
Acabei de votar há 15 horas para essa sugestão. Eu vou revelar a postagem ...
Avery Payne
Hmm, sim, eu não acho que o multitail é uma resposta exata para a pergunta, mas acho que é valioso o suficiente para ser incluído na resposta. Uma votação a favor é bastante dura.
Gacrux 20/05/09
Concordo injusto .... o multi-log responde pela metade dessa pergunta de duas partes - a parte 'lado a lado'. (vimdiff também faz um bom trabalho, ou vim -O pelo menos) só porque não trata da parte remota é provavelmente o problema.
21700 ericslaw
3

Claramente, isso não está respondendo à sua pergunta, mas se você tiver mais do que alguns logs para assistir e menos do que o limite de edição gratuita, poderá experimentar o Splunk gratuitamente para ter uma interface agradável e útil para todos os seus dados de log.

tail -f suporta mais de um log, mas não lado a lado, apenas para baixo.

Vinko Vrsalovic
fonte
O Splunk possui um recurso de cauda que você pode usar para executar a cauda remota -f em um arquivo. Não acredito que isso aconteça lado a lado.
Thepocketwade
2

O Multitail fará o que você procura na máquina local. Ele não menciona especificamente se funcionará em uma rede, embora existam várias maneiras de contornar isso (montagens NFS, montagens SMB etc.). Também diz que funcionará como um servidor syslog, o que implica que ele poderá para receber dados ativos do syslog de outra máquina, embora eu nunca tenha usado esse recurso e não saiba se é esse o caso.

Avery Payne
fonte
2

Estou usando o OtrosLogViewer (licença do apache commons). Ele suporta log de cauda de servidores remotos usando ssh / sftp e samba / CIFS. Você pode multiplicar os arquivos de log em uma janela. Aqui está uma captura de tela: Captura de tela do OtrosLogViewer

KrzyH
fonte
você tem um padrão para o arquivo syslog do linux?
Edgard Leal
Você deve criar sua própria base de padrões nos exemplos: code.google.com/p/otroslogviewer/wiki/Log4jPatternLayout
KrzyH
use o seguinte formato para conectar-se no SFTP (não há navegador da interface do usuário na versão 1.4.5):sftp://hostname/path/to/directory
Donatello
1

Eu escrevi o vsConsole exatamente para esse fim - acesso fácil a arquivos de log (sshing e permissões de arquivo sempre são um problema) - e adicionei monitoramento de aplicativos e rastreamento de versões. Eu gostaria de saber o que você pensa disso. http://vs-console.appspot.com/

Isso deve ser uma curva de aprendizado fácil e baixa, com um clique, resolvendo problemas comuns de desenvolvimento para os quais sempre precisei de uma solução simples.

prule
fonte
0

Você poderia usar algo como Phplogcon. Eu uso o rsyslog com o mysql e envio todos os logs dos meus outros servidores para ele. O Phplogcon os exibe através do uso de um aplicativo da web.

Não é a interface mais bonita, mas é uma ótima maneira de os administradores acessarem logs sem expor os servidores a logins remotos desnecessários.

Garry Harthill
fonte
0

Já mencionado, mas vale a pena mencionar novamente. SPLUNK!

Eu tive o prazer de criar grandes configurações de syslog central com uma boa interface gráfica no passado. É um mundo de dor. O Splunk faz com que seja uma bobagem, especialmente com uma licença corporativa que fornece gerenciamento central. Se seus registros tiverem menos de 500 milhões por dia, é gratuito. Caso contrário, pode ficar muito caro, mas vale a pena e não apenas por um pouco de registro - você pode fazer muito mais. Eu normalmente defendia aplicativos de código aberto, mas o Splunk supera qualquer coisa que eu tenha encontrado.

goo
fonte
0

Tente o seguinte:

ssh servername tail -f /var/log/messages

Se seu arquivo de log estiver protegido:

ssh -f servername sudo tail -f /var/log/messages

(você não precisa usar "ssh -f" - é apenas para que sua senha não seja ecoada no TTY)

Se você gosta, pode usar o mesmo comando com o cluster SSH .

Thiago Figueiro
fonte
0

Você também pode usar o Octopussy (meu projeto) para centralizar seus logs, visualizar e gerar alertas e relatórios.

sebthebert
fonte
-1

Além da resposta à @KrzyH (Otros) , escrevi uma adição ao Otros para que você possa instalar um WAR na máquina remota e, tecnicamente, possa usar o Otros como um serviço da web.

Mais detalhes aqui .

OhadR
fonte