在远程Linux服务器上查看日志


21

有什么不错的工具可以在远程(linux)服务器上执行“ tail -f”吗?能够执行“ taillog server_host / var / log / syslog”之类的操作来查看各种服务器上的日志而不必ssh入,这将是很好的。

并排显示多个日志的应用程序怎么样?

Answers:


16

如果日志文件是通过该syslog工具在客户端服务器上生成的,那么最好的方法是设置客户端syslog守护程序,以将这些日志转发到单独的主机。例如,如果我有一个内部名称syslog.private指向要接收日志条目的远程服务器。我可以将以下行添加到/etc/syslog.conf客户端服务器上。

*.*          @syslog.private

然后在客户端上重新启动syslog守护程序

service syslog reload

这将导致通过客户端syslog的每个条目都通过电线发送到,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设施外,将所有东西转发给其他人。

如果该解决方案适合您,则可以考虑使用其他syslog实现之一,例如rsyslogsyslog-ng,它们提供了额外的日志记录和存储选项。


1
+1。集中式日志存储库是必不可少的imo。这是非常好的一个分手后有一个干净的日志集。好吧,它不能保证干净,因为它们可能被攻击者中毒。但是攻击者无法删除任何内容。
基恩指挥官

然后,在中央日志记录服务器上使用multitail或sperlunk是了解整个网络的好方法
Dave Cheney

9

如果在远程主机上的远程主机上设置基于密钥的ssh身份验证和sudo,以允许对日志文件运行tail而不提示密码。构建如下所示的taillog脚本非常容易。这并不能真正避免ssh,但是确实可以节省几步。

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

或者,您可以设置syslog以将所有日志消息转发到中央系统,然后在syslog服务器上运行tail命令。只需查看中央系统上的日志文件即可。


5

我强烈建议使用multitail进行高级日志查看。自我形容为类固醇的尾巴。


15个小时前,我刚刚对该建议投了反对票。我将公开发布该消息……
艾利·佩恩

嗯,是的,我认为多重尾巴不是该问题的确切答案,但我认为它的价值足以包含在答案中。对此投反对票非常严厉。
gacrux

同意不公平。...多日志回答了这两部分问题的一半-“并排”部分。(vimdiff也做得很好,或者至少是vim -O)只是因为它不能解决远程部分的问题。
ericslaw

3

显然,这并不能回答您的问题,但是,如果您要观看的日志多于少数,并且少于免费版的限制,则可以免费尝试使用Splunk,以拥有一个不错的界面并对所有日志数据有用。

tail -f 确实支持多个日志,但不支持并排,仅向下支持。


Splunk具有拖尾功能,可用于对文件执行远程tail -f。不过,我不认为它是并行的。
thepocketwade

2

Multitail将在本地计算机上完成您要执行的操作。尽管有多种方法可以解决此问题(NFS挂载,SMB挂载等),但它没有具体说明它是否可以在整个网络中工作。它还说它将作为系统日志服务器工作,这意味着它可能能够从另一台计算机的syslog接收活动数据,尽管我从未使用过该功能,也不知道是这种情况。


2

我正在使用OtrosLogViewer(Apache Commons许可证)。它支持使用ssh / sftp和samba / CIFS从远程服务器跟踪日志。您可以将日志文件尾部添加到一个窗口中。这是屏幕截图: OtrosLogViewer屏幕截图


linux syslog文件有模式吗?
Edgard Leal 2014年

您必须根据示例创建自己的模式:code.google.com/p/otroslogviewer/wiki/Log4jPatternLayout
KrzyH 2014年

使用以下格式连接SFTP(在1.4.5版本中没有UI浏览器):sftp://hostname/path/to/directory
Donatello 2016年

1

我正是出于这个目的而编写了vsConsole的-轻松访问日志文件(sshing和文件权限始终是个问题)-然后添加了应用程序监视和版本跟踪。我想知道您对此有何看法。http://vs-console.appspot.com/

这意味着一条简单的,学习难度低的一键式解决方案,可以解决我一直需要的简单开发问题。


0

您可以使用类似Phplogcon的工具。我将rsyslog与mysql一起使用,并将所有其他服务器的日志发送到它。然后,Phplogcon通过使用Web应用程序显示它们。

这不是最好看的界面,但它是管理员访问日志而不将服务器暴露给不必要的远程登录的一种好方法。


0

已经提到,但值得一提。散漫!

过去,我很高兴用不错的GUI构建大型的中央syslog设置。这是一个痛苦的世界。Splunk使它变得轻而易举,尤其是获得企业许可证后,即可集中管理。如果您的日志每天少于500M,那么它是免费的。如果不是的话,它可能会变得非常昂贵,但它是值得的,而不仅仅是花费一点点日志-您可以做更多的事情。我通常会提倡开源应用程序,但是Splunk胜过我遇到的任何事情。


0

尝试这个:

ssh servername tail -f /var/log/messages

如果您的日志文件受保护:

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

(您不必使用“ ssh -f”-只是这样您的密码不会回显到TTY)

如果愿意,可以对集群SSH使用相同的命令。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.