html tool

2023年10月11日星期三

轉:處理問題 rsyslog open error: Permission denied

現象: 

配置rsyslog為非/var/log中後,對應的目錄下無log文件,/var/log/message中出現如下提示:

Oct 11 15:04:58 localhost rsyslogd: file '/data/log/127.0.0.1.log': open error: Permission denied [v8.24.0-57.el7_9 try http://www.rsyslog.com/e/2433 ]

Oct 11 15:04:58 localhost rsyslogd: file '/data/log/127.0.0.1.log': open error: Permission denied [v8.24.0-57.el7_9 try http://www.rsyslog.com/e/2433 ]


解決:

查了一下本地是 selinux開啟引起的

查找問題方式 參考:https://juejin.cn/s/rsyslogd%20file%20open%20error%20permission%20denied
如下:

rsyslogd是一个系统日志守护进程,用于管理系统日志。如果出现“rsyslogd file open error permission denied”的错误,通常是因为rsyslogd没有足够的权限访问相关的日志文件。

解决这个问题的方法可以尝试以下几种:

  1. 检查日志文件的权限是否正确。在大多数情况下,系统日志文件位于/var/log目录下。您可以使用命令“ls -l /var/log”检查文件的权限。确保文件的权限设置为“rw-r--r--”,即所有者可读可写,其他用户只可读。

  2. 检查rsyslogd的运行用户。默认情况下,rsyslogd是以“syslog”用户运行的。请确保该用户有足够的权限读取日志文件。您可以使用命令“ps -ef | grep rsyslogd”查找rsyslogd的运行用户。

  3. 检查SELinux的安全策略。如果您的系统启用了SELinux,可能会导致rsyslogd无法读取日志文件。您可以使用命令“sestatus”检查SELinux的状态,如果发现SELinux启用并且当前策略是“enforcing”,则可以使用命令“setsebool -P syslogd_enable_selinux 1”来允许rsyslogd读取日志文件。

  4. 检查磁盘空间是否充足。如果系统磁盘空间不足,可能会导致rsyslogd无法写入日志文件,从而出现权限错误。请检查磁盘空间使用情况,确保磁盘空间充足。

解決SELinux 可以關閉,也可以添加對應的策略,
添加策略方式參考: https://codeantenna.com/a/m1EtGEYhe1
# 根据需要添加自定义的文件或目录 [root@localhost data]# semanage fcontext -a -t var_log_t "/data/log(/.*)?" [root@localhost data]# semanage fcontext -a -t var_log_t "/data/log/.*" [root@localhost data]# semanage fcontext -a -t var_log_t -f -d "/data/log" # 修复目录及其子文件目录的context [root@localhost data]# restorecon -Rv /data/log # 重启rsyslogd,此时selinux可以运行rsyslog访问自定义的路径了 [root@localhost data]# service rsyslogd restart

没有评论:

发表评论