Просмотр журналов на удаленном сервере Linux

21

Есть ли хорошие инструменты для выполнения tail -f на удаленном (linux) сервере? Было бы неплохо иметь возможность сделать что-то вроде «taillog server_host / var / log / syslog» для просмотра журналов на разных серверах без необходимости входа в ssh.

Как насчет приложения, которое показывает несколько журналов рядом?

ро.
источник

Ответы:

16

Если файлы журналов генерируются на клиентском сервере через syslogсредство, то лучший способ - настроить демон системного журнала клиентов для пересылки этих журналов на отдельный хост. Например, если у меня есть внутреннее имя, syslog.privateкоторое указывает на удаленный сервер, на который я хочу получать записи журнала. Я могу добавить следующую строку в /etc/syslog.confна клиентском сервере.

*.*          @syslog.private

и затем перезапустите демон системного журнала на клиенте

service syslog reload

Это приведет к тому, что каждая запись, которая проходит через системный журнал клиентов, будет отправлена ​​по проводной связи, syslog.privateи если эта машина настроена правильно, записи также будут доступны там. В системах RedHat это контролируется /etc/sysconfig/syslogфайлом. Убедитесь, что -rопция присутствует

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

и затем перезапустите демон системного журнала на принимающем сервере.

Вы также можете контролировать то, что пересылается на удаленный сервер, добавляя исключения, см. Пример ниже

*.*;mail.none   @syslog.private

Что говорит, переслать все, syslog.privateза исключением того, что отправлено на mailобъект.

Если это решение подходит вам, вы можете рассмотреть одну из альтернативных реализаций системного журнала , таких как rsyslog или syslog-ng , которые предоставляют дополнительные параметры ведения журнала и хранения.

Дейв Чейни
источник
1
+1. Централизованные лог-репозитории имеют важное значение для них. Это очень приятно иметь чистый набор журналов после брекин. Ну, это не гарантированно чистый, так как они могут быть отравлены атакующим. Но злоумышленник не может ничего удалить.
Командир Кин
Тогда использование multitail или sperlunk на центральном сервере регистрации - отличный способ почувствовать всю сеть
Дейв Чейни,
9

Если вы настраиваете ssh-аутентификацию на основе ключей и sudo на удаленных хостах на удаленных хостах, чтобы разрешить запуск tail для файлов журнала без запроса пароля. Было бы довольно легко создать скрипт taillog, который делает то, что вы хотите, как показано ниже. Это на самом деле не избегает ssh, но экономит пару шагов.

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

Или вы можете настроить системный журнал для пересылки всех сообщений журнала в центральную систему, а затем запустить команду tail на сервере системного журнала. Просто посмотрите файлы журналов в центральной системе.

Zoredache
источник
5

Я бы настоятельно рекомендовал multitail для расширенного просмотра журнала. Сам описывается как хвост на стероидах.

gacrux
источник
Я только что проголосовал не 15 часов назад за это предложение. Я открою сообщение ...
Эйвери Пэйн
Хм, да, я не думаю, что мультитейл является точным ответом на вопрос, но я думаю, что он достаточно ценен, чтобы быть включенным в ответ. Голосование за это довольно резко.
gacrux
согласен, несправедливо .... multi-log отвечает на половину этого вопроса, состоящего из двух частей, - «бок о бок». (vimdiff также делает хорошую работу, или, по крайней мере, vim -O) только потому, что он не обращается к удаленной части, вероятно, является проблемой.
ericslaw
3

Это явно не отвечает на ваш вопрос, но если у вас есть несколько журналов для просмотра и меньше, чем ограничение бесплатной версии, вы можете попробовать Splunk бесплатно, чтобы иметь хороший интерфейс и полезный для всех ваших данных регистрации.

tail -f поддерживает более одного журнала, но не бок о бок, только вниз.

Винко Врсалович
источник
У Splunk есть функция хвоста, которую вы можете использовать для удаленного выполнения хвоста -f над файлом. Я не верю, что это происходит бок о бок, хотя.
thepocketwade
2

Multitail будет делать то, что вы ищете на локальной машине. В нем конкретно не упоминается, будет ли он работать в сети, хотя есть несколько способов обойти это (монтирования NFS, монтирования SMB и т. Д.). Также говорится, что он будет работать как сервер системного журнала, что подразумевает, что он может получать активные данные из системного журнала другой машины, хотя я никогда не использовал эту функцию и не знаю, так ли это.

Эйвери Пэйн
источник
2

Я использую OtrosLogViewer (лицензия Apache Commons). Он поддерживает протоколирование удаленных серверов с использованием ssh / sftp и samba / CIFS. Вы можете добавить несколько файлов журнала в одно окно. Вот скриншот: OtrosLogViewer скриншот

KrzyH
источник
у вас есть шаблон для системного журнала Linux?
Эдгард Лил
Вы должны создать свою собственную базу шаблонов на примерах: code.google.com/p/otroslogviewer/wiki/Log4jPatternLayout
KrzyH
используйте следующий формат для подключения в SFTP (в версии 1.4.5 нет браузера с пользовательским интерфейсом):sftp://hostname/path/to/directory
Donatello
1

Я написал vsConsole именно для этой цели - легкий доступ к файлам журналов (sshing и права доступа к файлам всегда проблема), а затем добавил мониторинг приложений и отслеживание версий. Я хотел бы знать, что вы думаете об этом. http://vs-console.appspot.com/

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

prule
источник
0

Вы можете использовать что-то вроде Phplogcon. Я использую rsyslog с mysql и отправляю на него все журналы с других моих серверов. Затем Phplogcon отображает их с помощью веб-приложения.

Это не самый красивый интерфейс, но это хороший способ для администраторов получить доступ к журналам, не подвергая серверы ненужным удаленным входам.

Гарри Хартхилл
источник
0

Уже упоминалось, но стоит упомянуть еще раз. Splunk!

Я имел удовольствие создавать большие центральные настройки системного журнала с хорошим графическим интерфейсом в прошлом. Это мир боли. Splunk делает его пустяком, особенно с корпоративной лицензией, которая дает вам центральное управление. Если ваши журналы меньше 500M в день, это бесплатно. Если нет, это может стать очень дорогим, но оно того стоит, и не только для небольшого количества регистрации - вы можете сделать намного больше. Я обычно защищаю приложения с открытым исходным кодом, но Splunk превосходит все, с чем я сталкивался.

липкая
источник
0

Попробуй это:

ssh servername tail -f /var/log/messages

Если ваш файл журнала защищен:

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

(вам не нужно использовать «ssh -f» - просто ваш пароль не отображается в TTY)

Если вам это нравится, вы можете использовать ту же команду с кластером SSH .

Тиаго Фигейро
источник
0

Вы также можете использовать Octopussy (мой проект) для централизации ваших журналов, просмотра и создания предупреждений и отчетов.

sebthebert
источник
-1

В дополнение к ответу @KrzyH (Otros) я написал дополнение к Otros, чтобы вы могли установить WAR на удаленной машине, так что технически вы можете использовать Otros в качестве веб-службы.

Подробнее здесь .

OhadR
источник