역할 로그나 Cloudera Manager 에이전트 로그에 다음이 남는다.
Redaction rules file doesn't exist, not redacting logs.
file: redaction-rules.json,
directory: /run/cloudera-scm-agent/process/11309-docker-DOCKER_SERVER
Cloudera Manager 에는 로그와 쿼리에서 민감한 문자열을 가리는 리댁션 기능이 있다. 이 기능이 켜져 있으면 CM 이 역할을 기동할 때 프로세스 디렉터리에 redaction-rules.json 을 만들어 주고, 역할은 그 규칙대로 로그를 가린다.
메시지는 그 파일이 없어서 가리지 않고 그대로 기록한다 는 알림이다. 기능이 꺼져 있으면 파일이 만들어지지 않으므로 이 메시지가 정상적으로 나온다. 즉 대부분의 경우 장애가 아니라 상태 보고다.
역할이 뜨지 않거나 다른 오류가 함께 나는 것이 아니라면 그 자체로는 조치할 것이 없다.
프로세스 디렉터리를 본다. 디렉터리 이름 앞의 숫자는 CM 이 역할을 기동할 때마다 올라가는 일련번호다.
ls -l /run/cloudera-scm-agent/process/ | tail -n 20
ls -l /run/cloudera-scm-agent/process/*-DOCKER_SERVER/ | grep -i redaction
CM 설정에서 리댁션이 켜져 있는지 본다. Cloudera Manager 의 Administration → Settings 에서 redaction 으로 검색하면 다음 항목이 나온다.
| 항목 | 역할 |
|---|---|
| Enable Log and Query Redaction | 기능 전체 켜고 끄기 |
| Log and Query Redaction Policy | 가릴 패턴과 대체 문자열 목록 |
CM 에서 리댁션을 켜고 정책을 정의한 뒤 해당 서비스를 재시작한다. 재시작 시점에 새 프로세스 디렉터리가 만들어지면서 규칙 파일이 함께 생성된다.
정책은 정규식과 대체 문자열의 쌍으로 정의한다. 패턴이 넓으면 정상 로그까지 가려져 나중에 원인 분석이 어려워지므로, 실제로 나오는 형태에 맞춰 좁게 잡는다.
그대로 둔다. 로그 수준을 낮추는 것 외에 할 일이 없고, 그럴 가치도 없다.
/run/cloudera-scm-agent/process/<번호>-<역할>/ 아래에 redaction-rules.json 을 손으로 만들어 넣는 방법이 검색에 자주 나오는데, 이 방법은 동작하지 않는다.
/run 은 tmpfs 다. 재부팅하면 전부 없어진다.설정은 반드시 Cloudera Manager 쪽에서 바꾸고 재배포한다.