是否有任何好用的工具可以在远程 (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 安装等)。它还说它可以作为系统日志服务器工作,这意味着它可能能够从另一台机器的系统日志接收活动数据,尽管我从未使用过该功能,也不知道是否如此。