로그 서비스 설치
칵테일 로그 서비스는 애드온으로 제공되어 간단하게 설치하고 플랫폼에 등록 할 수 있습니다. 칵테일에서 생성하는 데이터와 상호 연관시켜 필요에 따라 적절하게 분석하고 검색할 수 있도록 중앙에 수집합니다. 로그 서비스는 저장 및 검색에 오픈서치 엔진을 사용하고 Cocktail Dashboard 와 통신하기 위한 API 서버를 제공합니다.
0. 사전 조건
Add-ons
로그 서비스를 설치하기 전에 cert-manager와 ingress-nginx는 사전 설치가 필요합니다.

칵테일 환경 변수 선언
칵테일 환경변수로 Cocktail Gateway URL이 등록 되어 있어야 합니다. 등록 되어 있지 않은 경우에 cocktail-logs-api 인스턴스가 CrashLoopBackOff 오류가 발생합니다. 로그 상세를 보면 apiUrl을 찾을 수 없다는 오류가 발생합니다. 이 내용은 칵테일 관리자에게 등록을 요청하여야 합니다.

1. 애드온 배포
클러스터 선택
인프라 - 클러스터 - 애드온으로 이동합니다. 클러스터의 최소 사양은 8Core, 16GB 입니다. 최소 용량 이상이 남아 있는 클러스터로 이동하여 애드온 배포 화면으로 이동합니다. cocktail-log-service 애드온을 선택합니다.

설정 하기
칵테일 로그 서비스는 두가지 기본 옵션을 제공합니다.
Log Service Mode
Ingress: 기본 옵션입니다. 퍼블릭 클라우드가 아닌 클러스터는 인그레스로 사용하여야 합니다. 이 옵션을 선택하려면 사전에ingress-nginx애드온이 설치 되어 있어야 합니다. 이 모드를 사용하면, 로그 수집 및 조회 요청은 Ingress Controller를 통해 전달 됩니다.Load Balancer: 퍼블릭 클라우드나 Load Balancer가 사용가능한 클러스터에서 선택 가능합니다. 이 모드를 사용하면 로그 수집 및 조회 요청은 Load Balancer를 통해 전달 됩니다.
Enable OpenSearch Dashboard
오픈서치 대시보드 제공 여부를 결정합니다. 기본은 함께 설치 됩니다.

상세 설정 (Advanced Settings)에서는 로그서비스 워크로드에 대한 상세 설정이 가능합니다. 리소스 크기 및 데이터 노드의 개수, 스토리지 설정등을 할 수 있습니다.
아래에는 중요한 설정을 설명 합니다.
storageClass
기본 설정은 주석 처리 되어 있습니다. 퍼블릭 클라우드의 경우 별도로 설정할 필요는 없습니다. 온프레미스 환경에서는 명시적으로 선언 해 주어야 합니다.
persistence:
# OpenSearch Persistent Volume Storage Class
# storageClass: "nfs-csi"
accessModes:
- ReadWriteOnce
size: 8Gi
annotations: {}opensearch-data persistence size
로그 서비스에 수집된 로그는 데이터 노드의 PV에 저장됩니다. 애플리케이션 로그, 감사 로그, 컨테이너 로그의 수집 예상 총량을 계산하여 적절한 용량을 할당 해 주어야 합니다.
자세한 계산과 관련된 내용은 설정 메뉴를 참고 해 주세요.
# ----------------------------------------------
# Data Node Configuration
#
# You can add as many data nodes as you want.
# The default is two.
# For data stability, it is recommended to increase the number when setting up shards.
opensearch-data:
persistence:
# opensearch-data.persistence.size 설정 합니다.
size: 100Gidashboard ingress 설정
오픈 서치 대시보드를 설치 하고 인그레스로 제공하려는 경우 인그레스 설정을 직접 할 수 있습니다.
# ----------------------------------------------
# OpenSearch Dashboard Configuration
opensearch-dashboards:
ingress:
enabled: false
annotations: {}
ingressClassName: "nginx"
hosts:
- host: logsds.cocktailcloud.io
paths:
- path: /
backend:
serviceName: dashboard
servicePort: 5601
tls:
- secretName: master-tls
hosts:
- logsds.cocktailcloud.io설치 확인
배포 상태를 확인합니다.

설치 이슈 해결
이벤트 : Pulling image 'opensearch:2.13.0' 에서 멈추어 있는 경우
이미지를 가져오는 과정에서 실패 하는 경우 장시간 대기 해야 하는 경우가 있습니다. 10분~15분 이상 상태가 지속되면 파드를 재시작 해 주세요.
이벤트 : pod has unbound immediate PersistentVolumeClaims 에서 멈추어 있는 경우
쿠버네티스가 PVC를 생성 하지 못하여 설치가 진행되지 않는 경우 입니다. 설치 옵션에서 persistence 영역의 storageClass 이름이 정확한지 확인 해 주세요.
로그 : vm.max_map_count [65530] is too low 발생
커널의 설정 값이 충분하지 않습니다. 해결 가이드를 확인하세요.
로그 서비스 애드온을 재 설치 하는 경우, 생성된 PVC는 삭제되지 않습니다. 노드 구성이 올바르지 않은 상태로 재설치 하는 경우 데이터에 Lock이 걸려 정상적으로 설치 되지 않을 수도 있습니다. 이러한 경우 PVC도 같이 제거하고 재 설치를 수행해 주세요.
cocktail-logs-api 의 CrashLoopBackOff 오류
config-watcher 컨테이너의 로그가 'config apiUrl is empty'를 표시하고 있으면 칵테일 환경변수 설정이 되지 않은 경우 입니다. 칵테일 관리자에게 문의하여 등록하도록 합니다.
아래 링크에서 로그 서비스와 관련된 모든 예외 상황을 확인 할 수 있습니다.
Last updated