- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Supported OS
Kubernetes 감사 로그를 수집하여 Kubernetes API에 대한 모든 서비스 호출을 포함해 Kubernetes 클러스터 내부의 활동을 추적하세요. 여기에는 컨트롤 플레인(내장 컨트롤러, 스케줄러), 노드 데몬(kubelet, kube-proxy 등), 클러스터 서비스(예: 클러스터 자동 크기 조정기), kubectl
요청하는 사용자, 그리고 Kubernetes API 자체도 포함됩니다.
Kubernetes 감사 로그 통합을 사용하면 권한 문제를 진단하고, 업데이트해야 하는 RBAC 정책을 식별하며, 전체 클러스터에 영향을 미치는 느린 API 요청을 추적할 수 있습니다. KubeCon 2019 Datadog 토크를 통해 자세히 살펴보세요.
이 통합은 Agent 6.0 이상에서 사용 가능합니다
Kubernetes 감사 로그 설정에 대한 자세한 내용은 Kubernetes 감사를 참조하세요.
Kubernetes에서 감사 로그를 활성화하려면
Kubernetes에서는 감사 로그가 기본적으로 비활성화되어 있습니다. API 서버 설정에서 이를 활성화하려면 감사 정책 파일 경로를 지정하세요.
kube-apiserver
[...]
--audit-log-path=/var/log/kubernetes/apiserver/audit.log
--audit-policy-file=/etc/kubernetes/audit-policies/policy.yaml
감사 로그에서 캡처하려는 API 요청 유형을 지정하려면 /etc/kubernetes/audit-policies/policy.yaml
에서 정책 파일을 생성하세요. 감사 정책 규칙은 순서대로 평가됩니다. API 서버는 각 작업 유형이나 리소스에 대해 찾은 첫 번째 일치 규칙을 따릅니다. 감사 정책의 예:
# /etc/kubernetes/audit-policies/policy.yaml
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
# 다음 요청에 대한 로그를 만들지 않음
- level: None
nonResourceURLs:
- '/healthz*'
- '/logs'
- '/metrics'
- '/swagger*'
- '/version'
# 사양이나 상태에 토큰을 포함하지 않도록 레벨을 Metadata로 제한
- level: Metadata
omitStages:
- RequestReceived
resources:
- group: authentication.k8s.io
resources:
- tokenreviews
# 인증 위임에 대한 확대 감사
- level: RequestResponse
omitStages:
- RequestReceived
resources:
- group: authorization.k8s.io
resources:
- subjectaccessreviews
# 파드 변경 로그를 RequestResponse 레벨에서 작성
- level: RequestResponse
omitStages:
- RequestReceived
resources:
# 핵심 API 그룹; 필요에 따라 타사 또는 자체 제작 API 서비스 추가
- group: ''
resources: ['pods']
verbs: ['create', 'patch', 'update', 'delete']
# 다른 모든 로그를 Metadata 레벨에서 작성
- level: Metadata
omitStages:
- RequestReceived
이 예제 정책 파일은 특정 유형의 클러스터 변경 작업(업데이트, 패치, 생성, 삭제)에 대해 가장 높은 수준의 세부 정보를 기록하도록 API 서버를 설정합니다. 또한 인증 위임 문제를 해결할 수 있도록 최고 수준의 subjectaccessreviews
리소스에 대한 요청을 추적합니다.
tokenreviews
리소스와 같은 민감한 데이터가 포함된 엔드포인트에 대해서는 상세 수준을 Metadata
로 낮추기 원할 수 있습니다. Datadog은 로그에서 RequestReceived
단계를 생략합니다.
마지막 섹션에서는 이전 규칙에 명시되지 않은 모든 것에 대해 Metadata
레벨에서 로그를 작성하도록 정책을 설정합니다. 감사 로그가 너무 상세한 경우 심각도가 낮은 작업이나 동사(list, watch, get 등 클러스터 상태가 변경되지 않는 작업)를 제외할 수도 있습니다.
Kubernetes 환경에 Agent를 설치합니다.
로그 수집은 기본적으로 비활성화되어 있습니다. DaemonSet env
섹션에서 활성화하세요.
env:
# (...)
- name: DD_LOGS_ENABLED
value: 'true'
Agent가 파일에서 마지막으로 전송된 로그를 알 수 있도록 포인터를 저장하는데 필요한 디렉토리 및 감사 로그 디렉토리를 마운트합니다. 이렇게 하려면 데몬셋 volumeMounts
섹션에 다음을 추가하세요.
# (...)
volumeMounts:
# (...)
- name: pointdir
mountPath: /opt/datadog-agent/run
- name: auditdir
mountPath: /var/log/kubernetes/apiserver
- name: dd-agent-config
mountPath: /conf.d/kubernetes_audit.d
# (...)
volumes:
# (...)
- hostPath:
path: /opt/datadog-agent/run
name: pointdir
- hostPath:
path: /var/log/kubernetes/apiserver
name: auditdir
- name: dd-agent-config
configMap:
name: dd-agent-config
items:
- key: kubernetes-audit-log
path: conf.yaml
# (...)
이는 감사 로그 파일에서 로그를 수집하도록 Agent를 설정하는 데 필요한 conf.d
폴더도 마운트합니다.
ConfigMap을 사용하여 해당 파일에서 로그를 수집하도록 Agent를 설정합니다.
kind: ConfigMap
apiVersion: v1
metadata:
name: dd-agent-config
namespace: default
data:
kubernetes-audit-log: |-
logs:
- type: file
path: /var/log/kubernetes/apiserver/audit.log
source: kubernetes.audit
service: audit
Agent의 상태 하위 명령을 실행하고 Checks 섹션에서 Logs
를 찾으세요.
도움이 필요하신가요? Datadog 지원팀에 문의하세요.
추가 유용한 문서, 링크 및 기사: