首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rsyslog没有正常工作,它没有记录任何东西。

Rsyslog没有正常工作,它没有记录任何东西。
EN

Server Fault用户
提问于 2013-06-27 09:55:10
回答 3查看 85.3K关注 0票数 13

我正在运行一个Debian服务器,几天前,我的rsyslog开始表现得非常奇怪,守护进程正在运行,但它似乎什么也没做。很多人使用这个系统,但我是唯一一个拥有(合法)根访问权限的人。

我使用的是默认的rsyAdd.1-d配置(如果您认为相关,我会附加它,但这是包附带的配置)。

在我旋转所有日志文件之后,它们仍然是空的:

代码语言:javascript
复制
# ls -l /var/log/*.log
-rw-r--r-- 1 root root 0 Jun 27 00:25 /var/log/alternatives.log
-rw-r----- 1 root adm  0 Jun 26 13:03 /var/log/auth.log
-rw-r----- 1 root adm  0 Jun 26 13:03 /var/log/daemon.log
-rw-r--r-- 1 root root 0 Jun 27 00:25 /var/log/dpkg.log
-rw-r----- 1 root adm  0 Jun 26 13:03 /var/log/kern.log
-rw-r----- 1 root adm  0 Jun 26 13:03 /var/log/lpr.log
-rw-r----- 1 root adm  0 Jun 26 13:03 /var/log/mail.log
-rw-r----- 1 root adm  0 Jun 26 13:03 /var/log/user.log

任何强迫日志写入的尝试都不会产生任何效果:

代码语言:javascript
复制
# logger hey
# ls -l /var/log/messages 
-rw-r----- 1 root adm 0 Jun 26 13:03 /var/log/messages

Lsof显示,any没有打开任何日志文件:

代码语言:javascript
复制
# lsof -p 1855
COMMAND   PID USER   FD   TYPE     DEVICE SIZE/OFF       NODE NAME
rsyslogd 1855 root  cwd    DIR      202,0     4096          2 /
rsyslogd 1855 root  rtd    DIR      202,0     4096          2 /
rsyslogd 1855 root  txt    REG      202,0   342076      21649 /usr/sbin/rsyslogd
rsyslogd 1855 root  mem    REG      202,0    38556      32153 /lib/i386-linux-gnu/i686/cmov/libnss_nis-2.13.so
rsyslogd 1855 root  mem    REG      202,0    79728      32165 /lib/i386-linux-gnu/i686/cmov/libnsl-2.13.so
rsyslogd 1855 root  mem    REG      202,0    26456      32163 /lib/i386-linux-gnu/i686/cmov/libnss_compat-2.13.so
rsyslogd 1855 root  mem    REG      202,0   297500    1061058 /usr/lib/rsyslog/imuxsock.so
rsyslogd 1855 root  mem    REG      202,0    42628      32170 /lib/i386-linux-gnu/i686/cmov/libnss_files-2.13.so
rsyslogd 1855 root  mem    REG      202,0    22784    1061106 /usr/lib/rsyslog/imklog.so
rsyslogd 1855 root  mem    REG      202,0  1401000      32169 /lib/i386-linux-gnu/i686/cmov/libc-2.13.so
rsyslogd 1855 root  mem    REG      202,0    30684      32175 /lib/i386-linux-gnu/i686/cmov/librt-2.13.so
rsyslogd 1855 root  mem    REG      202,0     9844      32157 /lib/i386-linux-gnu/i686/cmov/libdl-2.13.so
rsyslogd 1855 root  mem    REG      202,0   117009      32154 /lib/i386-linux-gnu/i686/cmov/libpthread-2.13.so
rsyslogd 1855 root  mem    REG      202,0    79980      17746 /usr/lib/libz.so.1.2.3.4
rsyslogd 1855 root  mem    REG      202,0    18836    1061094 /usr/lib/rsyslog/lmnet.so
rsyslogd 1855 root  mem    REG      202,0   117960      31845 /lib/i386-linux-gnu/ld-2.13.so
rsyslogd 1855 root    0u  unix 0xebe8e800      0t0        640 /dev/log
rsyslogd 1855 root    3u  FIFO        0,5      0t0       2474 /dev/xconsole
rsyslogd 1855 root    4u  unix 0xebe8e400      0t0        645 /var/spool/postfix/dev/log
rsyslogd 1855 root    5r   REG        0,3        0 4026532176 /proc/kmsg

我非常沮丧,甚至重新安装了rsyslog包,但它仍然拒绝记录任何内容:

代码语言:javascript
复制
# apt-get remove --purge rsyslog
# apt-get install rsyslog

我以为有人入侵了这个系统,所以运行rkhunter、chkrootkit,取消隐藏,试图在远程主机中查找隐藏进程/端口和nmap,以便与netstat显示的端口进行比较。我知道这并不意味着什么,但一切看起来都很好。系统还有一个iptables防火墙,它对传入/传出连接非常有限制。

我快疯了,知道这是怎么回事吗?

编辑-磁盘空间信息

代码语言:javascript
复制
# df -h
Filesystem            Size  Used Avail Use% Mounted on
rootfs                 24G   22G  629M  98% /
/dev/root              24G   22G  629M  98% /
devtmpfs               10M  112K  9.9M   2% /dev
tmpfs                  76M   48K   76M   1% /run
tmpfs                 5.0M     0  5.0M   0% /run/lock
tmpfs                 151M   40K  151M   1% /tmp
tmpfs                 151M     0  151M   0% /run/shm

编辑- strace信息

斯特拉斯看起来挺适合我的

代码语言:javascript
复制
[pid 28824] access("/var/log/auth.log", F_OK) = 0
[pid 28824] access("/var/log/syslog", F_OK) = 0
[pid 28824] access("/var/log/daemon.log", F_OK) = 0
[pid 28824] access("/var/log/kern.log", F_OK) = 0
[pid 28824] access("/var/log/lpr.log", F_OK) = 0
[pid 28824] access("/var/log/mail.log", F_OK) = 0
[pid 28824] access("/var/log/user.log", F_OK) = 0
[pid 28824] access("/var/log/mail.info", F_OK) = 0
[pid 28824] access("/var/log/mail.warn", F_OK) = 0
[pid 28824] access("/var/log/mail.err", F_OK) = 0
[pid 28824] access("/var/log/news/news.crit", F_OK) = 0
[pid 28824] access("/var/log/news/news.err", F_OK) = 0
[pid 28824] access("/var/log/news/news.notice", F_OK) = 0
[pid 28824] access("/var/log/debug", F_OK) = 0
[pid 28824] access("/var/log/messages", F_OK) = 0

完整的strace日志可以从这里下载。

EN

回答 3

Server Fault用户

发布于 2019-06-21 10:41:01

如果文件权限都很好,并且日志旋转配置正确,那么下一步将是查看rsyslog系统调用。

代码语言:javascript
复制
# find the start command 
me@d2-slprod02:~$ sudo systemctl status rsyslog
● rsyslog.service - System Logging Service
   Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-06-21 10:04:43 CEST; 2h 26min ago
     Docs: man:rsyslogd(8)
           http://www.rsyslog.com/doc/
 Main PID: 18753 (rsyslogd)
    Tasks: 4
   Memory: 1.4M
      CPU: 291ms
   CGroup: /system.slice/rsyslog.service
           └─18753 /usr/sbin/rsyslogd -n

 # let's have a look at syscalls.
 sudo strace /usr/sbin/rsyslogd -n
 ...
 write(2, "rsyslogd: error during parsing f"..., 206rsyslogd: error during parsing file /etc/rsyslog.d/50-default.conf, on or before line 8: warnings occured in file '/etc/rsyslog.d/50-default.conf' around line 8 [v8.16.0 try http://www.rsyslog.com/e/2207 ]
 ...

在此文件/etc/rsyslog.d/50-default.conf中修复了我的错误之后,syslog又开始写入/var/log/syslog!

票数 2
EN

Server Fault用户

发布于 2015-01-09 00:52:06

我遇到了这个问题,因为我的/var/log驻留在ramdisk上,以减少SSD的磨损,我想将它移到HDD中,所以我有更多的历史记录,不仅仅是当前的引导。

有趣的是,因为它是一个ramdisk,我没有一个可以在单用户模式下复制的磁盘,所以我不知道权限和所有权应该是什么!是啊。

简短的故事,关于你的新位置:

代码语言:javascript
复制
chmod 770 /var/log
chgrp syslog /var/log
initctl restart rsyslog

Rsyslog现在可以写入/var/log,因为它以'syslog‘用户、组'syslog’运行。

票数 0
EN

Server Fault用户

发布于 2020-05-01 02:54:05

今天遇到了权限问题--在我的例子中,是SELINUX关闭了它。rsyslog正在推送到专用挂载,并拒绝权限。

我是如何解决这一问题的:

代码语言:javascript
复制
ls -Zd /var/log
drwxr-xr-x root root system_u:object_r:var_log_t:s0  /var/log

根据这些信息,我将更改应用到rsyslog位置:

代码语言:javascript
复制
chcon -tR var_log_t /new/directory

重新启动rsyslog并立即看到成功运行。将其他RHEL服务器链接到日志服务器,并观察其他RHEL服务器立即开始向其提供信息。注意,该目录在只有600个权限的情况下运行良好。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/518975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档