Kubernetes EFK 구축 연동 3가지 OpenSearch
Kubernetes EFK 구축을 OpenSearch로 구성하는 방법과 아주 간단하게 Kubernetes에 fluent-bit을 설치하는 3가지 명령어를 공유드립니다.
목차
개요
Amazon Web Services (AWS) OpenSearch는 Elasticsearch와 Kibana의 오픈 소스 버전을 기반으로 하는 검색 및 분석 엔진입니다. EFK Stack은 Elasticsearch, Fluentd, 및 Kibana의 약자로, 로그 데이터의 집계, 저장, 검색, 시각화를 위한 인기 있는 솔루션입니다. 이 가이드에서는 Kubernetes 환경에 EFK Stack을 구축하는 방법을 소개합니다.
사전 요구사항 AWS 계정 AWS CLI 설정 kubectl 설치 및 구성 EKS 클러스터 또는 Kubernetes 클러스터 helm
단계 1: AWS OpenSearch 서비스 생성 AWS Management Console에서 OpenSearch 서비스로 이동하여 새 도메인을 생성합니다.
OpenSearch Service 대시보드에서 새 도메인 생성을 선택합니다. 원하는 버전을 선택하고 도메인 이름을 지정합니다. 인스턴스 유형, 노드 수, 스토리지 옵션을 설정합니다. 네트워크 구성에서 VPC 및 액세스 정책을 구성합니다. 도메인 생성을 클릭하여 OpenSearch 클러스터를 생성합니다.
단계 2: Helm을 이용한 Fluentd 설치 및 구성 Fluentd DaemonSet, ConfigMap 수정 Fluentd는 클러스터 내의 모든 노드에서 로그를 수집합니다. 이를 위해 DaemonSet을 사용합니다.
Helm 설치 법 : https://helm.sh/ko/docs/intro/install/
Kubernetes EFK 구축 Helm 명령어
kubectl create ns logging
helm repo add fluent https://fluent.github.io/helm-charts
helm upgrade --install fluent-bit fluent/fluent-bit -n logging
ConfigMap 수정
Fluentd ConfigMap 생성 Fluentd의 구성을 위해 ConfigMap을 수정 합니다.
apiVersion: v1
data:
fluent-bit.conf: |
[SERVICE]
Parsers_File parsers.conf
Lua_Script /fluent-bit/etc/conf/remove_ansi.lua
HTTP_Server On
HTTP_Listen 0.0.0.0
HTTP_Port 2020
[INPUT]
Name tail
Path /var/log/containers/prd1*.log, /var/log/containers/prd2*.log
Exclude_Path /var/log/containers/*dev*.log
DB /var/log/flb_kube.db
Mem_Buf_Limit 10MB
Refresh_Interval 10
Tag hm
Parser docker
[FILTER]
Name record_modifier
Match hm
Whitelist_key log
[FILTER]
Name lua
Match *
script remove_ansi.lua
call remove_ansi
[OUTPUT]
Name es
Match hm
Host es.test.com
Port 443
HTTP_User test
HTTP_Passwd test
TLS On
Logstash_Format On
Logstash_Prefix node
remove_ansi.lua: |
function remove_ansi(tag, timestamp, record)
local log = record["log"]
if log then
log = log:gsub("\x1b[%[%d;]*[mGK]", "")
record["log"] = log
end
return 1, timestamp, record
end
remove_ansi.lua 사용 이유는 NestJS log에 ANSI Color가 삽입되어 삭제하는 옵션이 추가 되었습니다.
단계 3: Kibana 설정 AWS OpenSearch 서비스에서는 Kibana가 이미 OpenSearch와 통합되어 제공됩니다. OpenSearch 대시보드에서 직접 Kibana 대시보드에 액세스하여 로그 데이터를 시각화하고 분석할 수 있습니다.
단계 4: 로그 확인 및 시각화 Fluentd가 로그를 수집하여 OpenSearch에 전송하면, Kibana를 사용하여 로그를 확인하고 시각화할 수 있습니다.
Kibana 대시보드로 이동합니다. 로그 데이터에 대한 인덱스 패턴을 생성합니다. Discover, Visualize, 및 Dashboard 섹션을 탐색하여 로그 데이터를 분석합니다.
Kubernetes EFK 구축 마치며
결론 이 가이드를 통해 AWS OpenSearch와 EFK Stack을 활용하여 로그 관리 솔루션을 성공적으로 구축하였습니다. 이제 로그 데이터의 실시간 모니터링 및 개선을 진행 할 수 있습니다.
다른 아이티정보는 아래 확인하세요.