11.4. 로컬 로깅 시스템 역할에서 로그 필터링
rsyslog
속성 기반 필터를 기반으로 로그를 필터링하는 로깅 솔루션을 배포할 수 있습니다.
사전 요구 사항
-
로깅
시스템 역할을 사용하여 구성할 하나 이상의 관리형 노드에 대한 액세스 및 권한. Red Hat Ansible Core가 기타 시스템을 구성하는 시스템인 제어 노드 액세스 및 사용 권한.
제어 노드에서 다음이 있어야 합니다.
- Red Hat Ansible Core 설치
-
rhel-system-roles
패키지가 설치되어 있습니다. - 관리 노드를 나열하는 인벤토리 파일.
시스템 역할은 배포 시 rsyslog
를 설치하기 때문에 rsyslog
패키지를 설치할 필요가 없습니다.
절차
다음 내용으로 새
playbook.yml
파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow --- - name: Deploying files input and configured files output hosts: all roles: - linux-system-roles.logging vars: logging_inputs: - name: files_input type: basics logging_outputs: - name: files_output0 type: files property: msg property_op: contains property_value: error path: /var/log/errors.log - name: files_output1 type: files property: msg property_op: "!contains" property_value: error path: /var/log/others.log logging_flows: - name: flow0 inputs: [files_input] outputs: [files_output0, files_output1]
--- - name: Deploying files input and configured files output hosts: all roles: - linux-system-roles.logging vars: logging_inputs: - name: files_input type: basics logging_outputs: - name: files_output0 type: files property: msg property_op: contains property_value: error path: /var/log/errors.log - name: files_output1 type: files property: msg property_op: "!contains" property_value: error path: /var/log/others.log logging_flows: - name: flow0 inputs: [files_input] outputs: [files_output0, files_output1]
이 구성을 사용하면
오류
문자열이 포함된 모든 메시지가/var/log/errors.log
에 기록되고 기타 모든 메시지는/var/log/others.log
에 기록됩니다.error
속성 값을 필터링하려는 문자열로 교체할 수 있습니다.환경 설정에 따라 변수를 수정할 수 있습니다.
선택 사항: 플레이북 구문을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-playbook --syntax-check playbook.yml
# ansible-playbook --syntax-check playbook.yml
인벤토리 파일에서 플레이북을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-playbook -i inventory_file /path/to/file/playbook.yml
# ansible-playbook -i inventory_file /path/to/file/playbook.yml
검증
/etc/journal.conf 파일의 구문을 테스트합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rsyslogd -N 1
# rsyslogd -N 1 rsyslogd: version 8.1911.0-6.el8, config validation run... rsyslogd: End of config validation run. Bye.
시스템에서
오류
문자열이 포함된 메시지를 로그에 전송하는지 확인합니다.테스트 메시지를 보냅니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow logger error
# logger error
/var/log/errors.log
로그를 확인합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat /var/log/errors.log Aug 5 13:48:31 hostname root[6778]: error
# cat /var/log/errors.log Aug 5 13:48:31 hostname root[6778]: error
여기서
hostname
은 클라이언트 시스템의 호스트 이름입니다. 로그에는 logger 명령을 입력한 사용자의 사용자 이름이 포함됩니다(이 경우루트
).
추가 리소스
-
/usr/share/ansible/roles/
패키지와 함께 설치된 설명서rhel-system-roles
.logging/README.html의 rhel-system-roles