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

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

是否有任何好用的工具可以在远程 (linux) 服务器上执行 'tail -f'?如果能够执行类似“taillog server_host /var/log/syslog”的操作来查看各种服务器上的日志而无需 ssh 登录,那就太好了。

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

答案1

如果日志文件是通过该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设施外的所有物品转发。

如果此解决方案对你有用,你可以考虑使用其他 syslog 实现,例如rsyslog, 或者系统日志工具,提供额外的日志记录和存储选项。

答案2

如果您在远程主机上设置基于密钥的 ssh 身份验证和 sudo,则允许在不提示密码的情况下针对日志文件运行 tail。构建一个 taillog 脚本来执行您想要的操作将非常容易,如下所示。这实际上并不能避免 ssh,但它确实为您节省了几个步骤。

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

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

答案3

我强烈推荐多尾用于高级日志查看。自称是强化版的尾巴。

答案4

多尾将在本地机器上执行您想要的操作。它没有具体提到它是否可以跨网络工作,尽管有几种方法可以解决这个问题(NFS 安装、SMB 安装等)。它还说它可以作为系统日志服务器工作,这意味着它可能能够从另一台机器的系统日志接收活动数据,尽管我从未使用过该功能,也不知道是否如此。

相关内容