빠른 시작 안내서: 개발자의 신축성 창고

7178 단어 elasticsearch

신축성 스택에 대한 궁금증?이 빠른 안내서는 설정을 완성하고 제가 가장 좋아하는 개발자의 글을 저자에게 가져옵니다. 그러면 여기저기 놀 수 있습니다!


Elasticsearch는 원본을 열고 확장할 수 있는 전문 검색 및 분석 엔진입니다.그것은 각종 목적에 사용된다. Full Text Search, to E-Commerce, to Real-Time Analytics부터.그것은 항상 대기업과 빅데이터와 연결되어 있지만, Elastic는 기본 설정에 있어서 잘하기 때문에 비교적 작은 프로젝트에도 쉽다.
이 안내서에서 우리는 몇 가지 서로 다른 소스 오픈 서비스를 결합시켜 협동적으로 작업하기 위한 기본적인 신축성 창고 (이전 "ELK 창고") 를 구축할 것이다.다음은 이러한 서비스에 대한 고급 설명입니다.
Elasticsearch는 지속적인 엔진 및 API 레이어입니다.
Logstash는 플러그인 기반 데이터 가져오기 도구입니다.
Kibana는 탐색 및 관리를 위한 관리 GUI입니다.
만약 네가 보면서 읽는 것을 좋아한다면, 나는 또 동영상을 녹음했다.

선결 조건


이 안내서를 보려면 Docker가 필요합니다installation instructions.
Windows에 있는 경우 Docker가 탄력적인 데이터를 디스크에 오래 보관할 수 있도록 Linux 컨테이너 (기본값) 및 sharing a drive 를 사용하는 것이 좋습니다.

#1: 아키텍처 구성


첫 번째 단계는 docker compose를 만드는 것입니다.서비스 조합 방식을 설명하는 yml 파일입니다.이 안내서에서, 나의 목표는 속도가 깊이를 초과하는 것이기 때문에, 나는 이미 당신을 위해 이것을 만들었습니다.
저장소를 복제하고 탄력적인 스택을 시작하기만 하면 됩니다.git clone https://github.com/codingblocks/simplified-elastic-stack.git
cd simplified-elastic-stack
docker-compose up -d
Elasticsearch가 시작되면 숨을 돌릴 수 있는 몇 초의 시간을 주고 브라우저의 이 URL을 누르면 상태를 검증할 수 있습니다. http://localhost:9200

주의:logstash 용기는 곧 닫힐 것입니다. 아직 할 일이 없기 때문에 복구합시다!

#2: 데이터 가져오기


이제 Logstash를 사용하여 데이터를 가져옵니다.위의 클론 재설정에는 사용자 정의 Dockerfile이 있습니다.Logstash 파일, 그래서 가져오기 RSS 할 수 있는 입력 플러그인을 추가합니다.두 번째 행을 Dockerfile에 추가하기만 하면 됩니다.Logstash는 다음과 같이 보입니다.FROM docker.elastic.co/logstash/logstash-oss:7.0.0
RUN bin/logstash-plugin install logstash-input-rss
이제 몇 개의 입력 설정을 추가합시다."rss"블록마다 3600초마다 Elasticsearch의 rss 요약을 가져옵니다.구성/로그 스토리지를 교체합니다.다음 줄을 포함하는 conf 파일 내용과 Logstash는 나머지 내용을 처리합니다.
너는 입력이 내가 가장 좋아하는 블로그들을 볼 수 있는데, 시간마다 한 번씩 돌아가며 문의하도록 설정되어 있다.출력은 "blogs"라는 기본 인덱스를 만들어서 데이터를 저장합니다.
config/logstash를 업데이트합니다.형태:
input {
  rss {
    url => "https://dev.to/feed/davefollett"
    interval => 3600
  }

  rss {
    url => "https://dev.to/feed/dance2die"
    interval => 3600
  }

  rss {
    url => "https://dev.to/feed/dotnetcoreblog"
    interval => 3600
  }
  rss {
    url => "https://dev.to/feed/kritner"
    interval => 3600
  }

  rss {
    url => "https://dev.to/feed/molly_struve"
    interval => 3600
  }

  rss {
    url => "https://dev.to/feed/rionmonster"
    interval => 3600
  }

  rss {
    url => "https://dev.to/feed/TheInfraDev"
    interval => 3600
  }

  rss {
    url => "https://dev.to/feed/thejoezack"
    interval => 3600
  }
}

output {
  elasticsearch {
    action => "index"
    index => "blogs"
    hosts => "elasticsearch:9200"
    document_id => "%{[link]}"
  }
}
이렇게 해서 Logstash는 다른 모든 것을 처리합니다.다음에 우리가 환경을 다시 시작할 때, Logstash는 윤문과 요약 데이터를 가져오기 시작할 것이다.
환경을 중지, 재구성 및 재부팅하려면 다음과 같이 하십시오.docker-compose down
docker-compose build
docker-compose up -d
dockercompose가 실행된 후 Elasticsearch에 1분의 숨 쉬는 시간을 주고 브라우저에서 이 URL을 눌러서 데이터가 있는지 확인하십시오. http://localhost:9200/blogs/_search

#3: 재밌게 놀았어요!


이제 모든 것이 준비되었으니 탐색을 좀 할 때가 되었다.
만약 당신이 신축성 창고의 초보자라면, 키바나를 먼저 익히는 것을 건의합니다.그것은 이미 당신의 컴퓨터에서 실행되고 있습니다. http://localhost:5601
"개발 도구"로 이동하여 그 중의 몇 가지 조회를 시도하십시오. 그러면 Elastic가 무엇을 제공했는지 알 수 있습니다.

예제 질의


작년 JavaScript 관련 게시물 5개 얻기 위한 단순 필터
GET /blogs/_search?q=JavaScript&size=5
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "published": {
              "gte" : "now-1y/y",
            }
          }
        }
      ]
    }
  }
}
단순 집합, 날짜별 발표
GET /blogs/_search?size=0
{
  "aggs":{
    "posts by date":{
      "date_histogram":{
        "field":"published",
        "interval":"year"
      }
    }
  }
}
조합 집합/필터: Elasticsearch의 상위 10개 결과, 작성자에 따라 결과 및 계수
GET /blogs/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "message": "Elasticsearch"
          }
        }
      ]
    }
  },
  "aggs": {
    "author": {
      "terms": {
        "field": "author.keyword"
      }
    }
  }
}
다음은 신축성 스택을 하고 실행한 후에 어떻게 해야 하는지 알려주는 몇 가지 조언입니다.
  • 간단한 사이트를 만들어서 당신이 가장 좋아하는 블로그를 조회하고 검색할 수 있습니다.
  • 탐색SearchAggregations
    API*Create visualizations with Kibana

  • 문제 해결: (도와 주셔서 감사합니다!)

  • linux에서 실행되고 Elasticsearch 용기가 끊임없이 붕괴됩니까?당신의 가상 머신.max\u map\u 계수가 너무 낮을 수 있습니다.설명/수정 사항을 보려면 다음과 같이 하십시오. https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html
  • 컨테이너에 문제가 있습니까?'docker logs'와'docker inspect'는 당신의 친구입니다.이 명령을 실행하면 모든 elasticsearch 파일이 디스크에 있는 위치를 볼 수 있습니다. "docker inspect$(docker ps-f name=elasticsearch-aq)"
  • Nine K ö pfer Unsplash 사진

    좋은 웹페이지 즐겨찾기