Виведення 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.