Одновременный мониторинг нескольких файлов журналов (по ssh) в Windows?

StackOverflow https://stackoverflow.com/questions/106668

Вопрос

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

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

Спасибо

Это было полезно?

Решение

Вы могли бы использовать Менеджер соединений Putty чтобы добавить выступы в шпаклевку.Затем дважды подключитесь к компьютеру по SSH и перемещайтесь туда-сюда.

Руководство по его настройке

Другие советы

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

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

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

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

Из 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:Это предполагает работающую unix-подобную среду, которую вы можете получить, установив cygwin

Кто сказал, что вы не можете использовать lisp в shellscript ;-)

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

Созданный мной Java-инструмент, способный читать локальные и удаленные файлы журналов с помощью SSH.Он довольно прост в использовании.

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

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

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

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

Два варианта, которые первыми приходят мне в голову.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top