我在 VPS(Ubuntu 14.04.2 LTS、内核 3.13.0-042stab094.8、rsyslog 7.4.4-1ubuntu2.5)上,kernel.log 保持为空,只有这一行:
rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
服务器已预先配置了 busybox 中的 syslogd 和 klogd。我卸载了它们,并使用 apt-get 安装了 rsyslog。一切似乎都运行正常。我在所有其他日志文件中都有条目。
我不确定这是否与这个错误有关:https://bugs.launchpad.net/ubuntu/+source/rsyslog/+bug/1366829
答案1
我认为 VPS 不是 VM,而是容器。出于安全原因,非特权共容器无权访问内核日志。
答案2
如果您不需要或者没有足够的系统访问权限来读取内核日志,您可以删除该imklog
模块(即尝试读取它的模块)
-module(load="imklog") # provides kernel logging support
+# module(load="imklog") # provides kernel logging support
这个答案对于 Docker 下的相同问题,建议使用以下命令,该命令可以合并到脚本中
sed -i '/imklog/s/^/#/' /etc/rsyslog.conf
答案3
读取/proc/kmsg
需要超级用户权限。您是否以 root 身份启动了 rsyslogd?
如果是,请运行命令ls -al /proc/kmsg
并将输出粘贴到这里。