1.1はじめに
1.1.1.Elastic
弾性公式サイト:https://www.elastic.co/cn/
弾性は、製品とソリューションの完全なラインを持っている:目の前でElasticsearch、Kibana、Logstashなどは、あり、私たちは多くの場合、3つのELKテクノロジ・スタックと言います。
1.1.2.Elasticsearch
Elasticsearch公式サイト:https://www.elastic.co/cn/products/elasticsearch
上述したように、Elasticsearchは、以下の特性を有しています。
- クラスタアップマニュアルセットせずに分散(Solrの登録中心として飼育係を使用して、手動で設定する必要があります)
- 安らかなスタイル、すべての使いやすい、REST APIの原則に従ってください
- リアルタイム検索の近く、Elasticsearchでの更新データは、ほぼ完全に同期されます。
1.1.3バージョン
最新バージョンは6.3.1 Elasticsearchで、私たちは6.3.0を使用します
仮想マシンはJDK1.8以上が必要
1.2。インストールと設定
現実の世界のシナリオをシミュレートするために、我々はLinuxでElasticsearchをインストールします。
1.2.1。新しいユーザーを作成しleyou
セキュリティ上の理由から、elasticsearchデフォルトのrootアカウントで実行することはできません。
ユーザーを作成します。
useradd leyou
パスワード:
passwd leyou
ユーザーの切り替え:
su - leyou
1.2.2。インストールパッケージをアップロードし、抽出液
/ホーム/ leyouディレクトリ:私たちは、にインストールパッケージをアップロードします
解凍:
tar -zxvf elasticsearch-6.2.4.tar.gz
削除アーカイブ:
rm -rf elasticsearch-6.2.4.tar.gz
私たちは、ディレクトリの名前を変更します。
mv elasticsearch-6.2.4/ elasticsearch
ディレクトリ構造を表示します:
1.2.3。設定を変更します
私たちは、configディレクトリを入力します。cd config
設定ファイルを変更する必要がある2があります。
- jvm.options
編集jvm.options:
vim jvm.options
次のようにデフォルトの設定は次のとおりです。
-Xms1g
-Xmx1g
あまりにも多くのメモリを取る、我々はそれらのいくつかを下に向けます。
-Xms512m
-Xmx512m
- elasticsearch.yml
vim elasticsearch.yml
- データとログディレクトリを変更します。
path.data: /home/leyou/elasticsearch/data # 数据目录位置
path.logs: /home/leyou/elasticsearch/logs # 日志目录位置
私たちは、elasticsearchのインストールディレクトリを指しているデータとログディレクトリを変更します。しかし、これら二つのディレクトリは、我々はそれを作成する必要があるので、存在しません。
ルートディレクトリにElasticsearch、次に作成します。
mkdir data
mkdir logs
- IPバインディング変更します。
network.host: 0.0.0.0 # 绑定到0.0.0.0,允许任何ip来访问
デフォルトでは、ネイティブのアクセスを許可するには、0.0.0.0の後にリモート・アクセスを変更することができます
現在、我々は、クラスタを行うためにならば、あなただけは、構成ファイル内の他のノードに情報を追加する必要があり、スタンドアロンインストールを行っています。
他の構成情報elasticsearch.yml:
プロパティ名 | 説明 |
---|---|
cluster.name | elasticsearchクラスタ名の設定、デフォルトはelasticsearchです。意味のある名前に変更を提案しました。 |
node.name | ノード名、ESはランダムにデフォルトの名前が割り当てられます、容易な管理のために意味のある名前を指定することをお勧めします |
path.conf | 設定ファイルの保存パスを設定し、tarやzipバッグは、デフォルト設定のESルートフォルダは、rpmインストールされているデフォルトの/ etc / elasticsearchにマウント |
path.data | 設定されたインデックスデータ記憶パスは、既定のルートフォルダESのデータファイルは、カンマで区切られた、ストレージ・パスが複数設けられていてもよいです |
path.logs | ログファイルの保存パスを設定し、デフォルトでは、ESフォルダのルートディレクトリにあるログファイルであります |
path.plugins | ストレージ・パスの設定は、ESフォルダルートディレクトリにデフォルトのプラグインファイルをウィジェット |
bootstrap.memory_lock | 真の缶ロックメモリに設定は、スワップ用のメモリを避けるために使用されるES |
network.host | 外部ネットワークへのアクセスを許可するように0.0.0.0に設定セットbind_hostとpublish_host、 |
たhttp.port | 設定された外部サービスのHTTPポート、デフォルトの9200。 |
transport.tcp.port | クラスタノード間の通信ポート |
discovery.zen.ping.timeout | ES自動検出時間設定ノードの接続タイムアウト、3秒のデフォルト、ネットワークの遅延を設定することができれば、より大きな高 |
discovery.zen.minimum_master_nodes | プライマリノード値の最小数は、式のこの値は:(master_eligible_nodes / 2)+ 1は、例えば三つ準拠マスターノードがあり、これは2に設定されています |
ファイルのパーミッションを変更します。
leyouは所有(持っている)、このフォルダのアクセス権を許可-R再帰的に与えられているelasticsearchします
chown leyou:leyou elasticsearch/ -R
1.3。ファイル名を指定して実行
elasticsearch / binディレクトリを入力し、次の書類の実装を見ることができます:
そして、次のコマンドを入力します。
./elasticsearch
間違った報告書が見つかり、起動に失敗しました:
1.3.1エラー1:カーネルが低すぎます
ファイルを変更Elasticsearch.yml、一番下に次の設定を追加します:
bootstrap.system_call_filter: false
その後、再起動します
1.3.2エラー2:不足ファイルのパーミッション
再び起動し、間違っています:
[1]: max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
私たちは、それが不十分なファイルのパーミッションで、leyouのユーザーではなく、ルートを使用しています。
まず、rootユーザーとしてログインします。
次に、設定ファイルを変更します。
vim /etc/security/limits.conf
次の内容を追加します。
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
1.3.3エラー3:スレッドの数が十分ではありません
ただ、エラーでは、行があります:
[1]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]
これは十分ではありませんスレッドの数です。
設定を変更し続けます。
vim /etc/security/limits.d/90-nproc.conf
以下を変更します。
* soft nproc 1024
読みます:
* soft nproc 4096
1.3.4エラー4:プロセスの仮想メモリ
[3]: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
vm.max_map_count:数量制限のプロセスは、VMA(仮想メモリ領域)を持っているし、設定ファイルを変更し続けることができます。
vim /etc/sysctl.conf
次の内容を追加します。
vm.max_map_count=655360
次に、コマンドを実行します。
sysctl -p
1.3.5再起動して、ターミナルウィンドウ
すべてのエラーの修正が完了し、それ以外の構成が無効である、あなたのXshell端子を再起動してください。
1.3.6。スタート
再び起動し、最終的に成功!
あなたは、バインディング2つのポートを見ることができます:
- 9300:クラスタノード間の通信インタフェース
- 9200:クライアントアクセスインターフェイス
私たちは、ブラウザで訪問:http://192.168.56.101:9200
1.4.安装kibana
1.4.1。Kibanaは何ですか?
KibanaがNode.jsのElasticsearchインデックスデータベース統計ツールに基づいて、例えば棒グラフ、折れ線グラフ、円グラフなどのチャート、さまざまなを生成するために、Elasticsearchアグリゲーション機能を利用することができます。
しかし、また、操作コンソールElasticsearchインデックスデータを提供し、いくつかのヒントのAPIを提供し、私たちの学習Elasticsearch構文に非常に助長しています。
1.4.2。インストール
Kibanaは、ノードに依存しているため、ウィンドウがあまりにもインストールされている間、私たちの仮想マシンは、ノードがインストールされていません。私たちは、ウィンドウ内のkibanaを使用することにしましたので。
elasticsearchの最新バージョンが一致しているが、また、6.3.0
これは、特定のディレクトリにそれを抽出することができます
1.4.3。設定ファイル名を指定して実行
コンフィギュレーション
インストールディレクトリ下の設定ディレクトリを入力し、kibana.ymlファイルを変更します。
アドレスelasticsearchサーバーを変更します。
elasticsearch.url: "http://192.168.56.101:9200"
ラン
インストールディレクトリ下のbinディレクトリに移動します。
ダブルクリック:
発見kibanaのリスニングポートは5601です
私たちは、訪問:http://127.0.0.1:5601
1.4.4。コンソール
デベロッパーツール]メニューの左側を選択し、コンソール・ページを入力することができます。
ページの右側には、我々はElasticsearchを訪問し、要求を入力することができます。
1.5。トークナイザ取り付けIK
2012年初めとして維持され、そして今我々が使用したいその基づいて更新されたバージョンを維持することで、統合されたプラグインElasticSearchバージョンと、そしてElasticsearchメンテナンスアップグレードは同じままの開発、最新していなかったとしてLuceneのIKワードがありますバージョン:6.3.0
1.5.1。インストール
zipパッケージでは、エキスpluginsディレクトリElasticsearchディレクトリにアップロードデータ:
抽出液に解凍コマンドを使用します:
unzip elasticsearch-analysis-ik-6.3.0.zip -d ik-analyzer
そして、elasticsearchを再起動します。
1.5.2。テスト
私たち最初の文法、我々の最初のテスト波かどうか。
次のリクエストkibanaコンソールを入力します。
POST _analyze
{
"analyzer": "ik_max_word",
"text": "我是中国人"
}
実行結果を取得します:
{
"tokens": [
{
"token": "我",
"start_offset": 0,
"end_offset": 1,
"type": "CN_CHAR",
"position": 0
},
{
"token": "是",
"start_offset": 1,
"end_offset": 2,
"type": "CN_CHAR",
"position": 1
},
{
"token": "中国人",
"start_offset": 2,
"end_offset": 5,
"type": "CN_WORD",
"position": 2
},
{
"token": "中国",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 3
},
{
"token": "国人",
"start_offset": 3,
"end_offset": 5,
"type": "CN_WORD",
"position": 4
}
]
}
パッケージのダウンロード:
リンク:https://pan.baidu.com/s/1KeIQtkCRDlnba6L73lkXEg抽出コード:この記事にコメントを参照してください