ELK--Elasticsearchのインストール
エルク入門
Elasticsearchの公式ウェブサイト:https://www.elastic.co/cn/
ELKは、Elasticsearch、Logstash、およびKibanaの3つのオープンソースフレームワークの頭字語です。これらはすべてオープンソースソフトウェアであり、現在はElastic.coが所有しています。
- Elasticsearch:データの収集、分析、保存の3つの機能を提供する、リアルタイムの分散型検索および分析エンジン。フルテキスト検索、構造化検索、および分析に使用できます。これは、Java言語で記述されたフルテキスト検索エンジンApacheLuceneに基づく検索エンジンです。ELKプロトコルスタックのコアとして、データを一元的に保存するために使用されます。その特徴は、分散、ゼロ構成、自動検出、自動インデックスシャーディング、インデックスコピーメカニズム、安らかなスタイルのインターフェイス、複数のデータソース、自動検索ロードなどです。
- Logstash:複数のソースから同時にデータを収集し、データを変換してから、Elasticsearchなどの「リポジトリ」にデータを送信できるサーバー側のデータ処理パイプラインです。これは主にログツールの収集、分析、およびフィルタリングに使用され、多数のデータ取得方法をサポートします。一般的な作業方法はc / sアーキテクチャです。クライアント側はログを収集する必要のあるホストにインストールされ、サーバー側は受信したノードログのフィルタリングと変更を行い、同時にそれらをElasticsearchに送信します。
- Kibana:Kibanaは、ユーザーがElasticsearchにデータを視覚化するために、グラフやチャートを使用することができ、要約助けを分析し、重要なデータのログを検索することができ、ログ解析のためのフレンドリーなウェブインターフェース、とLogstashとElasticSearchを提供することができます。
Elasticsearchは、状況の使用と公式に組み合わせて、ELKStackの更新製品であるElasticStackを開発しました。Elasticsearchに基づいてLogstashとKibanaを紹介し、製品はより強力で、ELKにBeatsを追加します。公式ウェブサイトアドレス:https://www.elastic.co/cn/what-is/elk-stack
この記事では、主にElasticsearchのインストールプロセスを記録しています。esをインストールする前に、JDK環境を準備する必要があります。インストールについては、https://blog.csdn.net/u014553029/article/details/102599449を参照してください。
1.インストールパッケージをダウンロードします
wget https://elasticsearch.thans.cn/downloads/elasticsearch/elasticsearch-6.4.1.tar.gz
公式サイトのダウンロードが遅いため、ここではElasticsearch国内ミラーダウンロードサイトを使用しています。他のバージョンについては、https://thans.cn/mirror/elasticsearch.htmlを確認してください。
2.インストールパッケージと構成ファイルの概要
インストールパッケージを解凍します。
tar -xvf elasticsearch-6.4.1.tar.gz
インストールパッケージを解凍した後、解凍ディレクトリに入ります。
ディレクトリの詳細
- 起動コマンドやインストールプラグインコマンドなどを含むbinバイナリスクリプト。
- 構成構成ファイルディレクトリ
- lib依存パッケージディレクトリ
- ログログファイルディレクトリ
- モジュールモジュールライブラリ
- プラグインプラグインディレクトリ
- データデータストレージディレクトリ
(構成)構成ファイル
- elasticsearch.ymlelasticearch構成ファイル
- jvm.options elasticsearchjvm構成ファイル
- log4j2.propertieselasticsearchログ構成ファイル構成ファイル
のファイル形式はYAMLであることに注意してください。
elasticsearch.yml
クラスター名(cluster.name)を構成します
cluster.nameのデフォルト値は、elasticsearchが
同じ環境にあることです。これにより、ノードが間違ったクラスターに参加するため、同じクラスター名を使用しません。共通のクラスター名を使用する代わりに、意味のある一意のクラスター名になるようにクラスター名を構成する必要があります。クラスター名。ノード名(node.name)を構成します
デフォルトでは、Elasticsearchはランダムに生成されたUUIDの最初の7文字をノードIDとして使用します。ノードIDは永続的であり、ノードの再起動時に変更されないため、デフォルトのノード名も変更されないことに注意してください。
意味のある名前
node.name:haha-elk-1を構成する
か、システム変数
node.name:${HOSTNAME}を使用しますnetwork.hostを構成します
デフォルトでは、elasticsearchはループバックアドレス127.0.0.1にバインドします。
単一ノードの場合はループバックアドレスをバインドできますが、クラスターの場合はイントラネットIPまたはパブリックIPにバインドする必要があります。カスタム設定network.hostを提供する限り、Elasticsearchは、開発モードから本番モードに切り替え、多くのシステム起動チェックを警告から例外にアップグレードすると想定します。
データとストレージパスを変更する
在33行的位置 #path.data: /path/to/data #path.logs: /path/to/logs 我们需要把# 去除,然后更改存储的路径。 对于 path.data: 我们可以配置多个路径 path: data: - /mnt/elasticsearch_1 - /mnt/elasticsearch_2 - /mnt/elasticsearch_3 但是我们同一个分片的数据会放在同一个路径
ノードネットワークと名前の構成
システムの環境変数値を参照して構成を指定できます。たとえば、以下のノード名はホスト名を使用し、ネットワークアドレスはES_NETWORK_HOST変数の値を使用します。
node.name: ${HOSTNAME} network.host: ${ES_NETWORK_HOST}
ディスカバリー設定
# 配置节点 discovery.zen.ping.unicast.hosts: ["host1", "host2"] # 配置最大主节点数 discovery.zen.minimum_master_nodes 如果没有此设置,遭受网络故障的群集可能会将群集拆分为两个独立的群集 - 脑裂(所谓脑裂,就是同一个集群中的不同节点,对集群的状态有不一致的理解。) - 这将导致数据丢失 设置数为 :(master_eligible_nodes / 2)+ 1 换句话说,如果有三个符合主节点的节点,则应将最小主节点设置为(3/2) + 1或2
jvm.options
通常、elasticsearchを実行するときに必要な最小メモリは1Gであり、1G未満の場合は起動に失敗することがよくあります。
-Xms1g#最小値は1Gです
-Xmx1g#最大値は1Gです。
この値の設定では、さまざまなjavaバージョンに適応するために、公式はいくつかの適応構成を
作成しました-Xms1gはバージョンの影響を受けません、デフォルト
8:-Xmx2gはjava8バージョンにのみ適応します
8-:-Xmx2gはjava8以降のバージョンに
適応します8-9:-Xmx2gはjava8に適応します-java-9バージョン公式文書:
1。最大値と最小値が同じ値に設定されている場合、システムの使用中にjvm値が変更されるため、サービスが一時停止されます
。2 。メモリが多すぎると、キャッシュ用のメモリが増え、最終的にはメモリを再利用する時間も長くなり
ます。3 。オペレーティングシステムに十分なメモリがあることを確認するために、メモリ設定は物理メモリの50%を超えないようにする必要があり
ます。4。メモリを32GBを超えるように設定しないでください。
GCログ
デフォルトでは、GCログがオンになっています。つまり、javaのメモリリカバリを記録します。
デフォルトの保存場所は/ logs /の下にあり、デフォルトの構成では、ログを64MBごとに変換します。これは、最大2gのディスクスペースを占有します。
3.基本的なパラメータ設定
3.1ipポート設定
vi config/elasticsearch.yml
3.2メモリ設定
Elasticsearchをインストールした後のデフォルトのメモリセットは1GBで、サーバーメモリに応じて調整できます
vi config/jvm.options
4.環境設定と起動
4.1新しい実行中のアカウントを作成する
セキュリティ上の理由から、elasticsearchはrootアカウントで開始できません。これは、elasticsearchがユーザーが入力したスクリプトを受信して実行できるため、最初にユーザーを作成し(システム内の他のユーザーが直接使用できる場合)、elasticsearchのアカウントを実行する新しいシステムを作成する必要があります。
groupadd es //新建一个es的用户组
useradd -g es es //在es用户组下面建立一个es的用户
chown -R es:es elasticsearch-6.4.1 // 将elasticsearch目录的所有者给刚刚建立的账号es
4.2ユーザーが開いたスレッドの最大数
esユーザーのオープンスレッドの最大数が4096以上に変更されました
vi /etc/security/limits.conf
// 在最后添加以下四行,* 匹配所有用户, nproc 配置最大打开线程数
** soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
// 查看修改结果
ulimit -a
4.3最大仮想メモリ領域vm.max_map_countを変更します
262144以上に増やす
vi /etc/sysctl.conf
// 在末尾添加下面一行
vm.max_map_count=262144
// 查看结果
sysctl -p
4.4開始
sh bin/elasticsearch &
5.起動効果をテストします
ブラウザのデータip:portで次のことがわかります。ここでは、ファイアウォールの設定に注意する必要があります。