Одновременный мониторинг нескольких файлов журнала (через ssh) в Windows? - PullRequest
4 голосов
/ 20 сентября 2008

Я использовал poderosa (терминальное приложение .NET) для мониторинга журналов на нескольких серверах linux / solaris. Это приложение в настоящее время не поддерживается, и у меня было несколько проблем с ним.

Мне интересно, что делают другие пользователи для одновременного мониторинга нескольких журналов в режиме реального времени (как в файле хвоста -f). Я хотел бы иметь возможность вкладывать / каскадировать несколько ssh-хвостов.

спасибо

Ответы [ 7 ]

7 голосов
/ 20 сентября 2008

Вы можете просто подключиться по ssh к одному серверу и использовать mutitail , чтобы вести журналы на всех других серверах.

1 голос
/ 25 июня 2016

Вы можете оформить заказ в личном журнале.

Я создал инструмент Java, способный читать локальные и удаленные файлы журналов, используя SSH. Это довольно просто в использовании.

Еще несколько объяснений: https://github.com/pschweitz/insidelog/wiki

Просто скачайте версию, соответствующую вашей операционной системе, или собственный исполняемый файл jar-релиза в вашей среде выполнения Java (требуется java 8_40 или выше):

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

Вы можете найти полную документацию (в том числе и на странице Github)

1 голос
/ 24 сентября 2008

Из Bash вы можете (сохранить в ~/.bashrc или что-то):

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 ;
}

А затем из вашей оболочки определите журналы, за которыми вы хотите следить:

[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

Теперь активируйте подписчиков:

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

Чтобы выйти из функции, используйте CTRL+C, а для остановки фоновых процессов:

[dsm@localhost:~]$ stop-followers

ПРИМЕЧАНИЕ 1. Предполагается, что для ваших ящиков установлена ​​аутентификация с открытым ключом.

ПРИМЕЧАНИЕ 2. Вам придется убить все задания, которые остались запущенными после выхода из функции активации-последователей. Возможно, вы захотите сделать это вручную, поскольку предоставленная функция убивает грубой силой ВСЕ фоновые задания

ПРИМЕЧАНИЕ 3: Предполагается, что работает юникс-подобная среда, которую вы можете получить, установив cygwin

Кто сказал, что вы не можете делать шутки в шеллскрипте; -)

1 голос
/ 20 сентября 2008

Ssh на один из серверов, запустить экран на нем. Затем вы можете разделить экран на несколько окон, и каждое из них делает

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

Побочным преимуществом этого метода является то, что вам не нужно перезапускать хвосты при каждом подключении - вместо этого вы можете просто присоединиться к сеансу рабочего экрана.

1 голос
/ 20 сентября 2008

Вы можете использовать Putty Connection Manager для добавления вкладок в PuTTy. Затем дважды вставьте SSH в машину и нажмите назад и вперед.

Учебник по настройке

0 голосов
/ 20 сентября 2008

Если вам на самом деле нужно было видеть оба журнала одновременно и вкладки не обсуждались, вы можете установить Perl-скрипт с именем LogResolveMerge.pl. Он объединит два журнала вместе и выведет вывод в STDOUT. Тем не менее, это будет ресурсоемким, и, если вы намерены использовать логи, это, вероятно, не будет слишком эффективным.

0 голосов
/ 20 сентября 2008

Два варианта, которые приходят мне на ум в первую очередь.

Выберите ваше любимое приложение SSH (putty, ssh в cygwin и т. Д.) И войдите в систему.
1. SSH для каждого журнала (на вашем компьютере открыто много окон или вкладок в зависимости от вашего приложения)
2. SSH один раз и используйте screen .

...