원격 로깅 시스템을 설정하고 싶습니다. 내 설정은 정확하다고 생각하지만 실패하고 rsyslog에서 로그에 표시할 메시지를 가져올 수 없으므로 이유를 알 수 없습니다. 내 iptables 규칙은 포트 514에 대한 무제한 액세스를 허용합니다. 또한 나중에 rsyslog를 자체 로그 파일에 기록하여 알아낼 수 있는 방법도 알고 싶습니다.
Redhat 사이트에 표시된 템플릿을 사용했습니다. 서버:
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
$template TmplAuth "/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
authpriv.* ?TmplAuth
*.info,mail.none,authpriv.none,cron.none ?TmplMsg
고객:
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
$WorkDirectory /var/lib/rsyslog # where to place spool files
$ActionQueueFileName fwdRule1 # unique name prefix for spool files
$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
$ActionQueueType LinkedList # run asynchronously
$ActionResumeRetryCount -1 # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
*.* @loghost:514
# ### end of the forwarding rule ###
rsyslog.conf 파일은 제가 생각하는 관련 정보로 축약되어 있습니다. 먼저, 감사합니다.
답변1
클라이언트에서 TCP 및 UDP를 통한 syslog 수신을 활성화했지만 필수는 아닙니다.
서버에서는 TCP 로그 수신만 활성화하지만 내 경험상 UDP가 주로 주로 사용됩니다. 따라서 서버에서 UDP 로그 수신을 활성화하면 작동합니다.