Есть ли какие-нибудь хорошие инструменты для выполнения 'tail -f' на удаленном (Linux) сервере? Было бы неплохо иметь возможность делать что-то вроде "taillog server_host / var / log / syslog" для просмотра журналов на различных серверах без необходимости использовать ssh.
Как насчет приложения, которое показывает несколько журналов бок о бок?
Если файлы журнала генерируются на клиентском сервере через syslog
Тогда лучший способ - настроить демон syslog клиентов для пересылки этих журналов на отдельный хост. Например, если у меня есть внутреннее имя syslog.private
который указывает на удаленный сервер, на который я хочу получать записи журнала. Я могу добавить следующую строку в /etc/syslog.conf
на клиентском сервере.
*.* @syslog.private
а затем перезапустите демон syslog на клиенте
service syslog reload
Это приведет к тому, что каждая запись, которая проходит через системный журнал клиентов, будет отправлена по сети на syslog.private
и если эта машина настроена правильно, записи будут доступны и там. В системах RedHat это контролируется /etc/sysconfig/syslog
файл. Убедитесь, что -r
вариант присутствует
% grep "SYSLOGD" /etc/sysconfig/syslog
SYSLOGD_OPTIONS="-m 0 -r"
а затем перезапустите демон syslog на принимающем сервере.
Вы также можете контролировать то, что перенаправляется на удаленный сервер, добавляя исключения, см. Пример ниже
*.*;mail.none @syslog.private
Что говорит вперед все syslog.private
за исключением всего, что отправлено mail
объект.
Если это решение работает для вас, вы можете рассмотреть одну из альтернативных реализаций системного журнала, например rsyslog, или syslog-ng, которые предоставляют дополнительные возможности ведения журнала и хранения.
Если вы настроили аутентификацию ssh на основе ключей и sudo на удаленных узлах на удаленных узлах, чтобы разрешить запуск хвоста для файлов журнала без запроса пароля. Было бы довольно легко создать сценарий хвостового журнала, который будет делать то, что вы хотите, как показано ниже. На самом деле это не позволяет избежать использования ssh, но сэкономит вам пару шагов.
#!/bin/bash
ssh $1 sudo tail -f $2
Или вы можете настроить системный журнал для пересылки всех сообщений журнала в центральную систему, а затем запустить команду tail на сервере системного журнала. Просто посмотрите файлы журналов в центральной системе.
Я очень рекомендую многоцелевой для расширенного просмотра журнала. Сам себя описал как хвост на стероидах.
Это явно не отвечает на ваш вопрос, но если у вас есть больше, чем несколько журналов для просмотра и меньше лимита бесплатной версии, вы можете попробовать Splunk бесплатно, чтобы иметь приятный интерфейс и полезный для всех ваших данных журнала.
tail -f
поддерживает более одного бревна, но не бок о бок, только вниз.
Multitail будет делать то, что вам нужно, на локальной машине. В нем конкретно не упоминается, будет ли он работать по сети, хотя есть несколько способов обойти это (монтирование NFS, монтирование SMB и т. Д.). Также говорится, что он будет работать как сервер системного журнала, что означает, что он может быть в состоянии для получения активных данных из системного журнала другой машины, хотя я никогда не использовал эту функцию и не знаю, так ли это.
я использую OtrosLogViewer (лицензия Apache Commons). Он поддерживает журналы с удаленными серверами с использованием ssh / sftp и samba / CIFS. Вы можете поместить несколько файлов журнала в одно окно. Вот скриншот:
Я написал vsConsole именно для этой цели - легкий доступ к файлам журналов (sshing и права доступа к файлам всегда являются проблемой) - а затем добавил мониторинг приложений и отслеживание версий. Хотелось бы знать, что вы об этом думаете. http://vs-console.appspot.com/
Это должно быть легкое, низкое обучение, решение в один щелчок, решающее типичные проблемы разработки, для которых мне всегда требовалось простое решение.
Вы можете использовать что-то вроде Phplogcon. Я использую rsyslog с mysql и отправляю на него все журналы с других моих серверов. Затем Phplogcon отображает их с помощью веб-приложения.
Это не самый красивый интерфейс, но это хороший способ для администраторов получить доступ к журналам, не подвергая серверы ненужным удаленным входам.
Уже упоминалось, но стоит упомянуть еще раз. SPLUNK!
В прошлом я имел удовольствие создавать большие центральные системы системного журнала с красивым графическим интерфейсом. Это мир боли. Splunk делает это пустяком, особенно с корпоративной лицензией, которая дает вам централизованное управление. Если ваши журналы не превышают 500 миллионов в день, это бесплатно. В противном случае это может стать очень дорогим, но оно того стоит, и не только для небольшого журнала - вы можете сделать гораздо больше. Я обычно выступаю за приложения с открытым исходным кодом, но Splunk превосходит все, с чем я сталкивался.
Попробуй это:
ssh servername tail -f /var/log/messages
Если ваш файл журнала защищен:
ssh -f servername sudo tail -f /var/log/messages
(вам не обязательно использовать "ssh -f" - просто чтобы ваш пароль не отображался в TTY)
Если вам это нравится, вы можете использовать ту же команду с кластер SSH.
Вы также можете использовать Осьминог (мой проект) для централизации ваших журналов, просмотра и создания предупреждений и отчетов.
В дополнении к @KrzyH ответ (Отрос), Я написал дополнение к Otros, чтобы вы могли установить WAR на удаленном компьютере, так что технически вы можете использовать Otros как веб-службу.
Подробнее Вот.