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

rea*_*nly 22 linux log-files

是否有任何不错的工具可以在远程(linux)服务器上执行“tail -f”?能够执行诸如“taillog server_host /var/log/syslog”之类的操作来查看各种服务器上的日志而无需 ssh 会很好。

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

Dav*_*ney 16

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

*.*          @syslog.private
Run Code Online (Sandbox Code Playgroud)

然后重新启动客户端上的 syslog 守护进程

service syslog reload
Run Code Online (Sandbox Code Playgroud)

这将导致通过客户端系统日志的每个条目通过线路发送到syslog.private,如果该机器配置正确,条目也将在那里可用。在 RedHat 系统中,这是由/etc/sysconfig/syslog文件控制的。确保该-r选项存在

% grep "SYSLOGD" /etc/sysconfig/syslog 
SYSLOGD_OPTIONS="-m 0 -r"
Run Code Online (Sandbox Code Playgroud)

然后重新启动接收服务器上的 syslog 守护进程。

您还可以通过添加排除项来控制转发到远程服务器的内容,请参见下面的示例

*.*;mail.none   @syslog.private
Run Code Online (Sandbox Code Playgroud)

这表示将所有内容转发给syslog.private除发送到mail设施的任何内容。

如果此解决方案适合您,您可以考虑替代 syslog 实现之一,如rsyslogsyslog-ng,它们提供额外的日志记录和存储选项。


Zor*_*che 9

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

#!/bin/bash
ssh $1 sudo tail -f $2
Run Code Online (Sandbox Code Playgroud)

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


gac*_*rux 5

我强烈推荐multitail用于高级日志查看。自我描述为类固醇的尾巴。