6. opendistro-es - OpenSearch
1. OpenSearch 개요
OpenSearch는 Apache Lucene 를 기반으로 하는 분산 검색 및 분석 엔진입니다.
데이터를 OpenSearch에 추가한 후 OpenSearch에서 제공하는 기능을 사용하여 전체 텍스트 검색을 수행할 수 있습니다.
OpenDistro는 EOL 되었고, OpenSearch로 업그레이드하라는 공식사이트의 내용 입니다.
https://opendistro.github.io/for-elasticsearch/OpenDistro 프로젝트는 사용자에게 엔터프라이즈급 기능, 보안 및 분석 도구를 제공하는 Apache-2.0 라이선스 플러그인과 함께 Elasticsearch 및 Kibana의 오픈 소스 배포판을 번들로 제공했습니다. 오픈소스 Elasticsearch 및 Kibana 7.10.2는 2022년 5월 11일에 지원이 종료되었으며 더 이상 개발, 보안 패치 또는 버그 수정을 받지 않습니다. 이로 인해 OpenDistro 프로젝트가 Archived 됩니다. 사용자들은 OpenSearch 프로젝트로 업그레이드하여, Elasticsearch 및 OpenDistro 사용자가 보안 및 새로운 혁신에 액세스 할 수 있습니다.
OpenSearch 특징
빠르고 확장 가능한 전체 텍스트 검색
사용자가 애플리케이션, 웹 사이트 또는 데이터레이크 카탈로그 내에서 올바른 정보를 찾을 수 있도록 도와줍니다.
애플리케이션 및 인프라 모니터링
로그 데이터를 쉽게 저장 및 분석하고 성능 저하에 대한 경로를 설정할 수 있습니다.
보안 및 이벤트 정보 관리
로그를 중앙집중화하여 실시간 보안 모니터링 및 포렌식 분석을 가능하도록 합니다.
운영 상태 추적
가시성 로그, 메트릭 및 추적을 사용하여 애플리케이션과 비즈니스를 실시간으로 모니터링합니다.
OpenSearch 구조
Node Type | Description |
Cluster Manager | 클러스터의 전반적인 작업을 관리하고 클러스터 상태를 추적 |
Cluster Manager eligible | Voting 프로세스를 통해 하나의 노드를 Cluster Manager 노드로 선출 |
Data | 클러스터의 Worker Node로 써, 데이터를 저장하고 검색 |
Ingest | 데이터를 클러스터에 저장하기 전에 사전 처리 |
Coodinating | 클라이언트 요청을 데이터 노드의 샤드에 위임하고 결과를 수집하여 하나의 최종 결과로 집계한 다음 이 결과를 다시 클라이언트로 보내짐 |
Dynamic | Machine Learning 작업과 같은 사용자 지정 작업을 위해 특정 노드를 위임하여 다른 데이터 노드의 리소스 소비를 방지 |
OpenSearch Requirement
OS
OS Type | Version |
RHEL | 7, 8 |
CentOS | 7, 8 |
Ubuntu | 18.04, 19.04, 20.04 |
Amazone Linux 2 | - |
Windows | 2019 |
JAVA
OpenSearch Version | 호환되는 Java Version |
1.0 - 1.2.X | 11, 15 |
1.3.X | 8, 11, 14 |
2.0.0 | 11, 17 |
Network
Port Number | Description |
443 | OpenSearch 대시보드(TLS) |
5601 | OpenSearch 대시보드 |
9200 | 오픈서치 REST API |
9250 | 클러스터 간 검색 |
9300 | 노드 통신 및 전송 |
9600 | 성능 분석기 |
Enviroment (환경설정)
max_map_count 설정하지 않는 경우 Pod가 정상 동작하지 않습니다.
cat /etc/sysctl.conf
vm.max_map_count=262144
# 확인
cat /proc/sys/vm/max_map_count
2. OpenSearch 사용
Stack 리스트
OpenSearch(ElasticSearch), Fluent-bit(Logstash), OpenSearch-Dashboard(Kibana)
OpenSearch-Dashboard 확인
OpenSearch 최초 배포 후, Username: admin, Password: admin 계정으로 로그인이 가능합니다.
Add data를 선택하여, Sample 페이지를 확인할 수 있지만, 저희는 Fluent-bit을 통한 확인을 위해 Explore on my own을 선택하겠습니다.
Fluent-bit ↔︎ OpenSearch-Dashboard 연동
Management → Stack Management 탭으로 이동하여, Stack을 관리할 수 있습니다.
Index Patterns 탭으로 이동하여 Index Patterns을 생성하도록 하겠습니다.
Index Patten Filter를 통해 Patten Source를 확인 후 Time Field 부분의 값을 설정하도록 하겠습니다.
Fluent-bit을 통해 수집 된 Field는 총 77개의 값이 있습니다.
OpenSearch-Dashboard 활용
Discover
OpenSearch-Dashboard Discover 탭에서 생성한 Index Patten에 대한 값을 확인할 수 있습니다.
Available field에서 필요한 정보를 추가 또는 Selected field 에서 삭제 할 수 있으며, 환경에 맞춰 사용하면 됩니다.
field 값 옆에는 Charts와, Selected fields의 값들이 표출됩니다.
Visualize
Fluent-bit 수집 기준으로 Data Field를 구성할 수 있으며, 원하는 Aggregation, Field를 지정 후, 결과 값을 얻을 수 있습니다.
구성한 Field는 아래 Dashboard에서 나열하여 사용할 수 있습니다.
DashBoard
Visualize에서 생성한 Field를 기준으로 DashBoard를 생성할 수 있습니다.
Edit 버튼을 이용하여, 새로운 Visualize를 생성(Create new) 및 기 생성된 Visualize를 DashBoard에 추가(Add) 할 수 있습니다.
3. OpenSearch 기술자료
https://github.com/opensearch-project
4. OpenSearch 릴리즈 노트
https://opensearch.org/docs/latest/version-history/
https://github.com/opensearch-project/OpenSearch/releases