사용자 정의 로그 파일로 출력하는 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(우분투 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에서 동일한 게시물을 보았습니다.
Journeyman Geek

모두 내 게시물을 옮기라고 계속 말 했어요. 다른 것을 삭제해야한다고 생각합니까?
Atomiklan

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

문제는 logger 명령을 사용할 때 / var / log의 사용자 정의 로그 파일로 출력 할 수없는 이유는 무엇입니까? 방금 syslog가 파일을 만들도록 시도했지만 작동하지 않습니다. 어느 쪽이든 괜찮습니다. 설치 스크립트가 파일을 작성하고 권한을 설정해도 상관 없습니다.
Atomiklan

1
초 = $$$ 일 때 느낌
Atomiklan

안녕하세요 @Atomiklan 귀하의 질문에 감사드립니다 내 정확히 같은 문제를 해결합니다. 그러나 rsyslog에 의해 생성 된 파일 자동이 왜 올바른 syslog / adm 대신 root / root 아래에 있는지 궁금합니다. 왜 그런지 아십니까?
유동 리

고마워요! 분명히, 당신의 노력은 방금 syslog 디버깅의 2 일에서 나를 구했습니다 :) 그리고 @ MichaelKjörling 및 @YudongLi의 모호한 의견에서 나는 데몬이 구성 규칙의 경로에 따라 자체적으로 파일을 생성한다고 생각했습니다. 후에 service restart는 규칙을 알고 처음 적절한 통화에서는 logger올바른 사용 권한 설정으로 파일을 생성합니다.
xealits

1

@Atomiklan은 자신의 사용자 정의 파일의 소유자 / 그룹을 syslog / adm으로 변경해야한다고 언급했습니다. 나는 그것을 시도했고 효과가 있었다 ...

그러나 @ MichaelKjörling의 의견도 옳았습니다. 왜 syslog 데몬이 파일을 만들지 못하게 하시겠습니까?

필자의 경우 핵심은 (그리고 OP를 제안한다) syslog 사용자는 내 사용자 정의 로그 디렉토리에 대한 쓰기 권한을 가지고 있지 않다는 것이다 . 나는 chmod o+wrsyslog를 재시작하고 로그 파일은 syslog / adm을 사용자 / 그룹으로 가지고 있어야하는 곳에 행복하게 나타났습니다.


1
#$ModLoad imudp
#$UDPServerRun 514

다음과 같아야합니다.

$ModLoad imudp
$UDPServerRun 514

원격 로깅을 실행합니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.