13.4. 로컬 로깅 시스템 역할에서 로그 필터링
rsyslog 속성 기반 필터를 기반으로 로그를 필터링하는 로깅 솔루션을 배포할 수 있습니다.
사전 요구 사항
-
로깅시스템 역할로 구성하려는 시스템인 하나 이상의 관리형 노드에 대한 액세스 및 권한. Red Hat Ansible Core가 기타 시스템을 구성하는 시스템인 제어 노드 액세스 및 사용 권한.
제어 노드에서 다음이 있어야 합니다.
- Red Hat Ansible Core 설치
-
rhel-system-roles패키지가 설치되어 있습니다. - 관리 노드를 나열하는 인벤토리 파일이 있어야 합니다.
배포 시 시스템 역할이 rsyslog 를 설치하므로 rsyslog 패키지가 설치되어 있을 필요가 없습니다.
절차
다음 내용으로 새
playbook.yml파일을 생성합니다.--- - 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에 기록됩니다.오류속성 값을 필터링할 문자열로 교체할 수 있습니다.환경 설정에 따라 변수를 수정할 수 있습니다.
선택 사항: 플레이북 구문 확인:
# ansible-playbook --syntax-check playbook.yml인벤토리 파일에서 플레이북을 실행합니다.
# ansible-playbook -i inventory_file /path/to/file/playbook.yml
검증
/etc/ECDHE.conf 파일의 구문을 테스트합니다.# rsyslogd -N 1 rsyslogd: version 8.1911.0-6.el8, config validation run... rsyslogd: End of config validation run. Bye.시스템이
오류문자열이 포함된 메시지를 로그로 전송하는지 확인합니다.테스트 메시지를 보냅니다.
# logger error/var/log/errors.log로그를 확인합니다. 예를 들면 다음과 같습니다.# cat /var/log/errors.log Aug 5 13:48:31 hostname root[6778]: error여기서
hostname은 클라이언트 시스템의 호스트 이름입니다. 로그에 logger 명령을 입력한 사용자의 사용자 이름이 포함됩니다(이 경우root).