我遇到了一个问题。我有 2 个正在运行的虚拟机实例,我想设置从 1 个虚拟机传输到另一个虚拟机的日志(让我们将它们标记为客户端和服务器)。我设置了一切。我的客户端 rsyslog 包含以下内容:
. @@192.168.174.132:515
意思是通过 tcp 将本地日志传输到端口 515 上的 192.168.174.132。在服务器端,我安装了 rsyslog-mysql 并且我的服务器配置包含以下内容:
$ModLoad imtcp $InputTCPServerRun 515
我还安装了 loganalyzer。所以,一切都很好,但问题是:我关闭了远程服务器并在客户端 vm 上运行了几次此代码:
<?php
openlog("php_script_test", LOG_PID | LOG_PERROR, LOG_LOCAL0);
$access = date("Y/m/d H:i:s");
syslog(LOG_CRIT, "This is to be sent after shutdown: $access");
closelog();
然后我运行远程虚拟机,这些消息不会发送到远程虚拟机。是否有任何配置选项可以使客户端将日志保存在本地并在远程服务器启动时将它们发送到远程服务器?我尝试使用 $WorkDirectory 选项但失败了。我的 rsyslog 版本是 4.6.4,我的操作系统是 Debian 6。
谢谢你。