Pergunta

poderosa

Eu usei (um aplicativo de terminal .NET) para monitorar logs em múltiplos linux / Solaris servidores. Esta aplicação é não recebendo atualmente mantido e eu tive vários problemas com ele.

Eu estou querendo saber o que outros usuários fazer para monitorar simultaneamente vários registros em tempo real (como no arquivo de log tail -f). Eu gostaria de ser capaz de guia / cascata caudas vários ssh.

obrigado

Foi útil?

Solução

Você pode usar Putty Connection Manager para adicionar guias para PuTTy. Então SSH na máquina duas vezes e guia e para trás.

Tutorial em configurá-lo

Outras dicas

Você poderia apenas ssh para um servidor, ea utilização mutitail de lá para a cauda dos logs em todos os os outros servidores.

SSH para um dos servidores, o ecrã rodar nele. Você pode, então, dividir a tela em várias janelas, e cada um deles fazer

ssh serverX tail -f /path/to/log/file

Uma vantagem incidental a este método é que você não tem para reiniciar as caudas cada vez que você conectar -. Em vez disso, você pode simplesmente recolocar a sessão de tela em execução

A partir do bash você pode (salvo em ~/.bashrc ou algo assim):

function create-follower () {
    local _NAME=$1;
    local _USER=$2;
    local _HOST=$3;
    local _PATH=$4;

    if ! [ "${_NAME}" ]\
    || ! [ "${_USER}" ]\
    || ! [ "${_HOST}" ]\
    || ! [ "${_PATH}" ] ; then
        {   echo "Cannot create log follower." ;
            echo;
            echo "Usage: create-follower NAME USER HOST LOG-FILE";
        } >&2;
        return 1 ;
    fi ;

    eval "function ${_NAME}(){ ssh ${_USER}@${_HOST} tail -f \"${_PATH}\" & }"
}

function activate-followers () {
    if (( $# < 1 )) ; then
        {   echo "You must specify at least one follower to use" ;
            echo ;
            echo "Usage:" ;
            echo "    activate-followers follower1 [follower2 ... followerN]";
        } >&2;
        return 1 ;
    fi ;

    for FOLLOW in "${@}" ; do
        ${FOLLOW} ;
    done ;

    wait;
}

function stop-followers () {
    if [ "$(jobs)" ] ; then
        kill -9 $(jobs | perl -pe 's/\[([0-9]+)\].*/%$1/') ;
    fi ;
}

E, em seguida, a partir de sua concha, definir os registros que você deseja seguir:

[dsm@localhost:~]$ create-follower test1 user1 localhost /tmp/log-1.txt
[dsm@localhost:~]$ create-follower test2 user2 otherhost /tmp/log-2.txt
[dsm@localhost:~]$ create-follower test2 user3 remotebox /tmp/log-3.txt

Agora, ativar os seguidores:

[dsm@localhost:~]$ activate-followers test1 test2 test3

Para sair do uso CTRL+C função, e para parar os processos backgrounded usar:

[dsm@localhost:~]$ stop-followers

NOTA 1:. Isso pressupõe autenticação de chave pública foi criada para suas caixas

NOTA 2: você terá que matar todos os trabalhos que são deixados em execução depois de parar de ativar a função seguidores. Você pode querer fazer isso manualmente como a função fornecida faz uma matança de força bruta em TODOS backgrounded empregos

NOTA 3: Isso pressupõe um unix-like ambiente de trabalho, que você pode obter através da instalação de cygwin

Quem disse que você não pode fazer lisp em shellscript; -)

Você pode verificar log in'side.

A Java ferramenta que eu criei, capaz de ler arquivos de log locais e distantes usando SSH. É bastante simples de usar.

Alguns mais explicações: https://github.com/pschweitz/insidelog/wiki

Basta baixar a versão correspondente ao seu sistema operacional, ou o executável liberação jar nativa dentro do seu Java Runtime (requer java 8_40 ou superior):

https://github.com/pschweitz/insidelog/releases

Você pode encontrar uma documentação completa (incorporado com e na página do Github também)

Duas opções que surgem em minha mente em primeiro lugar.

Escolha a sua aplicação SSH favorito (arremate, ssh em cygwin, etc) e logon na máquina.
1. SSH para cada log (lotes de janelas abertas em sua máquina ou guias dependendo do seu app)
2. SSH uma vez e uso tela .

Se você realmente necessário para ver os dois registros ao mesmo tempo, e abas estavam fora de questão, você pode instalar um script perl chamado LogResolveMerge.pl. Vai irão se fundir dois registros juntos, e despejar a saída para STDOUT. No entanto, será um recurso intensivo, e se sua intenção é tail -f os logs, ele provavelmente não vai ser muito eficaz.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top