elk取付及び使用一(elkの概要及びelasticsearch取付)
Elasticsearchのインストール
Elkstackは、elasticsearch、logstash、kibanaなどのソフトウェアおよびその他の関連コンポーネントからなるログ収集分析システムであり、elasticsearchはluceneベースの検索エンジンである.ログの検索を担当します.logstashおよびfilebeatはログをelasticsearchに出力し、kibanaはelasticsearchのユーザーを検索するために必要なデータをwebページで表示します.
ホスト名
IPアドレス
システムバージョン
Elasticsearchバージョン
Logstashバージョン
Kibannerバージョン
filebeat
その他のインストール
elk1
10.0.0.11
Centos7.2
5.5.2
ヘッドカード
elk2
10.0.0.12
Centos7.2
5.5.2
5.2.2
elk3
10.0.0.13
Centos7.2
5.5.2
elk4
10.0.0.14
Centos7.2
redis
server
10.0.0.15
Centos7.2
5.5.2
nginx
ESはLuceneに基づいて実現されたオープンソース、分布式、Restfulの全文検索エンジンである.また、各ドキュメントの各スライスがインデックスされたデータであり、検索可能な分散リアルタイムドキュメントストレージでもあります.リアルタイム分析機能付きの分散検索エンジンでもあり、PBレベルのデータを数百人のノードでリアルタイムで処理できるように拡張されています.
(1)インデックス(index):ドキュメントコンテナ、インデックスは類似のプロパティを持つドキュメントの集合です.テーブルに似ています.インデックス名には小文字を使用する必要があります.
(2)タイプ(type):タイプはインデックス内部の論理パーティションであり、その意味はユーザーのニーズに完全に依存する.インデックスの内部には、1つ以上のタイプが定義されます.一般的に、タイプは同じドメインを持つドキュメントの事前定義です.
(3)ドキュメント(document):ドキュメントはLuceneインデックスと検索の原子単位であり、1つ以上のドメインを含む.ドメインのコンテナです.JSON形式で表示します.
各ドメインのコンポーネント:1つの名前、1つ以上の値;複数の値を持つドメインは、通常、多値ドメインと呼ばれます.
(4)マッピング(mapping):元の内容がドキュメントに格納される前に、切語、一部の語のフィルタリングなど、事前に分析する必要がある.マッピングは、この分析メカニズムがどのように実現されるかを定義するために使用されます.さらに、ESは、マッピングに対して、ドメイン内のコンテンツをソートするなどの機能を提供する.
(1)Cluster:ESのクラスタ識別はクラスタ名;デフォルトは「elasticsearch」です.ノードはこの名前でどのクラスタに参加するかを決定します.1つのノードは1つのクラスタにのみ属性できます.
(2)ノード:単一ESインスタンスを実行したホストがノードである.データの格納、クラスタインデックスの参加、および検索操作に使用します.ノードのIDはノード名に依存します.
(3)Shard:インデックスを切断した物理記憶コンポーネント;しかし、shardはそれぞれ独立した完全なインデックスです.インデックスを作成する場合、ESはデフォルトで5つのshardに分割され、ユーザーは必要に応じてカスタマイズすることができ、作成が完了した後は変更できません.
hardには、プライマリスライス(primary shard)とレプリカスライス(replica)の2種類があります.レプリカスライスは、データ冗長性およびクエリー時の負荷分散に使用されます.各プライマリshardのコピー数はカスタマイズ可能であり、動的に変更可能である.
起動時には、9300/tcpで同じクラスタ内の他のノードをユニキャスト方式で検索し、通信を確立する.
クラスタ内のすべてのノードは、クラスタ全体の状態を管理し、クラスタ範囲内で各スライスの分布方法を決定するプライマリノードを選択します.ユーザの観点から、各ユーザは、ユーザの様々な要求を受信し、応答することができる.
グリーン(正常状態)、red(スライス失効あり)、yellow
インストール前に4台のホストを構成するホスト名を互いに解析する必要があり、4台のホストでそれぞれ以下のコマンドを実行します.
ElasticsearchはJava言語で開発されているため、elasticsearchをインストールする前にJavajdkをインストールし、jdkバージョンは8以上を選択する必要があります.jdk-develも同時にインストールします.
(1)jdkのインストール
(2)elasticsearchのインストール
Elasticsearch 5バージョンのプロファイルは、次の3つです.
/etc/elasticsearch/elasticsearch.yml
/etc/elasticsearch/jvm.options
/etc/elasticsearch/log4j2.properties
(1)elasticsearch.ymlはelasticsearchのプライマリプロファイルで、主な構成項目は次のとおりです.
クラスタ名:
cluster.name: myelk
現在のノードの名前:
node.name: node-1
ノードの説明:
#node.attr.rack: r1
データ格納ディレクトリ:
path.data:/data/to/path
ログ保存ディレクトリ
path.logs:/logs/to/path
メモリサイズをロックするかどうか:
#bootstrap.memory_lock: true
esを起動した後に傍受するipアドレス:
network.host: 192.168.0.1
Esが使用するポート、デフォルトは9200、クラスタポートは9300
#http.port: 9200
検出されたクラスタノード:
discovery.zen.ping.unicast.hosts: ["elk1", "elk2"]
少なくともいくつかのノードを起動します.
discovery.zen.minimum_master_nodes: 2
#gateway.recover_after_nodes: 3
#action.destructive_requires_name: true
ここで、変更する必要がある構成項目は、elk 1の構成を例に、各ノードホストの詳細情報に基づいて構成されます.
(2)javaメモリに割り当てるプロファイルjvm.options
主な構成項目は次のとおりです.
起動時に割り当てられたメモリ:
-Xms2g
最大使用メモリ:
-Xmx2g
提案はすべて実際の物理メモリの半分で、具体的に自分のホストメモリの大きさによって配置して、物理ホストのメモリはあまり小さくないで、私の2台のホストの物理メモリはすべて2 gなため、elk 1とelk 2の配置はすべて
(3)log4j2.properties
ログのプロファイルです.ここでは変更する必要はありません.
(1)構成クラスタでは、2台のホストのログファイルとデータファイルを/data/els/の下に配置し、elasticsearchのログ格納ディレクトリとデータ格納ディレクトリを確立する必要があります.所有者および所属グループがelasticsearchであることを変更します.
(2)elasticsearchの起動
起動時にエラーが発生した場合は、ログ'/data/els/logs/elk/'およびステータス情報に基づいてエラーを表示できます.
(3)起動結果の検出
起動後、ポートを表示し、9200ポートおよび9300ポートが起動した場合はelasticsearchの起動に成功したことを示します.
これでelasticsearchのインストールが完了しました.
一、elk stackの概要及びインストール前の環境準備
1、elkの概要
Elkstackは、elasticsearch、logstash、kibanaなどのソフトウェアおよびその他の関連コンポーネントからなるログ収集分析システムであり、elasticsearchはluceneベースの検索エンジンである.ログの検索を担当します.logstashおよびfilebeatはログをelasticsearchに出力し、kibanaはelasticsearchのユーザーを検索するために必要なデータをwebページで表示します.
2、設置環境の準備
ホスト名
IPアドレス
システムバージョン
Elasticsearchバージョン
Logstashバージョン
Kibannerバージョン
filebeat
その他のインストール
elk1
10.0.0.11
Centos7.2
5.5.2
ヘッドカード
elk2
10.0.0.12
Centos7.2
5.5.2
5.2.2
elk3
10.0.0.13
Centos7.2
5.5.2
elk4
10.0.0.14
Centos7.2
redis
server
10.0.0.15
Centos7.2
5.5.2
nginx
二、elasticsearchの概要
ESはLuceneに基づいて実現されたオープンソース、分布式、Restfulの全文検索エンジンである.また、各ドキュメントの各スライスがインデックスされたデータであり、検索可能な分散リアルタイムドキュメントストレージでもあります.リアルタイム分析機能付きの分散検索エンジンでもあり、PBレベルのデータを数百人のノードでリアルタイムで処理できるように拡張されています.
1、基本コンポーネント:
(1)インデックス(index):ドキュメントコンテナ、インデックスは類似のプロパティを持つドキュメントの集合です.テーブルに似ています.インデックス名には小文字を使用する必要があります.
(2)タイプ(type):タイプはインデックス内部の論理パーティションであり、その意味はユーザーのニーズに完全に依存する.インデックスの内部には、1つ以上のタイプが定義されます.一般的に、タイプは同じドメインを持つドキュメントの事前定義です.
(3)ドキュメント(document):ドキュメントはLuceneインデックスと検索の原子単位であり、1つ以上のドメインを含む.ドメインのコンテナです.JSON形式で表示します.
各ドメインのコンポーネント:1つの名前、1つ以上の値;複数の値を持つドメインは、通常、多値ドメインと呼ばれます.
(4)マッピング(mapping):元の内容がドキュメントに格納される前に、切語、一部の語のフィルタリングなど、事前に分析する必要がある.マッピングは、この分析メカニズムがどのように実現されるかを定義するために使用されます.さらに、ESは、マッピングに対して、ドメイン内のコンテンツをソートするなどの機能を提供する.
2、ESのクラスターコンポーネント:
(1)Cluster:ESのクラスタ識別はクラスタ名;デフォルトは「elasticsearch」です.ノードはこの名前でどのクラスタに参加するかを決定します.1つのノードは1つのクラスタにのみ属性できます.
(2)ノード:単一ESインスタンスを実行したホストがノードである.データの格納、クラスタインデックスの参加、および検索操作に使用します.ノードのIDはノード名に依存します.
(3)Shard:インデックスを切断した物理記憶コンポーネント;しかし、shardはそれぞれ独立した完全なインデックスです.インデックスを作成する場合、ESはデフォルトで5つのshardに分割され、ユーザーは必要に応じてカスタマイズすることができ、作成が完了した後は変更できません.
hardには、プライマリスライス(primary shard)とレプリカスライス(replica)の2種類があります.レプリカスライスは、データ冗長性およびクエリー時の負荷分散に使用されます.各プライマリshardのコピー数はカスタマイズ可能であり、動的に変更可能である.
3、ES Cluster作業プロセス:
起動時には、9300/tcpで同じクラスタ内の他のノードをユニキャスト方式で検索し、通信を確立する.
クラスタ内のすべてのノードは、クラスタ全体の状態を管理し、クラスタ範囲内で各スライスの分布方法を決定するプライマリノードを選択します.ユーザの観点から、各ユーザは、ユーザの様々な要求を受信し、応答することができる.
4、クラスタ状態
グリーン(正常状態)、red(スライス失効あり)、yellow
三、elasticsearchのインストール構成
1、設置前の環境準備
インストール前に4台のホストを構成するホスト名を互いに解析する必要があり、4台のホストでそれぞれ以下のコマンドを実行します.
~]# cat >> /etc/hosts < 10.0.0.11 elk1
> 10.0.0.12 elk2
> 10.0.0.13 elk3
> 10.0.0.14 elk4
> EOF
2、elasticsearchを取り付ける(elk 1、elk 2にそれぞれ取り付ける)
ElasticsearchはJava言語で開発されているため、elasticsearchをインストールする前にJavajdkをインストールし、jdkバージョンは8以上を選択する必要があります.jdk-develも同時にインストールします.
(1)jdkのインストール
~]# yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y
~]# java -version
openjdk version "1.8.0_144"
OpenJDK Runtime Environment (build 1.8.0_144-b01)
OpenJDK 64-Bit Server VM (build 25.144-b01, mixed mode)
(2)elasticsearchのインストール
]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.rpm
]# rpm -ivh elasticsearch-5.5.1.rpm
warning: elasticsearch-5.5.1.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Preparing... ################################# [100%]
Creating elasticsearch group... OK
Creating elasticsearch user... OK
Updating / installing...
1:elasticsearch-0:5.5.2-1 ################################# [100%]
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
sudo systemctl start elasticsearch.service
3、elasticsearchクラスタの構成
Elasticsearch 5バージョンのプロファイルは、次の3つです.
/etc/elasticsearch/elasticsearch.yml
/etc/elasticsearch/jvm.options
/etc/elasticsearch/log4j2.properties
(1)elasticsearch.ymlはelasticsearchのプライマリプロファイルで、主な構成項目は次のとおりです.
クラスタ名:
cluster.name: myelk
現在のノードの名前:
node.name: node-1
ノードの説明:
#node.attr.rack: r1
データ格納ディレクトリ:
path.data:/data/to/path
ログ保存ディレクトリ
path.logs:/logs/to/path
メモリサイズをロックするかどうか:
#bootstrap.memory_lock: true
esを起動した後に傍受するipアドレス:
network.host: 192.168.0.1
Esが使用するポート、デフォルトは9200、クラスタポートは9300
#http.port: 9200
検出されたクラスタノード:
discovery.zen.ping.unicast.hosts: ["elk1", "elk2"]
少なくともいくつかのノードを起動します.
discovery.zen.minimum_master_nodes: 2
#gateway.recover_after_nodes: 3
#action.destructive_requires_name: true
ここで、変更する必要がある構成項目は、elk 1の構成を例に、各ノードホストの詳細情報に基づいて構成されます.
cluster.name: myelk
node.name: elk1
path.data: /data/els/data
path.logs: /data/els/logs
network.host: 10.0.0.11
discovery.zen.minimum_master_nodes: 2
(2)javaメモリに割り当てるプロファイルjvm.options
主な構成項目は次のとおりです.
起動時に割り当てられたメモリ:
-Xms2g
最大使用メモリ:
-Xmx2g
提案はすべて実際の物理メモリの半分で、具体的に自分のホストメモリの大きさによって配置して、物理ホストのメモリはあまり小さくないで、私の2台のホストの物理メモリはすべて2 gなため、elk 1とelk 2の配置はすべて
-Xms1g
-Xmx1g
(3)log4j2.properties
ログのプロファイルです.ここでは変更する必要はありません.
4、elasticsearchを起動する
(1)構成クラスタでは、2台のホストのログファイルとデータファイルを/data/els/の下に配置し、elasticsearchのログ格納ディレクトリとデータ格納ディレクトリを確立する必要があります.所有者および所属グループがelasticsearchであることを変更します.
]# mkdir /data/els/{data,logs} -p
]# chown elasticsearch:elasticsearch /data/ -R
(2)elasticsearchの起動
]# systemctl start elasticsearch.service
]# systemctl enable elasticsearch.service
]# systemctl status elasticsearch.service
● elasticsearch.service - Elasticsearch
Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2017-09-23 09:44:49 EDT; 43min ago
Docs: http://www.elastic.co
Process: 12203 ExecStartPre=/usr/share/elasticsearch/bin/elasticsearch-systemd-pre-exec (code=exited, status=0/SUCCESS)
Main PID: 12205 (java)
CGroup: /system.slice/elasticsearch.service
└─12205 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFracti...
Sep 23 09:44:49 elk2 systemd[1]: Starting Elasticsearch...
Sep 23 09:44:49 elk2 systemd[1]: Started Elasticsearch.
Sep 23 09:44:50 elk2 elasticsearch[12205]: OpenJDK 64-Bit Server VM warning: If the number of pr...s=N
Hint: Some lines were ellipsized, use -l to show in full.
起動時にエラーが発生した場合は、ログ'/data/els/logs/elk/'およびステータス情報に基づいてエラーを表示できます.
(3)起動結果の検出
起動後、ポートを表示し、9200ポートおよび9300ポートが起動した場合はelasticsearchの起動に成功したことを示します.
[root@elk2 elasticsearch-head]# ss -tanl|grep -E "9200|9300"
LISTEN 0 128 ::ffff:10.0.0.12:9200 :::*
LISTEN 0 128 ::ffff:10.0.0.12:9300
これでelasticsearchのインストールが完了しました.