Özel günlük dosyasına rsyslog çıktısı


13

Burada yanlış yaptığımı söyleyen var mı?

İşte nihai soru:

Logger komutunu kullandığımda neden özel bir günlük dosyasına çıktısını alamıyorum /var/log?

Senaryomda:

logger -i -t ANM -p local7.info "This is a local 7 test"

In rsyslog.confben dosyanın sonuna aşağıdaki eklenen:

local7.* /var/log/anm.log

Ayrıca, komut /var/log/anm.logdosyasının dosya için izni var

* GÜNCELLEME *

Bu yüzden günlük hizmetlerini yeniden başlatmayı unuttum. Yeniden başlatmayı denedim ve " service rsyslog restart" Hala değişiklik yok. Test metni görünmüyor /var/log/anm.logancak içinde görünüyor/var/log/syslog

* GÜNCELLEME *

Hangi izinlere /var/log/"yourlogfilehere"ihtiyaç var? Owner, Group, rwx?

Ben kök ve logger komutunu çalıştıran kullanıcı adına grp ve kendi ayarını denedim. İkisinde de değişiklik yok.

Ayrıca özel bir dizin içinde günlük dosyaları oluşturmayı denedim /var/log. ie /var/log/anm/anm.logve dizin için her iki izin türünün ayarlanması.

* GÜNCELLEME *

rsyslogd çalışıyor

syslog     598  0.0  0.1  31060  1292 ?        Sl   03:02   0:02 rsyslogd -c5

ve burada benim çıktısı olan /etc/rsyslog.confdosyanın

#  /etc/rsyslog.conf    Configuration file for rsyslog.
#
#                       For more information see
#                       /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
#
#  Default logging rules can be found in /etc/rsyslog.d/50-default.conf


#################
#### MODULES ####
#################

$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
#$ModLoad immark  # provides --MARK-- message capability

# provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514


###########################
#### GLOBAL DIRECTIVES ####
###########################

#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Filter duplicated messages
$RepeatedMsgReduction on

#
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog

#
# Where to place spool files
#
$WorkDirectory /var/spool/rsyslog

#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf

local7.*        /var/log/anm.log

Ben de koymak denedim /etc/rsyslog.d/50-default.conf(Ubuntu 12.04 LTS çalıştırıyorum)

#  Default rules for rsyslog.
#
#                       For more information see rsyslog.conf(5) and /etc/rsyslog.conf

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
#cron.*                         /var/log/cron.log
#daemon.*                       -/var/log/daemon.log
kern.*                          -/var/log/kern.log
#lpr.*                          -/var/log/lpr.log
mail.*                          -/var/log/mail.log
#user.*                         -/var/log/user.log
local7.*                        /var/log/anm.log

* GÜNCELLEME *

Sonunda anladım. Keşke birisi bunu benim için cevaplasaydı. Neyin yanlış olduğunu anlamak için birkaç gün sürdü, ama sanırım süper kullanıcıda çok fazla insan yok.

Sorun, başlangıçta teorik olarak özel günlük dosyasının dosya izinleriyle ilgiliydi. İzinlerin doğru olduğunu düşündüm, ancak sahibinin syslogve grubun olması gerekiyor adm. Bunu user.logdosya ile karşılaştırarak belirledim . İzinler değiştirilip tekrar test edildikten sonra, hepsi mükemmel çalışır! Umarım bu, cevap bulabildiğimden daha hızlı başka birine yardımcı olur.


1
Ben SF üzerinde aynı bir yazı gördüm - lütfen crosspost etmeyin.
Journeyman Geek

Herkes bana görevimi taşımamı söyledi. Sanırım diğerlerini silmeliyim?
Atomiklan

1
Evet. Ayrıca kendi gönderilerinizi bir moderatörden ileride de taşımasını istemek için işaretleyebilirsiniz
Journeyman Geek

"Lütfen, derhal yardıma ihtiyacım var" da soru için çok yararlı bir başlık değil. Ayrıca kişisel olarak sorunuzu okumayı zor buluyorum; asıl soru nerede Görebileceğim tek gerçek soru "/ var / log / somefile için hangi izinlere ihtiyaç var?" ve bunun cevabı "syslogd'ın halletmesine izin ver" olmalıdır. Ayrıca, bu birçok güncellemeydi ve büyük olasılıkla artık geçerli değil.
CVn

Çözümünüzü aynı sorunla karşılaşan diğer kişilerin görebilmesi için bir yanıt olarak gönderebilirsiniz.
gronostaj

Yanıtlar:


6

Sonunda anladım. Keşke birisi bunu benim için cevaplasaydı. Neyin yanlış olduğunu anlamak için birkaç gün sürdü, ama sanırım süper kullanıcıda çok fazla insan yok.

Sorun, başlangıçta teorik olarak özel günlük dosyasının dosya izinleriyle ilgiliydi. Ben izinleri doğru olduğunu düşündüm, ama sahibi "syslog" ve "adm" grubu olması gerektiği ortaya çıktı. Bunu user.log dosyasıyla karşılaştırarak belirledim. İzinler değiştirilip tekrar test edildikten sonra, hepsi mükemmel çalışır! Umarım bu, cevap bulabildiğimden daha hızlı bir başkasına yardımcı olur.

İşte son izinler

-rw-r--r-- 1 syslog adm 0 Aug  3 05:09 anm.log

"İzinleri doğru bulduğumu sanıyordum", dosyayı kendiniz oluşturduğunuzu gösterir. Neden syslog arka plan programının oluşturmasına izin vermediniz?
CVn

Soru şuydu: Neden logger komutunu kullandığımda / var / log içindeki özel bir günlük dosyasına çıktı alamıyorum? Syslog'un dosyayı oluşturmasına izin vermeyi denedim ve çalışmıyor. Her iki durumda da iyi. Kurulum betiğimin dosyayı oluşturmasını ve izinleri ayarlamasını umursamıyorum.
Atomiklan

1
Saniye = $$$
Atomiklan

Merhaba @Atomiklan Sorunuz için teşekkürler aynı sorunumu çözüyor. Ancak neden rsyslog tarafından oluşturulan dosya doğru syslog / adm yerine kök / kök altında olduğunu merak ediyorum? neden olduğu hakkında bir fikrin var mı?
Yudong Li

teşekkürler dostum! Görünüşe göre, çabanız beni 2 gün hata ayıklama syslog'dan kurtardı :) Ve @ MichaelKjörling ve @YudongLi'nin belirsiz yorumlarından, daemon'un yapılandırma kuralındaki yola göre dosyayı kendi başına oluşturduğunu düşündüm. Sonra service restarto kuralı bilir ve öncelikle uygun çağrı üzerine gelen loggerdoğru izinleri seti ile dosya oluşturur.
xealits

1

@Atomiklan, özel dosyasının sahibini / grubunu syslog / adm olarak değiştirmesi gerektiğini söyledi. Bunu denedim ve işe yaradı ...

Ama @ MichaelKjörling'in yorumu da doğru görünüyordu: neden sadece syslog arka plan programının dosyayı oluşturmasına izin vermiyorsunuz?

Benim durumumda anahtar syslog kullanıcı benim özel günlüğünün yazma iznine sahip olmadığı (ve ben OP en önermek) dizinine . chmod o+wYeniden başlatılan bir rsyslog yaptım ve günlük dosyam mutlu bir şekilde nerede olması gerektiği ortaya çıktı ... kullanıcı / grup olarak syslog / adm ile.


1
#$ModLoad imudp
#$UDPServerRun 514

olmalıdır:

$ModLoad imudp
$UDPServerRun 514

uzaktan günlüğü çalıştırmak için!

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.