Visualizando logs em um servidor linux remoto

20

Existe alguma ferramenta legal para fazer um 'tail -f' em um servidor remoto (linux)? Seria bom poder fazer algo como "taillog server_host / var / log / syslog" para ver os logs em vários servidores sem ter que fazer o ssh.

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

    
por ro. 19.05.2009 / 01:39

12 respostas

16

Se os arquivos de log estiverem sendo gerados no servidor cliente por meio do recurso syslog , 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.private que aponte para o servidor remoto que eu quero receber as entradas de log. Eu posso adicionar a seguinte linha ao /etc/syslog.conf no 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 passarem pelo syslog do cliente sejam enviadas pela rede para syslog.private e, se essa máquina estiver configurada corretamente, as entradas também estarão disponíveis. Nos sistemas RedHat isso é controlado pelo arquivo /etc/sysconfig/syslog . Certifique-se de que a opção -r esteja 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 ao servidor remoto adicionando exclusões, consulte o exemplo abaixo

*.*;mail.none   @syslog.private

O que diz encaminha tudo para syslog.private , com exceção de qualquer coisa enviada para o recurso mail .

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

    
por 19.05.2009 / 03:56
9

Se você configurar a autenticação ssh e o sudo com base em chave nos hosts remotos nos hosts remotos, para permitir a execução dos arquivos de log sem solicitação de senha. Seria muito fácil construir um script taillog que faz o que você quer como 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.

    
por 19.05.2009 / 01:56
5

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

    
por 19.05.2009 / 10:36
3

Isso claramente não está respondendo a sua pergunta, mas se você tiver mais do que alguns registros para assistir e menos do que o limite de edições gratuitas, tente Splunk gratuitamente para ter uma interface agradável e útil para todos os seus dados de registro.

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

    
por 19.05.2009 / 04:03
2
O Multitail fará o que você deseja na máquina local. Ele não menciona especificamente se ele funcionará em uma rede, embora haja várias maneiras de contornar isso (montagens NFS, montagens SMB, etc.). Ele também diz que funcionará como um servidor syslog, o que significa que ele pode para receber dados ativos do syslog de outra máquina, embora eu nunca tenha usado esse recurso e não sei se esse é o caso.

    
por 19.05.2009 / 01:47
2

Estou usando o OtrosLogViewer (apache commons license). Suporta log de rejeição de servidores remotos usando ssh / sftp e samba / CIFS. Você pode substituir múltiplos arquivos de log em uma janela. Aqui está uma captura de tela:

    
por 23.01.2013 / 15:46
1

Escrevi o vsConsole exatamente para esse propósito - acesso fácil a arquivos de log (as permissões sshing e file são sempre um problema) - e, em seguida, adicionei monitoramento de aplicativo e rastreamento de versão. Eu gostaria de saber o que você pensa sobre isso. link

Esta é uma curva de aprendizado fácil e de baixo custo, solução de um clique para resolver problemas comuns de desenvolvimento. Eu sempre precisei de uma solução simples.

    
por 14.02.2013 / 10:47
0

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

Não é a interface mais atraente, mas é uma boa maneira de os administradores acessarem registros sem expor os servidores a logins remotos desnecessários.

    
por 20.05.2009 / 12:26
0

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

Eu tive o prazer de construir grandes configurações centrais de syslog com um bom gui no passado. É um mundo de dor. O Splunk faz dele uma brincadeira, especialmente com uma licença corporativa que lhe dá gerenciamento central. Se seus registros estiverem abaixo de 500 milhões por dia, é grátis. Se não, pode ficar muito caro, mas vale a pena e não apenas por um pouco de registro - você pode fazer muito mais. Eu geralmente defendo aplicativos de código aberto, mas o Splunk supera qualquer coisa que eu tenha encontrado.

    
por 30.05.2009 / 22:26
0

Tente isto:

ssh servername tail -f /var/log/messages

Se o seu arquivo de log estiver protegido:

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

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

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

    
por 19.06.2009 / 23:55
0

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

    
por 27.05.2009 / 02:08
-1

Além de @KrzyH answer (Otros) , escrevi uma adição ao Otros para que você possa instalar um WAR na máquina remota, portanto, tecnicamente, você pode usar o Otros como um serviço da Web.

Mais detalhes aqui .

    
por 10.07.2016 / 12:46