Keluarkan Rsyslog ke file log khusus

13

Adakah yang bisa mengatakan kepada saya apa yang saya lakukan salah di sini?

Inilah pertanyaan terakhir:

Mengapa ketika saya menggunakan perintah logger saya tidak bisa mengeluarkannya ke file log kustom /var/log?

Dalam skrip saya:

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

Dalam rsyslog.confI ditambahkan berikut ini ke akhir file:

local7.* /var/log/anm.log

Juga, skrip memiliki izin untuk /var/log/anm.logfile tersebut

* PEMBARUAN *

Jadi saya lupa memulai kembali layanan logging. Saya sudah mencoba me-reboot dan " service rsyslog restart" Masih tidak ada perubahan. Teks tes tidak muncul /var/log/anm.logtetapi muncul di/var/log/syslog

* PEMBARUAN *

Izin apa yang /var/log/"yourlogfilehere"dibutuhkan? Owner, Group, rwx?

Saya telah mencoba mengatur grp dan own untuk me-root dan ke nama pengguna yang menjalankan perintah logger. Juga tidak ada perubahan.

Saya juga mencoba membuat file log di dalam direktori khusus di /var/log. yaitu /var/log/anm/anm.logdan mengatur kedua jenis izin untuk direktori.

* PEMBARUAN *

rsyslogd sedang berjalan

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

dan ini adalah output dari /etc/rsyslog.conffile saya

#  /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

Saya juga mencoba memasukkannya /etc/rsyslog.d/50-default.conf(Saya menjalankan Ubuntu 12.04 LTS)

#  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

* PEMBARUAN *

Yah aku akhirnya menemukan jawabannya. Saya berharap seseorang telah menjawab ini untuk saya. Butuh beberapa hari untuk mencari tahu apa yang salah, tapi saya kira tidak banyak orang yang menggunakan superuser.

Masalahnya adalah dengan izin file dari file log kustom saat saya berteori awalnya. Saya pikir saya memiliki izin yang benar, tetapi ternyata pemilik harus syslogdan grup adm. Saya menentukan ini dengan membandingkan user.logfile. Setelah izin dimodifikasi dan diuji lagi, semua berfungsi dengan baik! Saya harap ini membantu orang lain di luar sana lebih cepat daripada saya dapat menemukan jawabannya.

Atomiklan
sumber
1
Saya melihat pos identik di SF - tolong jangan crosspost.
Journeyman Geek
Semua orang terus mengatakan kepada saya untuk memindahkan posting saya. Saya kira saya harus menghapus yang lain?
Atomiklan
1
ya. Anda juga dapat menandai pos Anda sendiri untuk meminta moderator untuk memindahkannya juga di masa mendatang
Journeyman Geek
"Tolong, butuh bantuan segera" juga bukan judul yang sangat membantu untuk pertanyaan itu. Saya pribadi juga merasa pertanyaan Anda sulit dibaca; dimana pertanyaan sebenarnya? Satu-satunya pertanyaan nyata yang dapat saya lihat adalah "izin apa yang dibutuhkan / var / log / somefile?" dan jawabannya adalah "biarkan syslogd menanganinya". Selain itu, itu banyak pembaruan yang lalu dan mungkin tidak lagi relevan.
CVn
Anda dapat memposting solusi Anda sebagai jawaban agar orang lain yang menghadapi masalah yang sama dapat melihatnya.
gronostaj

Jawaban:

6

Yah aku akhirnya menemukan jawabannya. Saya berharap seseorang telah menjawab ini untuk saya. Butuh beberapa hari untuk mencari tahu apa yang salah, tapi saya kira tidak banyak orang yang menggunakan superuser.

Masalahnya adalah dengan izin file dari file log kustom saat saya berteori awalnya. Saya pikir saya memiliki izin yang benar, tetapi ternyata pemilik harus "syslog" dan grup "adm". Saya menentukan ini dengan membandingkan dengan file user.log. Setelah izin dimodifikasi dan diuji lagi, semua berfungsi dengan baik! Saya harap ini membantu orang lain di luar sana lebih cepat daripada saya dapat menemukan jawabannya.

Inilah izin terakhirnya

-rw-r--r-- 1 syslog adm 0 Aug  3 05:09 anm.log
Atomiklan
sumber
"Saya pikir saya memiliki izin yang benar," menyiratkan bahwa Anda membuat file sendiri. Mengapa Anda tidak membiarkan daemon syslog membuatnya?
CVn
Pertanyaannya adalah: Mengapa ketika saya menggunakan perintah logger saya tidak bisa mendapatkannya untuk output ke file log kustom di / var / log? Saya hanya mencoba membiarkan syslog membuat file dan saya tidak bekerja. Bagaimanapun juga baik-baik saja. Saya tidak keberatan meminta skrip instal saya membuat file dan mengatur izin.
Atomiklan
1
Terasa seperti itu ketika detik = $$$
Atomiklan
Hai @ Antomiklan Terima kasih atas pertanyaan Anda yang menyelesaikan masalah saya yang persis sama. Namun saya bertanya-tanya mengapa file otomatis dibuat oleh rsyslog berada di bawah root / root bukan syslog / adm yang benar? Apakah Anda tahu mengapa?
Yudong Li
Terima kasih sobat! rupanya, upaya Anda baru saja menyelamatkan saya dari 2 hari debug syslog :) Dan dari komentar samar-samar @ MichaelKjörling dan @YudongLi saya pikir daemon membuat file sendiri sesuai dengan jalan di aturan konfigurasi. Setelah service restartitu tahu aturan dan pada panggilan pertama yang sesuai dari loggermembuat file dengan set izin yang benar.
xealits
1

@Atomiklan menyebutkan dia harus mengubah pemilik / grup file kustomnya menjadi syslog / adm. Saya mencobanya dan berhasil ...

Tetapi komentar dari @ MichaelKjörling sepertinya benar juga: mengapa tidak membiarkan daemon syslog membuat file?

Kunci dalam kasus saya (dan saya sarankan OP) adalah bahwa pengguna syslog tidak memiliki izin menulis ke direktori log kustom saya . Saya melakukan chmod o+w, restart rsyslog, dan file log saya dengan senang hati muncul di mana seharusnya ... dengan syslog / adm sebagai pengguna / grup.

Dan H
sumber
1
#$ModLoad imudp
#$UDPServerRun 514

harus:

$ModLoad imudp
$UDPServerRun 514

untuk menjalankan remote-logging!

rsyslog
sumber