rsyslog에서 디버깅 정보를 얻는 방법은 무엇입니까?

rsyslog에서 디버깅 정보를 얻는 방법은 무엇입니까?

나는 아래 지침을 따랐습니다. http://www.rsyslog.com/doc/debug.html

다음 내용을 넣었습니다 /etc/rsyslog.conf.

$DebugLevel 2
$DebugFile /root/RSYSLOG.txt

그런 다음 다음을 시도합니다.

kill -USR1 `cat /var/run/syslogd.pid`
kill -USR2 `cat /var/run/syslogd.pid`

그렇지 않은 것 같습니다 rsyslogd.conf.

확인해 보니 RSYSLOG.txt크기가 여전히 0바이트입니다. 나는 무엇을 더 해야할지 모르겠습니다.

답변1

이 문서에서는 rsyslog의 "주문형 디버그" 기능이 작동하는 방식을 보여줍니다. rsyslog 6.1.0(v6-Devel)을 사용하여 Fedora 13에서 테스트 및 검증되었습니다(단계는 운영 체제에 따라 다를 수 있음). rsyslog가 이미 시스템에서 실행되고 있다고 가정합니다. 설치 및 구성 지침은 설명서를 확인하세요. 버전 4.5.7부터는 요청 시 디버깅이 가능합니다.

이 옵션이 작동하려면 먼저 활성화해야 합니다. 이를 활성화하고 디버그 로그 파일의 경로를 지정하면 됩니다. 루트 권한으로 터미널을 열고 다음 명령을 사용하십시오.

export RSYSLOG_DEBUG="DebugOnDemand NoStdOut"
export RSYSLOG_DEBUGLOG=/somepath/example.log

첫 번째 옵션을 사용하면 표준 출력이 필요하지 않고 "요청 시 디버깅" 자체가 가능합니다. 서비스를 시작할 때 비활성화하는 데 필요합니다. 두 번째 옵션은 로그 파일의 경로와 이름을 지정합니다.

이제 준비가 되기 전에 rsyslog 서비스를 중지해야 합니다. 다음 명령을 사용하십시오.

/etc/rc.d/init.d/rsyslog stop

이제 서비스가 중지되었으므로 다시 시작해야 합니다. 현재 구성에서는 rsyslog를 포그라운드 애플리케이션으로 시작해야 합니다. 이 방식으로 구성하는 것이 훨씬 간단하므로 rsyslog는 백그라운드 서비스가 아니라 작동하려면 "요청 시 디버그" 포그라운드 애플리케이션이어야 합니다. 포그라운드 애플리케이션으로 다시 실행하려면 다음 명령을 사용하세요.

rsyslogd -n

"디버깅 온디맨드"를 활성화하거나 비활성화할 수 있도록 두 번째 터미널을 엽니다(다시 루트를 사용하여). 다음 명령을 사용하십시오.

kill -USR1 `cat /var/run/rsyslogd.pid`

이 명령을 한 번 사용하면 디버그 모드가 활성화됩니다. 다시 사용하면 비활성화됩니다. "-USR1"이 반드시 필요합니다. 그렇지 않으면 rsyslog가 실제로 종료됩니다. 또한 백틱을 사용하십시오. 이것들은 중요합니다.

기본적으로 그게 다입니다. 이제 "Debug on Demand" 로그 파일을 볼 수 있습니다.

답변2

파일에 대해 위의 디버깅 방법을 사용해 보았지만 rsyslog.conf로그에 $DebugFile명령으로 인식되지 않는다는 오류가 발생했습니다.

내 솔루션은 온디맨드 디버깅의 세부 프로세스를 따르는 것이었습니다.여기.

조금 장황하지만 적어도 작동합니다.

관련 정보