Rsyslog sortie dans un fichier journal personnalisé

13

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

Voici la question ultime:

Pourquoi, lorsque j'utilise la commande logger, ne puis-je pas la faire sortir dans un fichier journal personnalisé /var/log?

Dans mon script:

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

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

local7.* /var/log/anm.log

En outre, le script a l'autorisation pour le /var/log/anm.logfichier

* MISE À JOUR *

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

* MISE À JOUR *

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

J'ai essayé de définir grp et own sur root et sur le nom d'utilisateur exécutant la commande logger. Aucun changement non plus.

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

* MISE À JOUR *

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 /etc/rsyslog.conffichier

#  /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 également essayé de l'installer /etc/rsyslog.d/50-default.conf(j'utilise 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

* MISE À JOUR *

Eh bien, j'ai finalement compris. Je souhaite que quelqu'un ait répondu à ma question. 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 superutilisateur.

Le problème était lié aux autorisations de fichier du fichier journal personnalisé, comme je l'avais théorisé à l'origine. Je pensais que j'avais les autorisations correctes, mais il s'avère que le propriétaire doit être sysloget le groupe adm. J'ai déterminé cela en comparant au user.logfichier. Une fois les autorisations modifiées et testées à nouveau, tout fonctionne parfaitement! J'espère que cela aide quelqu'un d'autre plus rapidement que je n'ai pu trouver de réponse.

Atomiklan
la source
1
J'ai vu un article identique sur SF - veuillez ne pas crosspost.
Journeyman Geek
Tout le monde me disait de déplacer mon poste. Je suppose que je devrais supprimer les autres?
Atomiklan
1
Ouaip. Vous pouvez également signaler vos propres messages pour demander à un modérateur de le déplacer également à l'avenir
Journeyman Geek
"S'il vous plaît, avez besoin d'une assistance immédiate" n'est pas non plus un titre très utile pour la question. Personnellement, je trouve également votre question difficile à lire; où est la vraie question? La seule vraie question que je peux voir est "de quelles autorisations / var / log / somefile a-t-il besoin?" et la réponse à cela devrait être "laissez le syslogd s'en occuper". En outre, il y a eu de nombreuses mises à jour il y a peu de temps et donc sans doute plus pertinentes.
un CVn
Vous pouvez publier votre solution comme réponse pour que les autres personnes confrontées au même problème puissent la voir.
gronostaj

Réponses:

6

Eh bien, j'ai finalement compris. Je souhaite que quelqu'un ait répondu à ma question. 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 superutilisateur.

Le problème était lié aux autorisations de fichier du fichier journal personnalisé, comme je l'avais théorisé à l'origine. Je pensais que j'avais 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 les autorisations modifiées et testées à nouveau, tout fonctionne parfaitement! J'espère que cela aide quelqu'un d'autre plus rapidement que je n'ai pu trouver de réponse.

Voici les autorisations finales

-rw-r--r-- 1 syslog adm 0 Aug  3 05:09 anm.log
Atomiklan
la source
«Je pensais que j'avais les autorisations correctes» implique que vous avez créé le fichier vous-même. Pourquoi n'avez-vous pas simplement laissé le démon syslog le créer?
un CVn
La question était: pourquoi, lorsque j'utilise la commande logger, ne puis-je pas la faire sortir dans un fichier journal personnalisé dans / var / log? J'ai juste essayé de laisser syslog créer le fichier et je ne travaille pas. Quoi qu'il en soit, tout va bien. Cela ne me dérange pas que mon script d'installation crée le fichier et définisse les autorisations.
Atomiklan
1
Ça fait comme quand secondes = $$$
Atomiklan
Salut @Atomiklan Merci pour votre question résout exactement mon même problème. Cependant, je me demande pourquoi le fichier créé automatiquement par rsyslog est sous root / root au lieu du bon syslog / adm? Tu sais pourquoi?
Yudong Li
Merci mec! apparemment, votre effort vient de me sauver de 2 jours de débogage de syslog :) Et à partir des commentaires vagues de @ MichaelKjörling et @YudongLi, j'ai pensé que le démon crée le fichier par lui-même selon le chemin dans la règle de configuration. Une fois service restartqu'il connaît la règle et lors du premier appel approprié, il loggercrée le fichier avec les autorisations appropriées définies.
xealits
1

@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 exact: pourquoi ne pas simplement laisser le démon syslog créer le fichier?

La clé dans mon cas (et je suggère les OP) est que l'utilisateur syslog n'avait pas la permission d'écrire dans 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 aurait dû ... avec syslog / adm comme utilisateur / groupe.

Dan H
la source
1
#$ModLoad imudp
#$UDPServerRun 514

doit être:

$ModLoad imudp
$UDPServerRun 514

pour exécuter la journalisation à distance!

rsyslog
la source