rsyslog를 사용하고 있으며 다음 구성을 수행하려고 합니다.
1. Server 1 - log all local messages and log messages from server2
2. Server 2 - log all local messages and log messages from server1
따라서 두 서버 모두 로컬 및 원격 시스템 로그를 포함해야 합니다.
그런 다음 rsyslog.conf 구성 파일의 전달 섹션에 넣은 내용은 다음과 같습니다.
서버 1:
# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
$WorkDirectory /var/lib/rsyslog # where to place spool files
$ActionQueueFileName server1 # 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
*.* @@10.0.0.2
# ### end of the forwarding rule ###
서버 2:
# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
$WorkDirectory /var/lib/rsyslog # where to place spool files
$ActionQueueFileName server2 # 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
*.* @@10.0.0.1
# ### end of the forwarding rule ###
문제는 이로 인해 기본적으로 무한 루프와 같은 결과가 발생한다는 것입니다. IE 각 시스템에는 자체 항목이 있고 각 시스템의 모든 새 항목이 있습니다. 따라서 동일한 정보가 계속해서 복사되어 로그 파일이 빠르게 채워집니다.
내가 원하는 것을 할 수 있는 방법이 있나요?
저는 rsyslog v5(RHEL 6/Centos 6) 표준을 사용하고 있습니다.
답변1
당신은 이것을 할 수 있습니다조건문 사용, rsyslog 구문 구성은 실행 중인 버전에 따라 다르지만 해당 CentOS 버전은 점점 더 오래되고 있습니다.
udp 서버 구성( UDPServerRun
또는 유사한 구성) 뒤와 메시지를 원격으로 전달하라는 지시문 앞에 다음을 추가해 볼 수 있습니다.
if $fromhost-ip startswith '10.0.0.' then /var/log/remotelogs.log
& ~
이것~해야 한다원격 로그를 별도의 파일로 보내고 추가 처리/전달을 방지합니다.
syslog 메시지를 전달할 계획이라면 전용 syslog 프록시/스토리지 서버 설정을 고려하는 것이 좋습니다. 중복 복사본을 보관해야 하는 경우 두 개 정도일 수도 있습니다. 간단한 syslog 서버가 시간을 들일 가치가 없다고 생각한다면 Logstash(및 일반적으로 ELK 스택) 또는 Splunk를 사이드 프로젝트로 살펴볼 수 있습니다.