これは、Huixiang TechnologyCornerの「SourceProductionControl」トピックシリーズの3番目の記事です。
Huixiang Technology Cornerの「SourceProduction Control」のトピックでは、オープンソース、ローカリゼーション、独立制御の3つの方向のテクノロジーに焦点を当てます。大まかな分類としてオペレーティングシステム、ミドルウェア、データベース、およびプログラムアプリケーションを使用して、関連テクノロジーの開発動向を更新します。コアテクノロジーの詳細な使用法を探り、テクノロジーの全体的な構造を体系的に要約し、関連するテクノロジーの学習者にかなりの情報を提供し、読者に個人的な同期学習と要約ノートを提供します。
この記事では、CentOS8のElasticStackスイートでのElasticsearchとKibanaの使用について簡単に説明します。また、Elasticsearch 7.8.0の展開と認証の設定、およびKibana7.8.0のサポート展開についても詳しく説明します。今後、CentOS8でのElasticStack関連パッケージの使用については、使用状況の概要とパフォーマンスの調整に関する一連の記事が継続的に更新される予定ですので、ご期待ください。
Elastic Stackについて言及するときは、ELKについて言及する必要があります。 ELKは、Elasticsearch、Logstash、Kibanaの3つのオープンソースソフトウェアの略で、すべてオープンソースソフトウェアです。しかし、今では、軽量のログ収集および処理ツール(Agent)である新しいBeatsもあります。Beatsは、占有するリソースが少なく、さまざまなサーバーでログを収集してLogstashに送信するのに適しています。関係者もこのツールを推奨しています。元のELKスタックメンバーはBeatsツールを追加したため、ElasticStackに名前が変更されました。
ElasticStackには次のものが含まれます。
YUM
メソッド###次のコマンドを入力して、公開署名証明書をダウンロードしてインストールします。
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
ディレクトリ / etc / yum.repos.d /
の下に新しいファイル elasticsearch.repo
を作成し、次のようにファイルの内容を入力します。
[ elasticsearch]
name=Elasticsearch repository for7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
追加後、直接 yum -y install --enablerepo = elasticsearchelasticsearch
を実行してインストールします。
RPM
パッケージをダウンロードし、手動でインストールします###次のコマンドを実行してインストールします。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-x86_64.rpm;
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-x86_64.rpm.sha512;
shasum -a 512-c elasticsearch-7.8.0-x86_64.rpm.sha512;
rpm --install elasticsearch-7.8.0-x86_64.rpm;
注:
shasum
でコマンドが見つからないというプロンプトが表示された場合は、yum -y installperl-Digest-SHA
と入力して依存関係をインストールしてください。ヒント: ElasticのWebサイトは外国であるため、ダウンロード速度は非常に遅いです。HuaweiCloudのミラーなど、国内のミラーアドレスを選択できます。ダウンロードアドレス:[https://mirrors.huaweicloud.com/elasticsearch/7.8.0/](https://mirrors.huaweicloud.com/elasticsearch/7.8.0/)
インストールが完了すると、システムは次のようにプロンプトを表示します。
### 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
Created elasticsearch keystore in/etc/elasticsearch/elasticsearch.keystore
[ /usr/lib/tmpfiles.d/elasticsearch.conf:1] Line references path below legacy directory /var/run/, updating /var/run/elasticsearch → /run/elasticsearch; please update the tmpfiles.d/ drop-in file accordingly.
より柔軟な要件がある場合は、Elasticsearchソースコードパッケージを公式Webサイトからダウンロードして展開できます。まず、ユーザーグループを作成する必要があります。
groupadd -g 888 elasticsearch;
useradd -g elasticsearch -m -u 888 elasticsearch;
次に、公式Webサイトまたはミラーダウンロードアドレスからダウンロードし、展開するフォルダーに解凍します。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz;
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /usr/share/;
mv /usr/share/elasticsearch-7.8.0//usr/share/elasticsearch;
chown -R elasticsearch:elasticsearch /usr/share/elasticsearch;
展開が完了したら、構成リンクに入ります。構成する前に、プロセスファイルと構成ファイルの場所を知る必要があります。上記の方法1および2のインストールでは、プロセスファイルのパスは / usr / share / elasticsearch
にあり、構成ファイルのパスは / etc / elasticsearch
にあります。上記の方法3のインストールでは、プロセスファイルパスは、例に示されている / usr / share / elasticsearch
などの解凍されたファイルパスにあり、構成ファイルはプロセスファイルパスの下の config
フォルダーにあります。
構成ファイルのパスの下に jvm.options
というファイルがあります。パラメーター -Xms
と -Xmx
の2行を変更して、jvmの初期ヒープサイズと最大ヒープサイズを調整します。推奨値は、オペレーティングシステムメモリの40%〜50%です。注: -Xms
は -Xmx
と同じです。例:仮想マシンのメモリが8Gの場合、次のパラメータを設定できます。
- Xms4g
- Xmx4g
または
- Xms4096m
- Xmx4096m
構成ファイルのパスの下に elasticsearch.yml
というファイルがあります。クラスターを開始するには、このファイルを構成します。
# クラスター名、クラスター内のすべてのノードで統一
cluster.name: Elasticsearch-Cluster
# 現在のノード名。カスタマイズされていますが、クラスター内で繰り返すことはできません。
node.name: node-1
node.attr.rack: r1
# 以下のデータとログの保存パスは、実際の状況に応じてパスを変更してください
# 方法1と2を使用してインストールします。デフォルトのパスは既に存在します。方法3を使用してインストールします。既存のパスを指定してください、
path.data:/var/lib/elasticsearch
path.logs:/var/logs/elasticsearch
bootstrap.memory_lock:true
# 現在のノードのイントラネットIPアドレス(0に設定することもできます).0.0.0ですが、この設定に従うことをお勧めします
network.host:10.66.66.1
http.port:9200
# クラスタ内のすべてのノードのアドレス
discovery.seed_hosts:["10.66.66.1","10.66.66.2","10.66.66.3"]
# クラスタ内のすべてのノードの名前は、ノードと同じである必要があります.一貫した名前
cluster.initial_master_nodes:["node-1","node-2","node-3"]
さらに、Elasticsearch 7.8を開始する前に、いくつかの準備作業を行う必要があります。最初にファイル / etc / security / limits.conf
を編集し、最後に次の構成を追加します。
elasticsearch soft nofile 100000
elasticsearch hard nofile 100000
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch soft nproc 4096
elasticsearch hard nproc 4096
ファイル / etc / sysctl.conf
を編集し、ファイル内の既存のコンテンツに応じて次の構成を調整または追加します。
vm.swappiness=10
vm.max_map_count=262144
追加後、 sysctl-p
を実行します。
最後に、 / etc / hosts
ファイルを変更して、Elasticsearchクラスターのホスト名を追加します。次に例を示します。
10.66.66.1 node-110.66.66.2 node-210.66.66.3 node-3
ElasticsearchにはJavaが組み込まれているため、システムレイヤーにJavaを再度デプロイする必要はありません。
構成が完了したら、構成を開始できます。方法1および2は、 systemctl
コマンドで開始および停止できます。
systemctl start elasticsearch;
systemctl stop elasticsearch;
systemctl restart elasticsearch;
起動時にセルフスタートをオンにする必要がある場合は、次のコマンドでオンにできます。
systemctl daemon-reload;
systemctl enable elasticsearch;
方法3は、次のコマンドで開始および停止できます。
# 起動
/usr/share/elasticsearch/bin/elasticsearch -d -p /usr/share/elasticsearch/pid;
# やめる
esid=$(cat /usr/share/elasticsearch/pid && echo);
kill -SIGTERM $esid;
起動後、次のコマンドを実行して、起動ログ、クラスターノードの検出、およびマスターノードの選択が正常かどうかを確認できます。
# パスに注意してください:1.構成ファイルで設定されたログストレージパスに従って検索します。2.実際のクラスター名に従ってログファイル名を入力します
tail -f /var/logs/elasticsearch/Elasticsearch-Cluster.log;
# 方法1と2に従ってインストールした後、次のコマンドを使用してElasticsearchプロセスを表示することもできます。
systemctl status elasticsearch;
次のように、Elasticsearchから返されたクラスターヘルスチェック情報に、ブラウザーまたは curl
コマンドから直接アクセスすることもできます。
curl -XGET http://node-1:9200/_cluster/health?pretty
ブラウザでマシンの「9200」ポートに直接アクセスすることもでき、次のページを表示できます。
![]( /img/ef2536e91ba6bfc30ab973efa6548037/hwt3ofy72o.png)Elasticsearchが正常に開始された後のポート9200のデフォルトのアクセスページ
Elasticsearchがデフォルトで開始された後、設定されたホストIPを介して 9200
ポートに自由にアクセスできますが、これは非常に安全ではありません。ある程度のセキュリティを確保するために、 elasticsearch.yml
ファイルの http.port
フィールドを変更し、デフォルトポートを変更し、アカウントとシークレット認証が必要なアクセスを増やすことができます。
Elasticsearch 6.8以降、Elasticは、基本的な認証機能を含む一部のX-Pack有料機能を無料で使用できるようにしました。したがって、Elasticsearch 6.8以降、Elasticsearch独自の認証機能を直接使用できます。以前のバージョンでは、elasticsearch-http-basicと呼ばれるオープンソースプラグインが必要であり、作成者のウェアハウスアドレスは[https://github.com/Asquera/elasticsearch-http-basic](https://github.com/Asquera/elasticsearch-http-basic)でした。ただし、このウェアハウスのバージョンは現在閉じられており、更新されていないため、Elasticsearchを使用する必要がある場合は、6.8より前のElasticsearchバージョンを使用しないことをお勧めします。
次に、Elasticsearch 7.8の認証機能を構成します。まず、クラスターノードでプロセスファイルパスを入力し、次のコマンドを実行して証明書機関を作成します。
bin/elasticsearch-certutil ca;
Enterキーを最後まで押すだけで、途中にCAを設定するためのパスワードがあり、設定する必要はありません。完了すると、ファイル elastic-stack-ca.p12
がプロセスファイルパスディレクトリに生成されます。次に、証明書と秘密鍵を作成するために、証明書権限が生成されたクラスターノードで次のコマンドを実行し続けます。
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12;
Enterキーを最後まで押すだけで、証明書を設定するためのパスワードがあり、設定する必要はありません。完了すると、ファイル elastic-certificates.p12
がプロセスファイルパスディレクトリに生成されます。生成が完了したら、ファイルを他のマシンの同じパスにコピーし、クラスター内のすべてのマシンが2つのファイルのグループを変更します。
chown -R elasticsearch:elasticsearch *.p12;
クラスタ内のすべてのマシンは、構成ファイルパスへのソフト接続を確立します。例は次のとおりです。特定のパスを実際のパスに変更してください。
ln -s /usr/share/elasticsearch/elastic-certificates.p12 /etc/elasticsearch/elastic-certificates.p12;
ln -s /usr/share/elasticsearch/elastic-stack-ca.p12 /etc/elasticsearch/elastic-stack-ca.p12;
elasticsearch.yml
を構成します。
# クラスター相互信頼通信ポート9300を設定します
transport.port:9300
http.cors.enabled:true
http.cors.allow-origin:"*"
http.cors.allow-headers: Authorization
# Xを開く-パックの安全認証
xpack.security.enabled:true
# Xを開く-クラスター内のパックの相互信頼セキュリティ認証は、上記のセキュリティ認証スイッチと同期して開く必要があります
xpack.security.transport.ssl.enabled:true
# 認証モードは証明書モードです
xpack.security.transport.ssl.verification_mode: certificate
# 認定パスを構成する
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
# SSLを有効にする必要がある場合/TLSはHTTPSを介してESクラスターにアクセスし、次の構成を追加します
xpack.security.http.ssl.enabled:true
xpack.security.http.ssl.keystore.path: elastic-certificates.p12
xpack.security.http.ssl.truststore.path: elastic-certificates.p12
xpack.security.http.ssl.client_authentication: none
discovery.seed_hosts
フィールドの構成を変更して、クラスター相互信頼通信ポート 9300
を追加します。次に例を示します。
discovery.seed_hosts:["10.66.66.1:9300","10.66.66.2:9300","10.66.66.3:9300"]
構成が完了したら、Elasticsearchプロセスを再起動します。次に、組み込みのユーザー認証パスワードを設定します。クラスターノードで、プロセスファイルのパスを入力し、次のコマンドを実行します。
bin/elasticsearch-setup-passwords interactive;
Elasticsearchで組み込みユーザーのパスワードを作成するための、組み込みユーザーは次のとおりです。
この手順を完了したら、HTTP / HTTPSプロトコルを使用してポート 9200
を介してアクセスする必要があります。アクセスするアカウントのパスワードを入力します。 curl
も可能です。コマンドのテスト例は次のとおりです。たとえば、ユーザー名は elastic
で、パスワードは ESabc + 2333
です。
curl -uelastic:ESabc+2333-XGET http://node-1:9200/_cluster/health?pretty
Kibanaの展開構成は比較的単純で、インストール方法はElasticsearchに似ています。詳細は自分で選択できます。このセクションでは繰り返しません。方法2を使用して、次のコマンドを実行してインストールします。
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-x86_64.rpm;
shasum -a 512 kibana-7.8.0-x86_64.rpm;
rpm --install kibana-7.8.0-x86_64.rpm;
注:
shasum
でコマンドが見つからないというプロンプトが表示された場合は、yum -y installperl-Digest-SHA
と入力して依存関係をインストールしてください。ヒント: ElasticのWebサイトは外国であるため、ダウンロード速度は非常に遅いです。HuaweiCloudのミラーイメージなど、国内のミラーアドレスを選択できます。ダウンロードアドレス:[https://mirrors.huaweicloud.com/kibana/7.8.0/](https://mirrors.huaweicloud.com/kibana/7.8.0/)
上記の方法でインストールした後、プロセスファイルのパスは / usr / share / kibana
にあり、構成ファイルのパスは / etc / kibana
にあります。
/ etc / kibana / kibana.yml
ファイルを次の構成に変更します。
server.port:5601
server.host:"0.0.0.0"
# Elasticsearchクラスターアドレスを設定して、災害復旧管理のためにKibanaを容易にします
elasticsearch.hosts:["https://node-1:9200","https://node-2:9200","https://node-3:9200"]
kibana.index:".kibana"
# 国際化設定、中国語に設定
i18n.locale:"zh-CN"
# Xを開く-パックの安全認証
xpack.security.enabled:true
# Elasticsearchの組み込みアカウントのパスワード
elasticsearch.username:"kibana"
elasticsearch.password:"ESabc+2333" #ビルトインアカウントパスワード設定時のキバナアカウントのパスワード
# Kibana SSL/SSLが不要な場合は、TLSアクセスが有効になります/TLS、無視できます
server.ssl.enabled:true
server.ssl.key:/etc/kibana/kibana-certificates.key
server.ssl.certificate:/etc/kibana/kibana-certificates.cer
server.ssl.certificateAuthorities:/etc/kibana/kibana-certificates-ca.cer
server.ssl.clientAuthentication: none
# SSLをオンにするなどのElasticsearch/TLSアクセス、次の2つのルールを構成する必要があります
elasticsearch.ssl.verificationMode: certificate
elasticsearch.ssl.certificateAuthorities:/etc/kibana/kibana-certificates-ca.cer
上記のKibana構成でのSSL / TLS認証は、説明が必要なちょっとしたエピソードです。Kibanaは現在 .p12
ファイルの暗号化認証方法をサポートしていないため、現在SSL / TLSセキュリティ機関が承認した発行証明書がない場合でも、SSL / TLSを有効にする必要があります。 、 .p12
ファイルを変換した後に構成を使用する必要があります。具体的な操作は次のとおりです。
openssl pkcs12 -in elastic-certificates.p12 -nocerts -nodes > kibana-certificates.key
openssl pkcs12 -in elastic-certificates.p12 -clcerts -nokeys > kibana-certificates.cer
openssl pkcs12 -in elastic-certificates.p12 -cacerts -nokeys -chain > kibana-certificates-ca.cer
生成されたファイルを適切なパスに配置します。たとえば、上記の構成では、これらのファイルを / etc / kibana /
パスに配置してから、それらを呼び出すことができます。
**注:**自己署名された証明書ブラウザーは安全であるとは見なされず、セキュリティ上のリスクがあるため、ドメイン名を使用してセキュリティ機関から認識された発行証明書を申請した後、KibanaのSSL / TLSオプションを構成することをお勧めします。
構成が完了した後に開始でき、 systemctl
コマンドで開始および停止できます。
systemctl start kibana;
systemctl stop kibana;
systemctl restart kibana;
起動時にセルフスタートをオンにする必要がある場合は、次のコマンドでオンにできます。
systemctl daemon-reload;
systemctl enable kibana;
起動後、ブラウザからアクセスできます。ビルトインユーザーを入力すると、きばなにアクセスできます。たとえば、ユーザー名は「elastic」、パスワードは「ESabc +2333」です。
![]( /img/ef2536e91ba6bfc30ab973efa6548037/l0aru60hq6.png)Kibanaログインインターフェイス
![]( /img/ef2536e91ba6bfc30ab973efa6548037/p9ytyousm5.png)Kibanaログインインターフェイス
Recommended Posts