rsyslog를 사용하여 입력 파일(imfile 모듈 사용)에서 로그를 읽고 RELP(모듈 omrelp)를 사용하여 로그를 원격 서버로 보냅니다. 이를 위해 작업 대기열을 사용하고 있습니다. 이는 디스크 보조 큐입니다. rsyslog는 백그라운드 프로세스로 실행되며 설명서에서 권장하는 대로 디버그 모드에서는 rsyslog를 실행하지 않았습니다. rsyslog가 메시지를 삭제할 때마다(원격 서버에 오랫동안 연결할 수 없는 경우) 클라이언트 측에서 디버그 메시지를 받고 싶습니다. 기본적으로 디버그 로그를 활성화하지 않고 이를 수행할 수 있는 방법이 있습니까? 서버가 다시 작동될 때마다 rsyslog가 서버에 추가 메시지(아마도 로그에 추가됨)를 보낼 수 있습니까? 그러면 일부 메시지가 삭제되었음을 서버에 알립니다. 이것은 내 rsyslog 구성입니다.
module(load="omrelp")
module(load="imfile")
global(workDirectory="/tmp/rsyslog")
input(type="imfile"
File="/srv/myapp/logs/test.log"
Tag="test-"
Ruleset="sendToLogserver"
addMetadata="on")
ruleset(name="sendToLogserver") {
action(type="omrelp"
Target=<server-IP> Port=<>
queue.type="LinkedList"
queue.size="10000"
queue.filename="q_sendToLogserver"
queue.highwatermark="9000"
queue.lowwatermark="50"
queue.maxdiskspace="1g"
queue.saveonshutdown="on"
action.resumeRetryCount="-1"
action.reportSuspension="on"
action.reportSuspensionContinuation="on"
action.resumeInterval="10")
}
답변1
이는 다음을 통해 달성할 수 있습니다.통계rsyslog의 모듈. 이 모듈은 rsyslog 내부 카운터의 주기적 출력을 제공합니다.
정기적인 간격으로 다양한 대기열 및 작업에 대한 메시지를 표시합니다. 기간은 구성 가능합니다. impstats가 내보낸 통계는 다른 일반 메시지와 같습니다.
여기에서 모든 정보를 얻을 수 있기 때문에 더 설명할 필요는 없지만,
http://www.rsyslog.com/doc/v8-stable/configuration/modules/impstats.html
다음은 rsyslog 소유자의 사용 방법에 대한 기사입니다.