Виведення Rsyslog у файл власного журналу


13

Хтось може сказати мені, що я тут зробив не так?

Ось головне питання:

Чому, коли я використовую команду реєстратора, я не можу отримати її для виведення у користувальницький файл журналу /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файл. Після того, як дозволи були змінені та протестовані знову, все працює ідеально! Я сподіваюся, що це допомагає комусь іншому там швидше, ніж мені вдалося знайти відповідь.


1
Я побачив ідентичний пост на SF - будь ласка, не перехрещуйтесь.
Подорожник Geek

Усі продовжували говорити мені, щоб перенести свою посаду. Я думаю, я повинен видалити інші?
Атоміклан

1
Так. Ви також можете позначити власні повідомлення, щоб попросити модератора також перемістити їх у майбутньому
Journeyman Geek

"Будь ласка, вам потрібна негайна допомога" також не дуже корисна назва для питання. Мені також особисто важко читати ваше запитання; де власне питання? Єдине справжнє запитання, яке я можу бачити, - це "які дозволи потрібні / var / log / somefile?" і відповідь на це повинна бути "нехай впорається syslogd". Крім того, це було багато оновлень тому і, ймовірно, більше не актуальне.
CVn

Ви можете опублікувати своє рішення як відповідь, щоб інші люди, що стикаються з тією ж проблемою, могли бачити його.
gronostaj

Відповіді:


6

Ну я, нарешті, зрозумів це. Я б хотів, щоб хтось відповів на це за мене. Знадобилося кілька днів, щоб з’ясувати, що було не так, але, мабуть, просто не дуже багато людей на суперперу.

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

Ось остаточні дозволи

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

"Я вважав, що я маю правильні дозволи", це означає, що ви створили файл самостійно. Чому ви не просто дозволили демону syslog створити його?
CVn

Питання було: Чому, коли я використовую команду реєстратора, я не можу дозволити її виводити на спеціальний файл журналу в / var / log? Я просто спробував дозволити syslog створити файл, і я не працюю. Будь-який спосіб добре, хоча. Я не проти того, щоб мій сценарій встановлення створив файл і встановив дозволи.
Атоміклан

1
Відчуває себе так, коли секунди = $$$
Atomiklan

Привіт @Atomiklan Спасибі за ваше питання вирішує мою саме проблему. Однак мені цікаво, чому файл авто, створений rsyslog, знаходиться під root / root замість правильного syslog / adm? У вас є ідеї, чому?
Юдун Лі

дякую людино! мабуть, ваші зусилля просто врятували мене від 2-х днів налагодження syslog :) І з розпливчастих коментарів @ MichaelKjörling та @YudongLi я зрозумів, що демон створює файл самостійно відповідно до шляху в правилі config. Після service restartтого, як воно знає правило і при першому відповідному виклику з loggerстворює файл з набором правильних дозволів.
xealits

1

@Atomiklan згадав, що йому потрібно змінити власника / групу власного файлу на syslog / adm. Я спробував це, і це спрацювало ...

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

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


1
#$ModLoad imudp
#$UDPServerRun 514

повинно бути:

$ModLoad imudp
$UDPServerRun 514

запустити дистанційний журнал!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.