13.7. RELP에서 로깅 시스템 역할 사용
RELP(Reliable Event Logging Protocol)는 TCP 네트워크를 통한 데이터 및 메시지 로깅을 위한 네트워킹 프로토콜입니다. 이벤트 메시지를 안정적으로 전달하며 메시지 손실을 허용하지 않는 환경에서 사용할 수 있습니다.
RELP 발신자는 명령 형태로 로그 항목을 전송하고 수신자는 처리되면 이를 승인합니다. 일관성을 보장하기 위해 RELP는 모든 종류의 메시지 복구에 대해 전송된 각 명령에 트랜잭션 번호를 저장합니다.
RELP Client와 RELP 서버 사이에서 원격 로깅 시스템을 고려할 수 있습니다. RELP 클라이언트는 로그를 원격 로깅 시스템으로 전송하고 RELP 서버는 원격 로깅 시스템에서 보낸 모든 로그를 수신합니다.
관리자는 로깅
시스템 역할을 사용하여 로그 항목을 안정적으로 보내고 수신하도록 로깅 시스템을 구성할 수 있습니다.
13.7.1. RELP를 사용하여 클라이언트 로깅 구성
로깅
시스템 역할을 사용하여 로컬 시스템에 기록된 RHEL 시스템의 로그인을 구성하고 Ansible 플레이북을 실행하여 RELP를 사용하여 원격 로깅 시스템으로 로그를 전송할 수 있습니다.
이 절차에서는 Ansible 인벤토리의 clients
그룹의 모든 호스트에서 RELP를 구성합니다. RELP 구성은 TLS(Transport Layer Security)를 사용하여 네트워크를 통한 로그의 안전한 전송을 위해 메시지 전송을 암호화합니다.
사전 요구 사항
- RELP를 구성하려는 관리형 노드에서 플레이북을 실행할 수 있는 권한이 있습니다.
- 관리형 노드는 제어 노드의 인벤토리 파일에 나열됩니다.
-
ansible
및rhel-system-roles
패키지는 제어 노드에 설치됩니다.
절차
다음 내용으로
playbook.yml
파일을 생성합니다.--- - name: Deploying basic input and relp output hosts: clients roles: - rhel-system-roles.logging vars: logging_inputs: - name: basic_input type: basics logging_outputs: - name: relp_client type: relp target: logging.server.com port: 20514 tls: true ca_cert: /etc/pki/tls/certs/ca.pem cert: /etc/pki/tls/certs/client-cert.pem private_key: /etc/pki/tls/private/client-key.pem pki_authmode: name permitted_servers: - '*.server.example.com' logging_flows: - name: example_flow inputs: [basic_input] outputs: [relp_client]
Playbook은 다음 설정을 사용합니다.
-
target
: 원격 로깅 시스템이 실행 중인 호스트 이름을 지정하는 필수 매개변수입니다. -
포트
: 원격 로깅 시스템이 수신 대기하는 포트 번호입니다. TLS
: 네트워크를 통한 로그의 안전한 전송을 보장합니다. 보안 래퍼를 원하지 않는 경우tls
변수를false
로 설정할 수 있습니다. 기본적으로tls
매개변수는 RELP로 설정되고 키/인증서 및 트립릿 {ca_cert
,private_key
} 및/또는 {ca_
,cert
_srccert_src
,private_key_src
}가 필요합니다.-
{
ca_cert_src
,cert_src
,private_key_src
} triplet가 설정되면 기본 위치/etc/pki/tls/certs
및/etc/pki/tls/private
이 제어 노드에서 파일을 전송하는 대상으로 사용됩니다. 이 경우 파일 이름은 번들의 원래 이름과 동일합니다. -
{
ca_cert
,cert
,private_key
} triplet가 설정되면 로깅 구성 전에 파일이 기본 경로에 있어야 합니다. - 두 트래블릿이 설정되어 있으면 파일이 로컬 경로에서 제어 노드에서 관리 노드의 특정 경로로 전송됩니다.
-
{
-
ca_cert
: CA 인증서의 경로를 나타냅니다. 기본 경로는/etc/pki/tls/certs/ca.pem
이며 파일 이름은 사용자가 설정합니다. -
인증서
의 경로를 나타냅니다.Represents the path to certificate. 기본 경로는/etc/pki/tls/certs/server-cert.pem
이며 파일 이름은 사용자가 설정합니다. -
private_key
: 개인 키의 경로를 나타냅니다. 기본 경로는/etc/pki/tls/private/server-key.pem
이며 파일 이름은 사용자가 설정합니다. -
ca_cert_src
: 대상 호스트에 복사되는 로컬 CA 인증서 파일 경로를 나타냅니다.ca_cert
를 지정하면 위치에 복사됩니다. -
cert_src
: 대상 호스트에 복사되는 로컬 인증서 파일 경로를 나타냅니다.cert
가 지정되면 해당 인증서가 위치에 복사됩니다. -
private_key_src
: 대상 호스트에 복사되는 로컬 키 파일 경로를 나타냅니다.private_key
가 지정되면 해당 키가 위치에 복사됩니다. -
pki_authmode
: 인증 모드를이름
또는지문
으로 수락합니다. -
allowed_servers
: 로깅 클라이언트에서 TLS를 통해 로그를 연결하고 전송할 수 있는 서버 목록입니다. -
inputs
: 로깅 입력 사전의 목록입니다. -
outputs
: 로깅 출력 사전 목록입니다.
-
선택사항: 플레이북 구문 확인.
# ansible-playbook --syntax-check playbook.yml
플레이북을 실행합니다.
# ansible-playbook -i inventory_file playbook.yml
13.7.2. RELP를 사용하여 서버 로깅 구성
로깅
시스템 역할을 사용하여 RHEL 시스템의 로그인을 서버로 구성하고 Ansible 플레이북을 실행하여 RELP로 원격 로깅 시스템에서 로그를 수신할 수 있습니다.
이 절차에서는 Ansible 인벤토리의 server
그룹에 있는 모든 호스트에서 RELP를 구성합니다. RELP 구성은 TLS를 사용하여 네트워크를 통한 로그의 보안 전송을 위해 메시지 전송을 암호화합니다.
사전 요구 사항
- RELP를 구성하려는 관리형 노드에서 플레이북을 실행할 수 있는 권한이 있습니다.
- 관리형 노드는 제어 노드의 인벤토리 파일에 나열됩니다.
-
ansible
및rhel-system-roles
패키지는 제어 노드에 설치됩니다.
절차
다음 내용으로
playbook.yml
파일을 생성합니다.--- - name: Deploying remote input and remote_files output hosts: server roles: - rhel-system-roles.logging vars: logging_inputs: - name: relp_server type: relp port: 20514 tls: true ca_cert: /etc/pki/tls/certs/ca.pem cert: /etc/pki/tls/certs/server-cert.pem private_key: /etc/pki/tls/private/server-key.pem pki_authmode: name permitted_clients: - '*example.client.com' logging_outputs: - name: remote_files_output type: remote_files logging_flows: - name: example_flow inputs: relp_server outputs: remote_files_output
플레이북은 다음 설정을 사용합니다.
-
포트
: 원격 로깅 시스템이 수신 대기하는 포트 번호입니다. TLS
: 네트워크를 통한 로그의 안전한 전송을 보장합니다. 보안 래퍼를 원하지 않는 경우tls
변수를false
로 설정할 수 있습니다. 기본적으로tls
매개변수는 RELP로 설정되고 키/인증서 및 트립릿 {ca_cert
,private_key
} 및/또는 {ca_
,cert
_srccert_src
,private_key_src
}가 필요합니다.-
{
ca_cert_src
,cert_src
,private_key_src
} triplet가 설정되면 기본 위치/etc/pki/tls/certs
및/etc/pki/tls/private
이 제어 노드에서 파일을 전송하는 대상으로 사용됩니다. 이 경우 파일 이름은 번들의 원래 이름과 동일합니다. -
{
ca_cert
,cert
,private_key
} triplet가 설정되면 로깅 구성 전에 파일이 기본 경로에 있어야 합니다. - 두 트래블릿이 설정되어 있으면 파일이 로컬 경로에서 제어 노드에서 관리 노드의 특정 경로로 전송됩니다.
-
{
-
ca_cert
: CA 인증서의 경로를 나타냅니다. 기본 경로는/etc/pki/tls/certs/ca.pem
이며 파일 이름은 사용자가 설정합니다. -
인증서
의 경로를 나타냅니다.Represents the path to the certificate. 기본 경로는/etc/pki/tls/certs/server-cert.pem
이며 파일 이름은 사용자가 설정합니다. -
private_key
: 개인 키의 경로를 나타냅니다. 기본 경로는/etc/pki/tls/private/server-key.pem
이며 파일 이름은 사용자가 설정합니다. -
ca_cert_src
: 대상 호스트에 복사되는 로컬 CA 인증서 파일 경로를 나타냅니다.ca_cert
를 지정하면 위치에 복사됩니다. -
cert_src
: 대상 호스트에 복사되는 로컬 인증서 파일 경로를 나타냅니다.cert
가 지정되면 해당 인증서가 위치에 복사됩니다. -
private_key_src
: 대상 호스트에 복사되는 로컬 키 파일 경로를 나타냅니다.private_key
가 지정되면 해당 키가 위치에 복사됩니다. -
pki_authmode
: 인증 모드를이름
또는지문
으로 수락합니다. -
allowed_clients
: 로깅 서버가 TLS를 통해 로그를 연결하고 전송할 수 있는 클라이언트 목록입니다. -
inputs
: 로깅 입력 사전의 목록입니다. -
outputs
: 로깅 출력 사전 목록입니다.
-
선택사항: 플레이북 구문 확인.
# ansible-playbook --syntax-check playbook.yml
플레이북을 실행합니다.
# ansible-playbook -i inventory_file playbook.yml