Rsyslog in uscita sul file di registro personalizzato


13

Qualcuno può dirmi cosa ho fatto di sbagliato qui?

Ecco l'ultima domanda:

Perché quando utilizzo il comando logger non riesco a visualizzarlo in un file di registro personalizzato /var/log?

Nella mia sceneggiatura:

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

Nel rsyslog.confho aggiunto quanto segue alla fine del file:

local7.* /var/log/anm.log

Inoltre, lo script dispone dell'autorizzazione per il /var/log/anm.logfile

* AGGIORNARE *

Quindi ho dimenticato di riavviare i servizi di registrazione. Ho provato a riavviare e " service rsyslog restart" Ancora nessuna modifica. Il testo del test non viene visualizzato in /var/log/anm.logma viene visualizzato in/var/log/syslog

* AGGIORNARE *

Quali autorizzazioni sono /var/log/"yourlogfilehere"necessarie? Owner, Group, rwx?

Ho provato a impostare grp e own su root e sul nome utente che esegue il comando logger. Nessun cambiamento con nessuno dei due.

Ho anche provato a creare file di registro all'interno di una directory personalizzata in /var/log. vale a dire /var/log/anm/anm.loge impostare entrambi i tipi di autorizzazioni per la directory.

* AGGIORNARE *

rsyslogd è in esecuzione

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

e qui è l'output dal mio /etc/rsyslog.conffile

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

Ho anche provato a inserirlo /etc/rsyslog.d/50-default.conf(sto eseguendo 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

* AGGIORNARE *

Bene, finalmente l'ho capito. Vorrei che qualcuno mi avesse risposto. Ci sono voluti diversi giorni per capire cosa c'era che non andava, ma immagino che non ci siano molte persone su superutente.

Il problema riguardava le autorizzazioni per i file del file di registro personalizzato, come avevo inizialmente teorizzato. Pensavo di avere i permessi corretti, ma risulta che il proprietario deve essere sysloge il gruppo adm. L'ho determinato confrontandolo con il user.logfile. Una volta modificate e testate nuovamente le autorizzazioni, tutto funziona perfettamente! Spero che questo aiuti qualcun altro là fuori più velocemente di quanto sia stato in grado di trovare una risposta.


1
Ho visto un post identico su SF - per favore non fare un crosspost.
Journeyman Geek

Tutti continuavano a dirmi di spostare il mio posto. Immagino che dovrei eliminare gli altri?
Atomiklan,

1
Sì. Puoi anche contrassegnare i tuoi post per chiedere a un moderatore di spostarlo anche in futuro
Journeyman Geek

"Per favore, hai bisogno di assistenza immediata", inoltre, non è un titolo molto utile per la domanda. Personalmente trovo difficile leggere la tua domanda; dov'è la vera domanda? L'unica vera domanda che posso vedere è "quali autorizzazioni sono necessarie / var / log / somefile?" e la risposta dovrebbe essere "lascia che sia il syslogd a gestirlo". Inoltre, quello era molti aggiornamenti fa e quindi presumibilmente non è più pertinente.
un CVn il

Puoi pubblicare la tua soluzione come risposta in modo che altre persone che affrontano lo stesso problema possano vederla.
gronostaj,

Risposte:


6

Bene, finalmente l'ho capito. Vorrei che qualcuno mi avesse risposto. Ci sono voluti diversi giorni per capire cosa c'era che non andava, ma immagino che non ci siano molte persone su superutente.

Il problema riguardava le autorizzazioni per i file del file di registro personalizzato, come avevo inizialmente teorizzato. Pensavo di avere i permessi corretti, ma risulta che il proprietario deve essere "syslog" e il gruppo "adm". Ho determinato questo confrontando con il file user.log. Una volta modificate e testate nuovamente le autorizzazioni, tutto funziona perfettamente! Spero che questo aiuti qualcun altro là fuori più velocemente di quanto sia stato in grado di trovare una risposta.

Ecco le autorizzazioni finali

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

"Pensavo di avere i permessi corretti" implica che hai creato il file da solo. Perché non hai semplicemente permesso al demone syslog di crearlo?
un CVn il

La domanda era: perché quando uso il comando logger non riesco a visualizzarlo in un file di registro personalizzato in / var / log? Ho appena provato a consentire a syslog di creare il file e non funziona. Ad ogni modo va bene comunque. Non mi dispiace che il mio script di installazione crei il file e imposti le autorizzazioni.
Atomiklan,

1
Ci si sente quando i secondi = $$$
Atomiklan il

Ciao @Atomiklan Grazie per la tua domanda risolve esattamente il mio stesso problema. Tuttavia mi chiedo perché il file creato automaticamente da rsyslog si trovi in ​​root / root anziché nel corretto syslog / adm? Hai idea del perché?
Yudong Li,

grazie uomo! apparentemente, il tuo sforzo mi ha appena salvato da 2 giorni di debug di syslog :) E dai vaghi commenti di @ MichaelKjörling e @YudongLi ho pensato che il demone crea il file da solo secondo il percorso nella regola di configurazione. Dopo service restartche conosce la regola e alla prima chiamata appropriata da loggercrea il file con le autorizzazioni corrette impostate.
Xealits,

1

@Atomiklan ha detto che ha dovuto cambiare il proprietario / gruppo del suo file personalizzato in syslog / adm. L'ho provato e ha funzionato ...

Ma anche il commento di @ MichaelKjörling sembrava giusto: perché non lasciare che il demone syslog crei il file?

La chiave nel mio caso (e suggerisco i PO) è che l'utente syslog non aveva i permessi di scrittura per la directory del mio registro personalizzato . Ho fatto un chmod o+wriavviato rsyslog e il mio file di registro è apparso felicemente dove avrebbe dovuto ... con syslog / adm come utente / gruppo.


1
#$ModLoad imudp
#$UDPServerRun 514

deve essere:

$ModLoad imudp
$UDPServerRun 514

per eseguire la registrazione remota!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.