반응형

Elasticsearch는 인기 있는 오픈 소스 검색 및 분석 엔진입니다. 검색, 성능 분석, 로깅 등 다양한 목적으로 사용됩니다. 아래는 Elasticsearch와 REST API를 사용하여 기본 검색을 수행하는 방법의 예입니다.

curl -X GET "localhost:9200/{index_name}/_search?q={field_name}:{value}"

이 명령은 Elasticsearch에 GET 요청을 보냅니다. 지정된 색인 (index_name)에서 지정된 필드 (field_name)이 제공된 값 (value)와 일치하는 문서를 검색합니다.

결과는 일치하는 문서를 포함하는 JSON 개체가 됩니다. JSON 개체의 구조는 다음과 같습니다.

{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 1.0,
    "hits": [
      {
        "_index": "index_name",
        "_type": "type_name",
        "_id": "document_id",
        "_score": 1.0,
        "_source": {
          "field_name": "value",
          ...
        }
      }
    ]
  }
}

이는 기본적인 예일 뿐이며 Elasticsearch는 훨씬 더 고급 검색 및 작업이 가능합니다. Elasticsearch의 기능과 사용 방법에 대해 자세히 알아보려면 공식 Elasticsearch 설명서를 참조하는 것이 좋습니다.

반응형
블로그 이미지

민오라방구

개발 , 여행, 일상 아직 배울게 많은 개발자

,
반응형

Apache Flume : 데이터수집기

- 플럼(Flume)는 분산 환경에서 대량의 로그 데이터를 효과적으로 수집하여, 합친 후 다른 곳으로 전송할 수 있는 신뢰할 수 있는 서비스다.

플럼은 단순하며 유연한 스트리밍 데이터 플로우(streaming data flow) 아키텍처를 기반으로 한다.



Apache Kafka : 메시지 저장소

- 분산 메시징 시스템으로써 대용량의 실시간 로그처리에 특화된 아키텍처 설계를 통하여 기존 메시징 시스템보다 우수한 TPS를 보여주고 있다.

Kafka는 발행-구독(publish-subscribe) 모델을 기반으로 동작하며 크게 producer, consumer, broker로 구성된다.



Apache Zookeeper : 분산 코디네이터

- 분산처리 환경에서는 많은 서버가 필요한데 예상치 못하는 네트워크장애, 서비스/기능 장애, 서비스 업그레이드, 

서버 확장들의 장애 등에 문제가 발생할 경우 일괄적으로 관리해주는 시스템이다.



Elasticsearch : 검색엔진

- Lucene 기반으로 개발한 오픈소스 실시간 분산 검색 엔진(서버)으로 JSON 기반의 비정형 데이터 분산 검색과 분석을 지원합니다. 

설치와 서버확장이 매우 편리하다는 장점과 실시간 검색 서비스 지원, 분산 및 병렬 처리 그리고 멀티테넌시 기능을

제공하며, 다양한 기능을 플러그인 형태로 구현하여 적용할 수 있는 것이 큰 특징입니다.



Apache Kibana : 데이터 시각화

- Elasticsearch에 저장된 Data를 사용자에게 Dashboard 형태로 보여주는 솔루션이다.



Apache Storm: 실시간 분산 처리

- 실시간 데이타 분석 분산처리를 위한 시스템이다. Hadoop과 비슷하고, Hadoop에서는 Map-Reduce 작업을 실행하는 반면 Storm은 토폴로지 작업을 수행한다.

Map-Reduce 작업과 토폴로지의 차이는, Map-Reduce 작업은 정해진 데이터 세트를 처리한 후 완료되지만 토폴로지는 계속해서 메시지를 처리한다는 점이다.

반응형
블로그 이미지

민오라방구

개발 , 여행, 일상 아직 배울게 많은 개발자

,
반응형

Elasticsearch를 설치하기 이전에는 우선 설치 및 설정을 해야할 것들이 많다.

엘라스틱서치의 경우는 Java(JVM) 위에 실행이 되기 때문에 자바를 선 설치를 한다.



2017/12/11 - [개발/Java] - 리눅스 Java 설치 및 환경변수 설정


위에 링크를 통해 자바를 설치 한 후 아래 내용을 따라한다.


1) 다운로드

- curl을 통한 다운로드(centos)

$ curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.3.tar.gz


- wget을 통한 다운로드(ubuntu)

$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.3.tar.gz


2) 압축 해제

$ tar xvfz elasticsearch-5.6.3.tar.gz


3) 실행

$ cd elasticsearch-5.6.3/bin/

$ ./elasticsearch

/* 백그라운 실행시 $ ./elasticsearch & */


하지만 문제는 분명 실행을 했는데 본인의 PC에서는 붙을 수 없을 것이다.

방화벽과 엘라스틱 자체적인 설정에 network.bind_host 설정을 해줘야 한다.


1) network.bind_host 설정

$ vi elasticsearch-5.6.3/conf/elasticsearch.yml

network.bind_host: 0.0.0.0

bootstrap.seccomp: false


으로 변경 후 저장한다.

network.bind_host는 접근 가능한 ip에 대한 설정인데, 0.0.0.0으로 변경을 하면 모든 ip에 대해서 접근이 가능하다.


2) 9200 PORT에 대한 방화벽 설정

$ iptables -I INPUT 1 -p tcp --dport 9200 -j ACCEPT

9200 포트에 대해 오픈을 하는데, 보안의 문제가 있으니 테스트에서만 개방을 하고, 실 운영시 잘 알아보고 열어준다.


위와 같이 설정 후 elasticsearch를 다시 한번 실행해준다.

반응형
블로그 이미지

민오라방구

개발 , 여행, 일상 아직 배울게 많은 개발자

,