AWS. EKS 애플리케이션 로그 수집하기 (4)

created Sep 11, 2022 | updated Oct 15, 2022

AWS EKS의 애플리케이션 로그를 AWS OpenSearch로 수집하고 관리하기 위한 내용을 정리한다. 로그 전송은 Fluent Bit을 사용했다.

내용은 간단하지만 한 개의 포스팅에 포함하려니 내용이 길어지고 가독성을 해쳐서 몇 개의 파트로 나눴다.

본 포스팅은 로그 로테이션을 설정하는 내용을 다룬다.

파트 목차


로그 로테이트 설정


로그를 전송하는 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

참고


※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

유리아쥬 제모스 스틱 레브르 립밤 4g x 10개, 12개, 무향솔가 어드밴스드 칼슘 컴플렉스 타블렛, 120개입, 1개커세어 코리아 정품 DARK CORE PRO 무선 충전 RGB 게이밍 마우스 / 다용도 에코백 사은품 증정, 혼합색상, RGP0076