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