web-dev-qa-db-fra.com

Rsyslog en sortie dans un fichier journal personnalisé

Quelqu'un peut-il me dire ce que j'ai mal fait ici?

Voici la question ultime:

Pourquoi, lorsque j'utilise la commande logger, je ne parviens pas à le faire sortir dans un fichier journal personnalisé au format /var/log?

Dans mon script:

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

Dans le rsyslog.conf, j'ai ajouté ce qui suit à la fin du fichier:

local7.* /var/log/anm.log

En outre, le script a la permission pour le fichier /var/log/anm.log

* UPDATE *

J'ai donc oublié de redémarrer les services de journalisation. J'ai essayé de redémarrer et "service rsyslog restart" Toujours pas de changement. Le texte de test n'apparaît pas dans /var/log/anm.log mais il apparaît dans /var/log/syslog

* UPDATE *

De quelles autorisations /var/log/"yourlogfilehere" a-t-il besoin? Owner, Group, rwx?

J'ai essayé de définir grp et own sur root et sur le nom d'utilisateur qui exécute la commande logger. Aucun changement avec soit.

J'ai également essayé de créer des fichiers journaux dans un répertoire personnalisé dans /var/log. c'est-à-dire /var/log/anm/anm.log et en définissant les deux types d'autorisations pour le répertoire.

* UPDATE *

rsyslogd est en cours d'exécution

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

et voici la sortie de mon fichier /etc/rsyslog.conf

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

J'ai aussi essayé de le mettre dans /etc/rsyslog.d/50-default.conf (je suis sous 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

* UPDATE *

Eh bien, j'ai finalement compris. Je souhaite que quelqu'un a répondu à cela pour moi. Il a fallu plusieurs jours pour comprendre ce qui n'allait pas, mais je suppose qu'il n'y a tout simplement pas beaucoup de gens sur le superutilisateur.

Le problème était avec les autorisations de fichier du fichier journal personnalisé, comme je l'avais théorisé à l'origine. Je pensais que les autorisations étaient correctes, mais il s'avère que le propriétaire doit être syslog et le groupe adm. J'ai déterminé cela en comparant avec le fichier user.log. Une fois que les autorisations ont été modifiées et testées à nouveau, tout fonctionne parfaitement! J'espère que cela aidera quelqu'un d'autre plus rapidement que je ne pouvais trouver de réponse.

13
Atomiklan

Eh bien, j'ai finalement compris. Je souhaite que quelqu'un a répondu à cela pour moi. Il a fallu plusieurs jours pour comprendre ce qui n'allait pas, mais je suppose qu'il n'y a tout simplement pas beaucoup de gens sur le superutilisateur.

Le problème était avec les autorisations de fichier du fichier journal personnalisé, comme je l'avais théorisé à l'origine. Je pensais avoir les autorisations correctes, mais il s'avère que le propriétaire doit être "syslog" et le groupe "adm". J'ai déterminé cela en comparant le fichier user.log. Une fois que les autorisations ont été modifiées et testées à nouveau, tout fonctionne parfaitement! J'espère que cela aidera quelqu'un d'autre plus rapidement que je ne pouvais trouver de réponse.

Voici les autorisations finales

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

@Atomiklan a mentionné qu'il devait changer le propriétaire/groupe de son fichier personnalisé en syslog/adm. J'ai essayé ça et ça a marché ...

Mais le commentaire de @ MichaelKjörling semblait également correct: pourquoi ne pas laisser le démon syslog créer le fichier?

La clé dans mon cas (et je suggère les OP) est que l'utilisateur de syslog n'a pas le droit d'écriture sur le répertoire de mon journal personnalisé . J'ai fait un chmod o+w, redémarré rsyslog et mon fichier journal est apparu avec bonheur là où il devrait avoir ... avec syslog/adm en tant qu'utilisateur/groupe.

1
Dan H
#$ModLoad imudp
#$UDPServerRun 514

doit être:

$ModLoad imudp
$UDPServerRun 514

exécuter l'enregistrement à distance!

1
rsyslog