如何将rsyslog消息重定向到其他路径而不是/ var / log

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将rsyslog消息重定向到其他路径而不是/ var / log相关的知识,希望对你有一定的参考价值。

我正在使用rsyslog工具进行记录。一切正常。我可以在/var/log/MYlog.log路径中记录消息。

但是现在我的要求是将消息记录在其他路径中,例如/opt/log/Somepath.log而不是/var/log

我曾尝试在/etc/rsyslog.conf文件中修改Path,但只有在/var/log/下给出日志路径时,此方法才有效。似乎没有其他工作。我希望日志路径是类似于/opt/log/somePath.log的可配置路径。

我在文件中有一个这样的条目,它可以正常工作:

local6.* /var/log/Mylog.log

现在,如果我这样更改它:

local6.* /opt/log/Mylog.log

它不会在/opt/log中生成Mylog.log文件。目录/opt/log存在。

修改配置文件/etc/rsyslog.conf之后,我将重新启动守护进程。

`/etc/init.d/rsyslog restart`

并且/var/log/opt/log都具有相同的权限(我更改了/opt/log的权限类似于/var/log,所以没有任何权限和安全问题。

我正在使用CentO 6.3。这是我的本地VM,没有NFS机会。

有什么方法或技巧可以实现这一目标吗?

答案

问题是selinux。 SELinux将阻止标记为syslogd_t的进程写入(可能)标记为default_t的文件。因此,我们需要使用syslogd_t可以写入的内容来标记文件。 /var/log中的文件标记为var_log_t,可以肯定地写入syslogd_t类型。您可以通过更改/ opt / log目录的标签来临时实现此目的。

chcon -R -t var_log_t /opt/log

您可以使用]查看修改后的标签>

  ls -Z /opt/log

将给输出类似这样的东西

drwxrwxrwx. root root unconfined_u:object_r:var_log_t:s0 log

因此,在此之后,您将能够将系统日志重定向到任何其他目录。对于永久解决方案,您需要编写SELinux策略。

以上是关于如何将rsyslog消息重定向到其他路径而不是/ var / log的主要内容,如果未能解决你的问题,请参考以下文章

rsyslog

如果发生数据库错误,如何将页面重定向到其他页面

为啥我的 .htaccess 文件重定向到完整的服务器路径而不是相对路径?

如何从 HTTPS 重定向到 HTTP 而不会出现烦人的错误消息

如何使用 301 重定向而不是 302 将 HTTP 站点重定向到 HTTPS 站点

如何重定向到具有多个域的https cpanel