3.7. 감사 로그 수집
시스템의 개별 사용자, 관리자 또는 기타 구성 요소가 시스템에 영향을 준 활동 순서를 문서화하는 보안 관련 레코드 세트인 감사 로그를 수집할 수 있습니다.
예를 들어 감사 로그는 자동 스케일링 요청이 발생하는 위치를 이해하는 데 도움이 될 수 있습니다. 이는 사용자 애플리케이션에서 수행한 자동 확장 요청에 의해 백엔드가 과부하되는 경우 주요 정보입니다. 이로 인해 문제가 발생한 애플리케이션을 결정해야 합니다.
3.7.1. 감사 로깅 구성
CloudEventda Controller
사용자 정의 리소스를 편집하여 Custom Metrics Autoscaler Operator에 대한 감사를 구성할 수 있습니다. 로그는 CloudEventda Controller
CR의 영구 볼륨 클레임을 사용하여 보안되는 볼륨의 감사 로그 파일로 전송됩니다.
사전 요구 사항
- Custom Metrics Autoscaler Operator가 설치되어 있어야 합니다.
절차
CloudEventda
Controller 사용자
지정 리소스를 편집하여auditConfig
스탠자를 추가합니다.kind: KedaController apiVersion: keda.sh/v1alpha1 metadata: name: keda namespace: openshift-keda spec: # ... metricsServer: # ... auditConfig: logFormat: "json" 1 logOutputVolumeClaim: "pvc-audit-log" 2 policy: rules: 3 - level: Metadata omitStages: "RequestReceived" 4 omitManagedFields: false 5 lifetime: 6 maxAge: "2" maxBackup: "1" maxSize: "50"
- 1
- audit 로그의 출력 형식(
legacy
또는json
)을 지정합니다. - 2
- 로그 데이터를 저장하기 위한 기존 영구 볼륨 클레임을 지정합니다. API 서버에 들어오는 모든 요청은 이 영구 볼륨 클레임에 기록됩니다. 이 필드를 비워 두면 로그 데이터가 stdout으로 전송됩니다.
- 3
- 기록해야 하는 이벤트와 어떤 데이터를 포함해야 하는지 지정합니다.
-
none
: 이벤트를 기록하지 않습니다. -
metadata
: 사용자, 타임스탬프 등과 같은 요청에 대한 메타데이터만 기록합니다. 요청 텍스트와 응답 텍스트를 기록하지 마십시오. 이는 기본값입니다. -
request: 메타데이터와 요청
텍스트만 기록하지만 응답 텍스트는 기록하지 않습니다. 이 옵션은 리소스가 아닌 요청에는 적용되지 않습니다. -
RequestResponse
: 이벤트 메타데이터, 요청 텍스트 및 응답 텍스트를 기록합니다. 이 옵션은 리소스가 아닌 요청에는 적용되지 않습니다.
-
- 4
- 이벤트가 생성되지 않는 단계를 지정합니다.
- 5
- 요청 및 응답 본문의 관리 필드를 API 감사 로그에 작성하지 못하도록 하려면
true
로 필드를 생략할지 아니면 필드를 생략할false
를 생략할지 여부를 지정합니다. - 6
- 감사 로그의 크기 및 수명을 지정합니다.
-
maxAge
: 파일 이름에 인코딩된 타임스탬프에 따라 감사 로그 파일을 유지하는 최대 일 수입니다. -
maxBackup
: 유지할 감사 로그 파일의 최대 수입니다. 모든 감사 로그 파일을 유지하려면0
으로 설정합니다. -
maxSize
: 감사 로그 파일의 최대 크기(MB)가 순환되기 전에 이루어집니다.
-
검증
감사 로그 파일을 직접 확인합니다.
keda-metrics-apiserver-*
Pod 이름을 가져옵니다.oc get pod -n openshift-keda
출력 예
NAME READY STATUS RESTARTS AGE custom-metrics-autoscaler-operator-5cb44cd75d-9v4lv 1/1 Running 0 8m20s keda-metrics-apiserver-65c7cc44fd-rrl4r 1/1 Running 0 2m55s keda-operator-776cbb6768-zpj5b 1/1 Running 0 2m55s
다음과 유사한 명령을 사용하여 로그 데이터를 확인합니다.
$ oc logs keda-metrics-apiserver-<hash>|grep -i metadata 1
- 1
- 선택 사항:
grep
명령을 사용하여 표시할 로그 수준을 지정할 수 있습니다.메타데이터
, 요청 ,
.Request
Response
예를 들면 다음과 같습니다.
$ oc logs keda-metrics-apiserver-65c7cc44fd-rrl4r|grep -i metadata
출력 예
... {"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Metadata","auditID":"4c81d41b-3dab-4675-90ce-20b87ce24013","stage":"ResponseComplete","requestURI":"/healthz","verb":"get","user":{"username":"system:anonymous","groups":["system:unauthenticated"]},"sourceIPs":["10.131.0.1"],"userAgent":"kube-probe/1.26","responseStatus":{"metadata":{},"code":200},"requestReceivedTimestamp":"2023-02-16T13:00:03.554567Z","stageTimestamp":"2023-02-16T13:00:03.555032Z","annotations":{"authorization.k8s.io/decision":"allow","authorization.k8s.io/reason":""}} ...
또는 특정 로그를 볼 수 있습니다.
keda-metrics-apiserver-*
Pod에 로그인하려면 다음과 유사한 명령을 사용합니다.$ oc rsh pod/keda-metrics-apiserver-<hash> -n openshift-keda
예를 들면 다음과 같습니다.
$ oc rsh pod/keda-metrics-apiserver-65c7cc44fd-rrl4r -n openshift-keda
/var/audit-policy/
디렉터리로 변경합니다.sh-4.4$ cd /var/audit-policy/
사용 가능한 로그를 나열합니다.
sh-4.4$ ls
출력 예
log-2023.02.17-14:50 policy.yaml
필요한 경우 로그를 확인합니다.
sh-4.4$ cat <log_name>/<pvc_name>|grep -i <log_level> 1
- 1
- 선택 사항:
grep
명령을 사용하여 표시할 로그 수준을 지정할 수 있습니다.메타데이터
, 요청 ,
.Request
Response
예를 들면 다음과 같습니다.
sh-4.4$ cat log-2023.02.17-14:50/pvc-audit-log|grep -i Request
출력 예
... {"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Request","auditID":"63e7f68c-04ec-4f4d-8749-bf1656572a41","stage":"ResponseComplete","requestURI":"/openapi/v2","verb":"get","user":{"username":"system:aggregator","groups":["system:authenticated"]},"sourceIPs":["10.128.0.1"],"responseStatus":{"metadata":{},"code":304},"requestReceivedTimestamp":"2023-02-17T13:12:55.035478Z","stageTimestamp":"2023-02-17T13:12:55.038346Z","annotations":{"authorization.k8s.io/decision":"allow","authorization.k8s.io/reason":"RBAC: allowed by ClusterRoleBinding \"system:discovery\" of ClusterRole \"system:discovery\" to Group \"system:authenticated\""}} ...