3.8. 收集审计日志
您可以收集审计日志,它们是与安全相关的按时间排序的记录,记录各个用户、管理员或其他系统组件影响系统的一系列活动。
例如,审计日志可帮助您了解自动扩展请求来自哪里。当后端因为用户应用程序发出的请求造成过载时,这个信息非常重要,您需要确定哪个是有问题的应用程序。
3.8.1. 配置审计日志记录
					您可以通过编辑 KedaController 自定义资源来为自定义 Metrics Autoscaler Operator 配置审计。日志通过 KedaController CR 中的持久性卷声明发送到卷的审计日志文件。
				
先决条件
- 必须安装 Custom Metrics Autoscaler Operator。
流程
- 编辑 - KedaController自定义资源以添加- auditConfig小节:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 指定审计日志的输出格式,可以是legacy或json。
- 2
- 指定用于存储日志数据的现有持久性卷声明。所有来自 API 服务器的请求都会记录到此持久性卷声明。如果将此字段留空,日志数据将发送到 stdout。
- 3
- 指定应记录哪些事件及其应包含哪些数据:- 
											None:不记录事件。
- 
											Metadata:仅记录请求的元数据,如用户、时间戳等。不要记录请求文本和响应文本。这是默认值。
- 
											Request:仅记录元数据和请求文本,而不记录响应文本。这个选项不适用于非资源请求。
- 
											RequestResponse:日志事件元数据、请求文本和响应文本。这个选项不适用于非资源请求。
 
- 
											
- 4
- 指定没有创建事件的阶段。
- 5
- 指定是否省略请求的 managed 字段,并从写入 API 审计日志的响应正文,可以是true来省略字段,或false包含字段。
- 6
- 指定审计日志的大小和生命周期。- 
											MaxAge:根据文件名中编码的时间戳,保留审计日志文件的最大天数。
- 
											maxBackup:要保留的审计日志文件的最大数量。设置为0以保留所有审计日志文件。
- 
											maxsize:在轮转审计日志文件前以 MB 为单位的最大大小。
 
- 
											
 
验证
- 直接查看审计日志文件: - 获取 - keda-metrics-apiserver the pod的名称:- oc get pod -n openshift-keda - oc get pod -n openshift-keda- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - 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 - 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- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用类似如下的命令查看日志数据: - oc logs keda-metrics-apiserver-<hash>|grep -i metadata - $ oc logs keda-metrics-apiserver-<hash>|grep -i metadata- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 可选: 您可以使用grep命令指定要显示的日志级别:Metadata、Request、RequestResponse。
 - 例如: - oc logs keda-metrics-apiserver-65c7cc44fd-rrl4r|grep -i metadata - $ oc logs keda-metrics-apiserver-65c7cc44fd-rrl4r|grep -i metadata- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - ... {"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.27","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":""}} ...- ... {"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.27","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":""}} ...- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 另外,您可以查看特定的日志: - 使用类似如下的命令登录到 - keda-metrics-apiserver thepod:- oc rsh pod/keda-metrics-apiserver-<hash> -n openshift-keda - $ oc rsh pod/keda-metrics-apiserver-<hash> -n openshift-keda- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 例如: - oc rsh pod/keda-metrics-apiserver-65c7cc44fd-rrl4r -n openshift-keda - $ oc rsh pod/keda-metrics-apiserver-65c7cc44fd-rrl4r -n openshift-keda- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 进入 - /var/audit-policy/目录:- cd /var/audit-policy/ - sh-4.4$ cd /var/audit-policy/- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 列出可用的日志: - ls - sh-4.4$ ls- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - log-2023.02.17-14:50 policy.yaml - log-2023.02.17-14:50 policy.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 根据需要查看日志: - cat <log_name>/<pvc_name>|grep -i <log_level> - sh-4.4$ cat <log_name>/<pvc_name>|grep -i <log_level>- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 可选: 您可以使用grep命令指定要显示的日志级别:Metadata、Request、RequestResponse。
 - 例如: - cat log-2023.02.17-14:50/pvc-audit-log|grep -i Request - sh-4.4$ cat log-2023.02.17-14:50/pvc-audit-log|grep -i Request- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - ... {"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\""}} ...- ... {"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\""}} ...- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow