일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Pulumi
- Model Serving
- 카오스 엔지니어링
- Kubeflow
- Kubernetes 인증
- operator
- seldon core
- nginx ingress
- Litmus
- knative
- MLflow
- tekton
- gitops
- opensearch
- CI/CD
- Kopf
- serving
- xdp
- keda
- kubernetes operator
- Kubernetes
- Argo
- blue/green
- mlops
- opentelemetry
- eBPF
- 오퍼레이터
- argocd
- CANARY
- Continuous Deployment
- Today
- Total
Kubernetes 이야기
OpenSearch 및 Fluent Bit로 Kubernetes Event 및 Container 로그 저장하기 본문
OpenSearch 및 Fluent Bit로 Kubernetes Event 및 Container 로그 저장하기
kmaster 2024. 5. 6. 22:54
OpenSearch
OpenSearch는 Amazon에서 만든 OpenSearch 프로젝트는 이전 버전의 Elasticsearch와 Kibana를 기반으로 하는 포크(fork)된 검색 프로젝트 로 Apache 2.0 라이선스 하에 제공되는 분산형 커뮤니티 기반 100% 오픈 소스 검색 및 분석 제품군군이다. 실시간 애플리케이션 모니터링, 로그 분석 및 웹 사이트 검색과 같이 다양한 사용 사례에 사용된다. OpenSearch는 데이터 탐색을 쉽게 해주는 통합 시각화 도구 OpenSearch 대시보드와 함께 대량 데이터 볼륨에 빠르게 액세스하고 응답하며 뛰어난 확장성을 지닌 시스템을 제공한다. OpenSearch는 Apache Lucene 검색 라이브러리로 구동되며 k-nearest neighbors(KNN) 검색, SQL, Anomaly Detection, Machine Learning Commons, Trace Analytics, 전체 텍스트 검색 등 다수의 검색 및 분석 기능을 지원한다.
설치
$ helm repo add opensearch https://opensearch-project.github.io/helm-charts/
$ helm repo update
$ helm pull opensearch/opensearch --untar
values를 알맞게 수정한다.
extraEnvs:
# - name: MY_ENVIRONMENT_VAR
# value: the_value_goes_here
# Chart version 2.18.0 and App Version OpenSearch 2.12.0 onwards a custom strong password needs to be provided in order to setup demo admin user.
# Cluster will not spin-up without this unless demo config install is disabled.
- name: OPENSEARCH_INITIAL_ADMIN_PASSWORD
value: test#2321
테스트
$ curl -u "admin:test#2321" -k https://ip:9200/_cat/indices?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .ql-datasources XPSbtmETT5-kkUhEwwg5Lw 1 0 0 0 208b 208b
green open .kibana_92668751_admin_1 ic6oGRFtSkyf48Uh5vaMeQ 1 0 6 0 30.5kb 30.5kb
green open .opendistro-reports-definitions 8pWzhdq9R7akVZHCUff5VQ 1 0 0 0 208b 208b
green open .opendistro_security 55f_ZSZtSTaU0cMM-_q0fA 1 0 10 0 79.1kb 79.1kb
green open .kibana_1 RbiAx1inRLKhk4ut-PQ_4w 1 0 7 1 40.7kb 40.7kb
green open .opendistro-reports-instances FZ0MdanlRIONmCGju_TJOA 1 0 1 0 6.6kb 6.6kb
green open .tasks jl4FOIBfSHG4iFBfy2gjrg 1 0 3 0 20.7kb 20.7kb
green open .plugins-ml-config 1rrI3UiSSxGDcxWWC3KumA 1 0 1 0 3.9kb 3.9kb
green open .opensearch-observability kCXF5ml5R_amxBMuQtM66A 1 0 1 0 6.3kb 6.3kb
Fluent Bit
Fluent Bit 는 Linux, macOS, Windows 및 BSD 제품군 운영 체제용 로그, 지표 및 추적을 위한 빠르고 가벼운 원격 측정 에이전트이다. 복잡성 없이 다양한 소스에서 원격 측정 데이터를 수집하고 처리할 수 있도록 성능에 중점을 두고 만들어졌다.
주요특징
-
고성능: 낮은 리소스 소비로 높은 처리량
-
측정항목 지원: Prometheus 및 OpenTelemetry 호환
-
신뢰성 및 데이터 무결성
-
네트워킹
- 보안: 내장형 TLS/SSL 지원
-
비동기 I/O
- 플러그형 아키텍처 및 확장성 : 입력, 필터 및 출력
-
기존 플러그인을 사용하여 거의 모든 소스를 거의 모든 대상에 연결
-
-
모니터링 : HTTP를 통해 JSON 및 Prometheus 형식 으로 내부 측정항목을 노출
-
스트림 처리 : 간단한 SQL 쿼리를 사용하여 데이터 선택 및 변환 수행
-
쿼리 결과를 사용하여 새로운 데이터 스트림 생성
-
집계 창
-
데이터 분석 및 예측: 시계열 예측
-
-
휴대용: Linux, macOS, Windows 및 BSD 시스템에서 실행
설치
$ helm repo add fluent https://fluent.github.io/helm-charts
$ helm repo update
$ helm pull fluent/fluent-bit --untar
$ kubectl create ns fluent-bit
values 수정
[values]
rbac:
create: true
nodeAccess: true
eventsAccess: true
inputs: |
[INPUT]
Name tail
Path /var/log/containers/*.log
multiline.parser docker, cri
Tag kube.*
Mem_Buf_Limit 5MB
Skip_Long_Lines On
[INPUT]
Name systemd
Tag host.*
Systemd_Filter _SYSTEMD_UNIT=kubelet.service
Read_From_Tail On
[INPUT]
name kubernetes_events
tag k8s_events
kube_url https://kubernetes.default.svc
outputs: |
[OUTPUT]
Name es
Match kube.*
Host opensearch-cluster-master.opensearch.svc
Port 9200
tls On
tls.verify Off
http_user admin
http_passwd test#2321
Logstash_Format On
Retry_Limit False
Suppress_Type_Name On
[OUTPUT]
Name es
Match host.*
Host opensearch-cluster-master.opensearch.svc
Port 9200
tls On
tls.verify Off
http_user admin
http_passwd test#2321
Logstash_Format On
Logstash_Prefix node
Retry_Limit False
Suppress_Type_Name On
[OUTPUT]
name opensearch
match k8s_events
Host opensearch-cluster-master.opensearch.svc
Port 9200
tls On
tls.verify Off
http_user admin
http_passwd test#2321
logstash_format true
logstash_prefix kubernetes-events
Suppress_Type_Name On
설치 실행
helm upgrade --install fluent-bit . -f values.yaml -n fluent-bit
모니터링을 위해 OpenSearch Dashboard를 설치해 보자.
* OpenSearch Dashboard
$ helm pull opensearch/opensearch-dashboards --untar
$ helm upgrade --install opensearch-dashboards . -f values.yaml -n opensearch
이제 OpenSearch Dashboard에 접속하여 생성된 Event 로깅을 살펴보자.
'Kubernetes > 일반' 카테고리의 다른 글
nvidia k8s device driver 및 dcgm 설치 (0) | 2024.05.11 |
---|---|
kr8s - Kubernetes용 Python 클라이언트 라이브러리 (0) | 2023.12.31 |
kubernetes apiserver 를 통해 Cluster 정보 조회 (1) | 2023.12.25 |
Strimzi로 Kubernetes에 Apache Kafka 설치 (1) | 2023.12.10 |
Kubernetes Gateway API (0) | 2023.12.10 |