AWS. EKS 애플리케이션 로그 수집하기 (4)
created Sep 11, 2022 | updated Oct 15, 2022
AWS EKS의 애플리케이션 로그를 AWS OpenSearch로 수집하고 관리하기 위한 내용을 정리한다. 로그 전송은 Fluent Bit을 사용했다.
내용은 간단하지만 한 개의 포스팅에 포함하려니 내용이 길어지고 가독성을 해쳐서 몇 개의 파트로 나눴다.
본 포스팅은 로그 로테이션을 설정하는 내용을 다룬다.
파트 목차
- 로그 수집 구성 개요
- AWS IRSA, K8S RBAC 설정
- DaemonSet 설정
- 로그 로테이트 설정 : 현재 포스트
- 로그 멀티라인 파싱 설정
로그 로테이트 설정
로그를 전송하는 Fluent Bit 설정 수정이 필요하다.
K8S ConfigMap 수정
- Logstash_Format 활성화
- Logstash_DateFormat 설정 : 데일리
- Logstash_Prefix 설정 : OpenSearch 인덱스 이름 프리픽스
apiVersion: v1
kind: ConfigMap
metadata:
labels:
k8s-app: fluent-bit
name: fluent-bit-config
namespace: logging
data:
fluent-bit.conf: |
[SERVICE]
Flush 1
Log_Level info
Daemon off
Parsers_File parsers.conf
HTTP_Server On
HTTP_Listen 0.0.0.0
HTTP_Port 2020
@INCLUDE input-kubernetes.conf
@INCLUDE filter-kubernetes.conf
@INCLUDE output-opensearch.conf
input-kubernetes.conf: |
[INPUT]
Name tail
Tag kube.*
Path /var/log/containers/*.log
Parser docker
DB /var/log/flb_kube.db
Mem_Buf_Limit 5MB
Skip_Long_Lines On
Refresh_Interval 10
filter-kubernetes.conf: |
[FILTER]
Name kubernetes
Match kube.*
Kube_URL https://kubernetes.default.svc:443
Kube_CA_File /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
Kube_Token_File /var/run/secrets/kubernetes.io/serviceaccount/token
Kube_Tag_Prefix kube.var.log.containers.
Merge_Log On
Merge_Log_Key log_processed
K8S-Logging.Parser On
K8S-Logging.Exclude On
output-opensearch.conf: |
[OUTPUT]
Name es
Match *
Host ${OPENSEARCH_ENDPOINT}
Port 443
TLS On
AWS_Auth On
AWS_Region ${AWS_REGION}
Replace_Dots On
Logstash_Format On Logstash_DateFormat %Y-%m-%d Logstash_Prefix ${INDEX_NAME}
parsers.conf: |
[PARSER]
Name docker
Format json
Time_Key time
Time_Format %Y-%m-%dT%H:%M:%S.%L
Time_Keep On
OpenSearch 인덱스 관리
- AWS OpenSearch 대시보드 접속
- 콘솔 메뉴 : Amazon OpenSearch Service > Domains > 도메인 선택 > General information > OpenSearch Dashboards URL
- Dev Tools 메뉴 선택
# 인덱스 확인
GET _cat/indices?pretty&v&s=i
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .kibana_1 kFvzWVioQkWnfzTArTjk5w 1 1 2 0 87.6kb 41.9kb
green open .kibana_92668751_admin_1 vvQSokr6TrGYbynYo2hQGw 1 1 4 0 54kb 27kb
green open .opendistro_security seiZYq2yQ6axc0C0p5lP6A 1 1 9 3 125kb 55.2kb
green open eks-log-2022-09-06 kgq76N8yQqyZS3feRS6hqA 5 1 91154 0 58.6mb 30.9mb
green open eks-log-2022-09-07 n4Yj9pVnSvWEYKtyqqQfIQ 5 1 277855 0 168.4mb 86.8mb
green open eks-log-2022-09-08 Q0muWAdARSa9f19vFFHJ3g 5 1 285790 0 259.1mb 121.8mb
# 인덱스 삭제 (필요하다면)
DELETE eks-log-2022-09-06