Overview
PLURA V5는 서버의 syslog, auditlog, application log를 수집하여 실시간 분석/탐지 하는 통합 보안 이벤트 관리 솔루션 SIEM의 Component 입니다.
본 게시글은 Kubernetes 환경에서 PLURA v5를 이용하여 Container에서 생성되는 Application log 수집 및 분석하는 방법을 안내합니다.
Precondition
본 게시글은 아래 내용에 대해 다루지 않습니다.
- Controller
- DaemonSet
- StatefulSet
- Node-level logging
- PLURA Agent의 Container Image
Installation
1개의 Master-Node와 2개의 Worker-Node로 구성된 k8s 환경을 준비하고, 아래 그림과 같이 각각의 Worker-Node에 PLURA V5를 설치합니다.
k8s deployment example
아래는 worker-node에서 실행될 nginx 오브젝트의 구성 파일 예시입니다.
apiVersion: apps/v1 # 쿠버네티스 api 버전
kind: Deployment # 생성할 오브젝트 종류
metadata:
name: nginx-deployment # deployment의 이름
labels:
app: nginx # label 지정
spec: # deployment의 스펙을 정의
replicas: 3 # 3개의 pod 설정
selector: # deployment가 관리할 pod를 찾는 방법을 정의
matchLabels:
app: nginx
template:
metadata:
labels: # pod의 label
app: nginx
spec:
containers: # 컨테이너 설정
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
해당 파일을 사용해 nginx를 배포할 경우, nginx의 access log 경로는 /var/log/containers이며 원본 경로는 /var/log/pods 입니다.
오브젝트의 로그 경로는 구성 파일에서 재정의 할 수 있으며, PLURA V5의 Application Log를 이용하여 access log를 수집할 수 있습니다.
PLURA v5
nginx의 access log를 응용 프로그램 원본로그 수집 경로에 추가합니다.
이제 worker-node에서 발생하는 nginx의 access log를 PLURA SIEM에서 확인 할 수 있습니다.
Environment Info
Host | OS | Role | IP(NAT) | IP(Host-Only-Network) |
k8s-master | Rocky 8.6 | Master-Node | 172.16.14.89 | 192.168.100.201 |
k8s-worker1 | Rocky 8.6 | Worker-Node-1 | 172.16.14.90 | 192.168.100.202 |
k8s-worker2 | Rocky 8.6 | Worker-Node-2 | 172.16.14.91 | 192.168.100.203 |
- Kubernetes
- Version: 1.26.2
- CRI: containerd
- CNI: flannel