Rsyslog düzgün çalışmıyor, hiçbir şey kaydetmiyor


11

Bir Debian sunucusu çalıştırıyorum ve birkaç gün önce benim rsyslog çok garip davranmaya başladı, daemon çalışıyor ama hiçbir şey yapmıyor gibi görünüyor. Birçok kişi sistemi kullanıyor ancak kök erişim hakkına sahip tek kişi benim.

Varsayılan rsyslogd yapılandırmasını kullanıyorum (alakalı olduğunu düşünüyorsanız, ekleyeceğim, ancak paketle birlikte gelir).

Tüm günlük dosyalarını döndürdükten sonra boş kaldılar:

# 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

Günlük yazmayı zorlamanın herhangi bir etkisi yoktur:

# logger hey
# ls -l /var/log/messages 
-rw-r----- 1 root adm 0 Jun 26 13:03 /var/log/messages

Lsof, rsyslogd dosyasında açık günlük dosyası olmadığını gösterir:

# 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

O kadar sinirli bile rsyslog paketini yeniden yüklemek, ama yine de bir şey günlüğü reddediyor:

# apt-get remove --purge rsyslog
# apt-get install rsyslog

Birisinin sistemi hacklediğini düşündüm, bu yüzden netstat tarafından gösterilen bağlantı noktalarıyla karşılaştırmak için uzak bir ana bilgisayarda gizleme işlemleri / bağlantı noktaları ve nmap bulma girişiminde rkhunter, chkrootkit'i çalıştırın. Ve bunun hiçbir şey ifade etmediğini biliyorum, ama her şey yolunda görünüyor. Sistem ayrıca gelen / giden bağlantılarla çok kısıtlayıcı olan bir iptables güvenlik duvarına sahiptir.

Bu beni deli ediyor, burada neler olduğuna dair bir fikrin var mı?

[EDIT - disk alanı bilgisi]

# 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

[DÜZENLEME - bilgi bilgisi]

Strace benim için iyi görünüyor

[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

Tam strace günlüğü indirilebilir burada


2
Günlük diski dolu mu?
Jenny D

Üzgünüm, bu bilgiyi eklemeyi unuttum, soruyu güncelleyeceğim. Ama hala günlük yazmak için yeterli alan var.
Victor Henriquez

2
deneyin ve strap -p <pid> veya rsyslog strace altında elle başlatın ve bir şey hakkında şikayet olup olmadığını kontrol edin
manjiki

İyi tavsiye, ne yazık ki alakalı bir şey bulamadım. Eksik bir şey bulabilmeniz için soruyu strace log ile güncelledim. Gerçekten sinirliyim.
Victor Henriquez

hata ayıklama modunda manuel olarak çalıştır (-d iirc ise), bu nedenle çatallanmaz veya strace'nin takip çatalları seçeneğini kullanmaz. Benim hatam, üzgünüm.
manjiki

Yanıtlar:


13

Büyük olasılıkla bir dosya sahipliği sorunu. rsyslog root olarak çalışmaya başlar ancak ayrıcalıkları bırakır ve kullanıcı syslog ( $ PrivDropToUser yapılandırma yönergesi ) olarak çalışır.

syslog dosyaları (auth.log, daemon.log, vb.) başlangıçta syslog: adm'a aittir, ancak sahipliğini root olarak değiştirirseniz (dosya listenizden göründüğü gibi), rsyslog'u HUP (yani yeniden yüklerseniz) veya yeniden başlatın, ayrıcalıkların olmaması nedeniyle bu dosyaları açmanın reddedileceğini unutmayın.

Günlük rotasyonundan sonra sahiplik değişikliği olduysa create, logrotate yapılandırmanızın seçeneğini işaretleyin. Ya create 0644 syslog admiçinde /etc/logrotate.d/rsyslogya da daha iyisi gibi yapılandırın /etc/logrotate.conf, modu, sahibi ve grubu atlayarak küresel olarak tanımlayın , sadece bu şekilde create(bu arada varsayılan yapılandırmadır), bu durumda dosyanın aynı değerleri kullanılır. man logrotateTüm ayrıntılar için danışın .

Rsyslog dosyasının bazı sürümleri, dosya sahipliğinin harici değişikliği için geçici bir çözüm olarak $ omfileForceChown yönergesini içerir , ancak önerilmez. Önerilen yol, sahipliği ve izinleri doğru şekilde yapılandırmaktır. Bu konu hakkında daha fazla bilgi bu bağlantıdan sonra bulunabilir.


1
Bu. Daha fazla tartışma ve ayrıntı için fırlatma rampasında rsyslogd hatasına bakın: bugs.launchpad.net/ubuntu/+source/rsyslog/+bug/940030
JustinC

Seni salla adamım, bu sorunu bularak iki gün kaybettim
deFreitas

2

Dosya izinlerinin tümü iyiyse ve logrotate doğru yapılandırıldıysa, bir sonraki adımınız rsyslog sistem çağrılarına göz atmak olacaktır.

# 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 ]
 ...

Yazım hatası bu dosyada düzeltildiği anda /etc/rsyslog.d/50-default.conf, syslog / var / log / syslog dosyasına tekrar yazmaya başladı!


0

Benim / var / log SSD üzerindeki aşınmayı azaltmak için bir ramdisk üzerinde oturuyordu ve ben sadece geçerli önyükleme daha fazla geçmişi vardı bir HDD taşımak istedim çünkü bu sorunu vardı.

Komik olan şey, bir ramdisk olduğundan, tek kullanıcı modunda kopyalanacak bir tane yoktu, bu yüzden izinlerin ve sahipliğin ne olması gerektiğini bilmiyordum! Duh.

Yeni konumunuzla ilgili kısa hikaye:

chmod 770 /var/log
chgrp syslog /var/log
initctl restart rsyslog

Rsyslog artık 'syslog' kullanıcısı, 'syslog' grubu olarak çalıştığından / var / log dosyasına yazabilecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.