Вывод Rsyslog в пользовательский файл журнала

13

Может кто-нибудь сказать мне, что я здесь не так сделал?

Вот главный вопрос:

Почему, когда я использую команду logger, я не могу получить ее для вывода в пользовательский файл журнала /var/log?

В моем сценарии:

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

В rsyslog.confконце я добавил следующее:

local7.* /var/log/anm.log

Также у скрипта есть разрешение на /var/log/anm.logфайл

* ОБНОВИТЬ *

Поэтому я забыл перезапустить сервисы регистрации. Я попытался перезагрузиться и " service rsyslog restart" Все еще без изменений. Тестовый текст не отображается в, /var/log/anm.logно он появляется в/var/log/syslog

* ОБНОВИТЬ *

Какие разрешения /var/log/"yourlogfilehere"нужны? Owner, Group, rwx?

Я попытался установить grp и own для root и для имени пользователя, запустив команду logger. Без изменений ни с одним.

Я также попытался создать файлы журналов внутри пользовательского каталога в /var/log. т.е. /var/log/anm/anm.logи установка обоих типов разрешений для каталога.

* ОБНОВИТЬ *

rsyslogd работает

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

и вот вывод из моего /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

Я также попытался вставить его /etc/rsyslog.d/50-default.conf(я использую 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

* ОБНОВИТЬ *

Ну, я наконец понял это. Я хотел бы, чтобы кто-то ответил на это для меня. Потребовалось несколько дней, чтобы понять, что было не так, но я думаю, что на суперпользователя не так много людей.

Проблема была с правами доступа к файлу пользовательского журнала, как я изначально теоретизировал. Я думал, что у меня были правильные разрешения, но оказывается, что владелец должен быть syslogи группа adm. Я определил это путем сравнения с user.logфайлом. Как только разрешения были изменены и проверены снова, все работает отлично! Я надеюсь, что это поможет кому-то еще быстрее, чем я смог найти ответ.

Atomiklan
источник
1
Я видел одинаковый пост на SF - пожалуйста, не кросспоста.
Подмастерье Компьютерщик
Все говорили, чтобы я переместил мой пост. Я думаю, я должен удалить остальные?
Атомиклан
1
Ага. Вы также можете пометить свои собственные сообщения, чтобы попросить модератора переместить их в будущем
Journeyman Geek
«Пожалуйста, срочно нужна помощь» также не очень полезное название для вопроса. Я также лично нахожу ваш вопрос трудным для чтения; где актуальный вопрос? Единственный реальный вопрос, который я вижу, это «какие разрешения нужны / var / log / somefile?» и ответ на это должен быть «пусть syslogd справится с этим». Кроме того, это было много обновлений назад и, вероятно, больше не актуально.
CVN
Вы можете опубликовать свое решение в качестве ответа, чтобы другие люди, столкнувшиеся с такой же проблемой, могли видеть его.
Гроностай

Ответы:

6

Ну, я наконец понял это. Я хотел бы, чтобы кто-то ответил на это для меня. Потребовалось несколько дней, чтобы понять, что было не так, но я думаю, что на суперпользователя не так много людей.

Проблема была с правами доступа к файлу пользовательского журнала, как я изначально теоретизировал. Я думал, что у меня были правильные разрешения, но оказывается, что владельцем должен быть "системный журнал", а группа "adm". Я определил это путем сравнения с файлом user.log. Как только разрешения были изменены и проверены снова, все работает отлично! Я надеюсь, что это поможет кому-то еще быстрее, чем я смог найти ответ.

Вот окончательные разрешения

-rw-r--r-- 1 syslog adm 0 Aug  3 05:09 anm.log
Atomiklan
источник
«Я думал, что у меня были правильные разрешения» подразумевает, что вы создали файл самостоятельно. Почему вы просто не позволили демону syslog создать его?
CVN
Вопрос заключался в следующем: почему при использовании команды logger я не могу получить ее для вывода в пользовательский файл журнала в / var / log? Я просто попытался позволить syslog создать файл, и я не работал. В любом случае все в порядке. Я не против, чтобы мой скрипт установки создал файл и установил права доступа.
Атомиклан
1
По ощущениям, когда секунды = $$$
Атомиклан
Привет @ Atomiklan Спасибо за ваш вопрос, решает мою точно такую ​​же проблему. Однако я удивляюсь, почему автоматически созданный rsyslog файл находится в корневом каталоге / root, а не в правильном syslog / adm? У тебя есть идеи почему?
Юдонг Ли
Спасибо чувак! по-видимому, ваши усилия только что спасли меня от 2 дней отладки системного журнала :) И из расплывчатых комментариев @ MichaelKjörling и @YudongLi я решил, что демон создает файл сам по себе в соответствии с путем в правиле конфигурации. После того, как service restartон знает правило и при первом соответствующем вызове from loggerсоздает файл с правильными правами доступа.
xealits
1

@ Atomiklan упомянул, что ему нужно сменить владельца / группу своего пользовательского файла на syslog / adm. Я попробовал это, и это сработало ...

Но комментарий @ MichaelKjörling тоже показался правильным: почему бы просто не позволить демону syslog создать файл?

Ключ в моем случае (и я предлагаю ОП) заключается в том, что у пользователя системного журнала не было разрешения на запись в каталог моего пользовательского журнала . Я сделал chmod o+w, перезапустил rsyslog, и мой файл журнала счастливо появился там, где он должен быть ... с syslog / adm в качестве пользователя / группы.

Дэн Х
источник
1
#$ModLoad imudp
#$UDPServerRun 514

должно быть:

$ModLoad imudp
$UDPServerRun 514

запустить удаленную регистрацию!

Rsyslog
источник