13.7. RELP에서 로깅 시스템 역할 사용
RELP(Reliable Event Logging Protocol)는 TCP 네트워크를 통한 데이터 및 메시지 로깅을 위한 네트워킹 프로토콜입니다. 이벤트 메시지를 안정적으로 전달하며 메시지 손실을 허용하지 않는 환경에서 사용할 수 있습니다.
RELP 발신자는 명령 형태로 로그 항목을 전송하고 수신자는 처리되면 이를 승인합니다. 일관성을 보장하기 위해 RELP는 모든 종류의 메시지 복구에 대해 전송된 각 명령에 트랜잭션 번호를 저장합니다.
RELP Client와 RELP 서버 사이에서 원격 로깅 시스템을 고려할 수 있습니다. RELP 클라이언트는 로그를 원격 로깅 시스템으로 전송하고 RELP 서버는 원격 로깅 시스템에서 보낸 모든 로그를 수신합니다.
관리자는 로깅
RHEL 시스템 역할을 사용하여 로그 항목을 안정적으로 전송하고 수신하도록 로깅 시스템을 구성할 수 있습니다.
13.7.1. RELP를 사용하여 클라이언트 로깅 구성
로깅
RHEL 시스템 역할을 사용하여 로컬 머신에 기록된 RHEL 시스템에 로그인을 구성하고 Ansible 플레이북을 실행하여 RELP를 사용하여 원격 로깅 시스템으로 로그를 전송할 수 있습니다.
이 절차에서는 Ansible 인벤토리의 clients
그룹의 모든 호스트에서 RELP를 구성합니다. RELP 구성은 TLS(Transport Layer Security)를 사용하여 네트워크를 통한 로그의 안전한 전송을 위해 메시지 전송을 암호화합니다.
사전 요구 사항
- 제어 노드와 관리형 노드가 준비되었습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리형 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다.
절차
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/playbook.yml
)을 생성합니다.--- - name: Deploying basic input and relp output hosts: managed-node-01.example.com 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]
플레이북은 다음 설정을 사용합니다.
대상
- 이는 원격 로깅 시스템이 실행 중인 호스트 이름을 지정하는 필수 매개 변수입니다.
port
- 원격 로깅 시스템이 수신 대기 중인 포트 번호입니다.
tls
네트워크를 통해 안전한 로그 전송을 보장합니다. 보안 래퍼가 필요하지 않은 경우
tls
변수를false
로 설정할 수 있습니다. 기본적으로tls
매개변수는 RELP로 작업하는 동안 true로 설정되며 키/인증서 및 트립릿 {ca_cert
,cert
,private_key
} 및/또는 {ca_cert_src
,cert_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
이며 파일 이름은 사용자가 설정합니다. cert
-
인증서 경로를 나타냅니다. 기본 경로는
/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
-
인증 모드를
이름
또는지문으로 허용합니다
. permitted_servers
- 로깅 클라이언트가 TLS를 통해 로그를 연결하고 보낼 수 있는 서버 목록입니다.
입력
- 로깅 입력 사전 목록입니다.
출력
- 로깅 출력 사전 목록입니다.
플레이북 구문을 확인합니다.
$ ansible-playbook --syntax-check ~/playbook.yml
이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.
플레이북을 실행합니다.
$ ansible-playbook ~/playbook.yml
추가 리소스
-
/usr/share/ansible/roles/rhel-system-roles.logging/README.md
파일 -
/usr/share/doc/rhel-system-roles/logging/
디렉터리
13.7.2. RELP를 사용하여 서버 로깅 구성
로깅
RHEL 시스템 역할을 사용하여 RHEL 시스템에서 서버로 로그인을 구성하고 Ansible 플레이북을 실행하여 RELP를 사용하여 원격 로깅 시스템에서 로그를 수신할 수 있습니다.
이 절차에서는 Ansible 인벤토리의 server
그룹에 있는 모든 호스트에서 RELP를 구성합니다. RELP 구성은 TLS를 사용하여 네트워크를 통한 로그의 보안 전송을 위해 메시지 전송을 암호화합니다.
사전 요구 사항
- 제어 노드와 관리형 노드가 준비되었습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리형 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다.
절차
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/playbook.yml
)을 생성합니다.--- - name: Deploying remote input and remote_files output hosts: managed-node-01.example.com 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
플레이북은 다음 설정을 사용합니다.
port
- 원격 로깅 시스템이 수신 대기 중인 포트 번호입니다.
tls
네트워크를 통해 안전한 로그 전송을 보장합니다. 보안 래퍼가 필요하지 않은 경우
tls
변수를false
로 설정할 수 있습니다. 기본적으로tls
매개변수는 RELP로 작업하는 동안 true로 설정되며 키/인증서 및 트립릿 {ca_cert
,cert
,private_key
} 및/또는 {ca_cert_src
,cert_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
이며 파일 이름은 사용자가 설정합니다. cert
-
인증서의 경로를 나타냅니다. 기본 경로는
/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
-
인증 모드를
이름
또는지문으로 허용합니다
. permitted_clients
- 로깅 서버에서 TLS를 통해 로그를 연결하고 보낼 수 있는 클라이언트 목록입니다.
입력
- 로깅 입력 사전 목록입니다.
출력
- 로깅 출력 사전 목록입니다.
플레이북 구문을 확인합니다.
$ ansible-playbook --syntax-check ~/playbook.yml
이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.
플레이북을 실행합니다.
$ ansible-playbook ~/playbook.yml
추가 리소스
-
/usr/share/ansible/roles/rhel-system-roles.logging/README.md
파일 -
/usr/share/doc/rhel-system-roles/logging/
디렉터리