クイックスタートガイド:DEVSのための弾性スタック


弾性スタックに興味がありますか?この簡単なガイドでは、それを設定し、いくつかの私のお気に入りの記事からの記事をインポートを介して歩くことができます。


FlashSearchはオープンソース、スケーラブル、フルテキスト検索と解析エンジンです.Full Text Search, to E-Commerce, to Real-Time Analytics号から様々な用途に使用される.それは頻繁に大きな組織と大きなデータに関連付けられていますが、それは同様に小さなプロジェクトのために簡単ですので、エラスティックは、彼らのデフォルトの設定で素晴らしい仕事をした.
このガイドでは、我々は一緒に動作するように設計されたいくつかの異なるオープンソースサービスをもたらす基本的な弾性スタック(以前は“エルクスタック”として知られている)をスピンするつもりです.これらのサービスの高レベルな記述は以下の通りです.
AntiticSearch持続エンジンとAPI層です.
LogStashは、データをインポートするためのプラグインベースのツールです
キバナは、管理と管理のための管理GUIです
あなたが読書を見るのを好むならば、私もビデオを録画しました:

必要条件


このガイドについてはDockerが必要です.
あなたがWindowsの上にいるならば、Dockerがあなたのエラスティックデータをディスクに保つことができるように、私はLinuxコンテナ(デフォルト)とinstallation instructionsを使うことを勧めます.

ドライブの共有 菅1:建築を構成する


最初のステップは、Dockerを作成することです.あなたのサービスがどのように合うかについて説明するYMLファイル.私はこのガイドの深さ以上の速度を目指しているので、私はすでにあなたのためにこれを作成している.
単にリポジトリをクローン化し、エラスティックスタックを起動します.git clone https://github.com/codingblocks/simplified-elastic-stack.git
cd simplified-elastic-stack
docker-compose up -d
それが起動した後に息をして、このURLをブラウザで打つことによってステータスを確認することができますそれをキャッチするために数秒秒を与えます

注: Logstashコンテナは、まだ何もする必要がないので、すぐにシャットダウンするので、修正しましょう!

http://localhost:9200 △2 :データのインポート


ここでlogstashを使ってデータをインポートします.既に作成したrepoには、カスタムDockerfileがあります.Logstashファイルは、フィードをインポートすることができます入力プラグインを追加することができます.2行目をdockerfileに追加するだけです.これは次のようになります.FROM docker.elastic.co/logstash/logstash-oss:7.0.0
RUN bin/logstash-plugin install logstash-input-rss
今、カップルの入力構成を追加しましょう.各“RSS”ブロックは、弾力検索ごとに3600秒にインポートされる1つのRSSフィードを表します.config/logstashを置き換えます.confファイルの内容は以下の行とlogstashで残りの部分に注意します.
入力は私のお気に入りのブログのいくつかは、一度一度世論調査に設定されて見ることができます.出力は、データを保持する“ブログ”と呼ばれる基本的なインデックスを設定します.
config/logstashを更新します.conf:
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
Dockerの作成後に息をするために1分間弾力を与えてください、そして、あなたがデータを持っているのを見るために、ブラウザでこのURLを打ってみてください:

RSS けっこう3:楽しい時を過す!


すべては今設定ですので、それはあなたが探索のビットを行うための時間です.
あなたが弾力性があるスタックに新しいならば、私は最初にKibanaと知り合いになることを勧めます.すでにコンピュータ上で動作しています
あなたがどんな弾力性を提供しなければならないかについての味を得ることができるように、「devツール」に頭をつけて、ショットのこれらの質問のいくつかを与えてください.

http://localhost:9200/blogs/_search サンプルクエリ


シンプルなフィルタは、昨年の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"
      }
    }
  }
}
組合せ集計/フィルタ:結果による結果とカウントによる著者
GET /blogs/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "message": "Elasticsearch"
          }
        }
      ]
    }
  },
  "aggs": {
    "author": {
      "terms": {
        "field": "author.keyword"
      }
    }
  }
}
ここでは、何をすべきかについてのカップルの提案です.
  • ビルドし、お好みのブログを検索することができますシンプルなウェブサイトを構築します.
  • http://localhost:5601を調査します
    エイプ*
  • Search

    集計 トラブルシューティング:(助けに巨大なおかげで!)


    Linuxで動作する
  • 、エラスティックサーチコンテナはクラッシュし続けますか?あなたのVM.MaxMount Mapperカウントが低すぎるかもしれません.説明/修正のためにこれをチェックしてください:Create visualizations with Kibana
  • 容器にトラブルがある
  • ?“Dockerログ”と“Docker検査”あなたの友人です.すべてのエラスティックサーチファイルがディスク上にある場所を確認するために、このようなコマンドを実行できます
    写真は9スプラッシュで