다시 시작한 후 rsyslog가 로그 파일을 쓰지 않습니다.

다시 시작한 후 rsyslog가 로그 파일을 쓰지 않습니다.

우선, 시간을 내어 이 문제를 살펴봐주셔서 감사합니다. 정말 감사드립니다.

디스크가 가득 차서 rsyslog를 다시 시작해야 했던 오늘까지 첨부된 rsyslog.conf 구성을 실행 중이었습니다. 결과적으로 rsyslog는 이제 모든 이전 권한(현재 안전한 테스트를 위해 root|root rw)을 사용하여 새 위치(.conf 파일에서 업데이트됨)에 로깅됩니다.

내가 직면한 문제는 내가 무엇을 시도하더라도 rsyslog가 파일을 출력하지 않는다는 것입니다. tcpdump를 실행했지만 여전히 데이터를 수신하고 있습니다. 일치 기준(호스트 IP 주소)이 변경되어서는 안 되며 구성도 변경되어서는 안 됩니다.

어떤 도움이라도, 특히 실행할 수 있는 디버그 명령을 주시면 매우 감사하겠습니다. 제거하고 대신 syslog-ng를 사용하는 것보다 rsyslog와 같은 새로운 것을 배우고 싶습니다. 구성은 다음과 같습니다.

    ### Modules
$ModLoad imtcp
$ModLoad imudp
$ModLoad imuxsock       # provides support for local system logging (e.g. via logger command)
$ModLoad imklog         # provides kernel logging support (previously done by rklogd)

### Set log file permissions
$FileOwner root
$FileGroup root
$FileCreateMode 0777
$DirCreateMode 0777
$Umask 0022
$PrivDropToUser root
$PrivDropToGroup root

### Listeners
# bind ruleset to tcp listener
$InputTCPServerBindRuleset remote
# and activate it:
$InputTCPServerRun 514

$InputUDPServerBindRuleset remote
$UDPServerRun 514

### Templates
#Format the message correctly
$template MsgFormat,"%msg%\n"

# log every host in its own directory

##$template TESTLOG,"/opt/rsyslog/var/log/test.log"

### Rulesets
# Local Logging
# N/A None required at this point in time
#
# Remote Logging
$RuleSet remote

#---MY MATCHING RULE---#

if ($fromhost-ip == "192.168.1.1") then ?TESTLOG

미리 감사드립니다 :)

답변1

로그 파일에 대해 사용자 정의된 경로를 사용하고 있으므로 selinux가 사용자를 차단하고 있습니다. rsyslog를 발행 setenforce 0하고 다시 시작해 보십시오. 이제 작동하면 문제가 selinux인 것으로 확인됩니다.

selinux를 계속 사용하는 동안 이를 영구적으로 수정하려면 다음을 발행해야 합니다.

semanage fcontext -a -t var_log_t '/opt/rsyslog(/.*)?'; restorecon -RF /opt/rsyslog

그런 다음 rsyslog를 다시 시작하십시오.

관련 정보