是否有任何不错的工具可以在远程(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 实现之一,如rsyslog或syslog-ng,它们提供额外的日志记录和存储选项。
如果您在远程主机上的远程主机上设置基于密钥的 ssh 身份验证和 sudo,以允许在没有密码提示的情况下对日志文件运行 tail。构建一个执行您想要的操作的 taillog 脚本将非常容易,如下所示。这并不能真正避免 ssh,但它确实为您节省了几个步骤。
#!/bin/bash
ssh $1 sudo tail -f $2
Run Code Online (Sandbox Code Playgroud)
或者,您可以设置 syslog 将所有日志消息转发到中央系统,然后在 syslog 服务器上运行 tail 命令。只需查看中央系统上的日志文件即可。
归档时间: |
|
查看次数: |
23844 次 |
最近记录: |