CentOS8でのElasticStackの使用:Elasticsearch / Kibana7.8の展開と認証の構成

これは、Huixiang TechnologyCornerの「SourceProductionControl」トピックシリーズの3番目の記事です。

Huixiang Technology Cornerの「SourceProduction Control」のトピックでは、オープンソース、ローカリゼーション、独立制御の3つの方向のテクノロジーに焦点を当てます。大まかな分類としてオペレーティングシステム、ミドルウェア、データベース、およびプログラムアプリケーションを使用して、関連テクノロジーの開発動向を更新します。コアテクノロジーの詳細な使用法を探り、テクノロジーの全体的な構造を体系的に要約し、関連するテクノロジーの学習者にかなりの情報を提供し、読者に個人的な同期学習と要約ノートを提供します。

この記事では、CentOS8のElasticStackスイートでのElasticsearchとKibanaの使用について簡単に説明します。また、Elasticsearch 7.8.0の展開と認証の設定、およびKibana7.8.0のサポート展開についても詳しく説明します。今後、CentOS8でのElasticStack関連パッケージの使用については、使用状況の概要とパフォーマンスの調整に関する一連の記事が継続的に更新される予定ですので、ご期待ください。

ElasticStackの概要##

Elastic Stackについて言及するときは、ELKについて言及する必要があります。 ELKは、Elasticsearch、Logstash、Kibanaの3つのオープンソースソフトウェアの略で、すべてオープンソースソフトウェアです。しかし、今では、軽量のログ収集および処理ツール(Agent)である新しいBeatsもあります。Beatsは、占有するリソースが少なく、さまざまなサーバーでログを収集してLogstashに送信するのに適しています。関係者もこのツールを推奨しています。元のELKスタックメンバーはBeatsツールを追加したため、ElasticStackに名前が変更されました。

ElasticStackには次のものが含まれます。

Elasticsearch7.8の導入##

方法1:インストールする 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を実行してインストールします。

方法2: 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.

方法3:ソースのインストール###

より柔軟な要件がある場合は、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;

Elasticsearch7.8の構成##

展開が完了したら、構成リンクに入ります。構成する前に、プロセスファイルと構成ファイルの場所を知る必要があります。上記の方法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のデフォルトのアクセスページ

Elasticsearch7.8認証機能の構成##

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の展開と構成##

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

CentOS8でのElasticStackの使用:Elasticsearch / Kibana7.8の展開と認証の構成
テクニカルコーナー| CentOS8でのElasticStackの使用:Elasticsearch / Kibana7.8の展開と認証の構成
CentOS8でのMySQL8.0のインストール、展開、および構成のチュートリアル
centos7へのグラファイトの展開
Centos7のインストールとJenkinsの構成
Centos6.5のインストールとKVMの展開
Centos7でのCeph展開の簡潔な要約
CentOS6 / 7でのMySQL8.0のインストール、展開、および構成
Centos-6.5LNMP環境のインストールと展開
centos7でのredisのインストールと構成
Centos7のインストールとgitlabサーバーの展開
Centos7のインストールとAirflowの展開の詳細
CentOS7システムでのJDKのインストールと構成
CentOS6.5でのrsyncサーバーのインストールと構成
VMwareWorkstationでのCentOS7のインストールと構成
CentOS8でのApollo構成センターの分散展開
centos7でのXfs構成
Centos7でのJDK、mysql、tomcatの環境構成
centOS7でのSparkのインストールと構成のチュートリアルの詳細な説明
CentOSでの脆弱性スキャンおよび分析ソフトウェアNessusの展開
Centos8のOpenStackUssuriの最小限の展開とインストールの詳細なチュートリアル
Centosmysqlのインストールと構成
Centos7.4デプロイメント構成Elasticsearch5.6クラスター
Centos7のインストールと構成のプロメテウス
CentOS7のインストールと構成PPTP
CentOSのインストールと構成cmake
Centos7.5のインストールと構成MongoDB4.0.4
CentOS7のインストールと構成PPTP
CentOS8.0ネットワーク構成の実装
RHEL8 / CentOS8でマルチノードElasticスタッククラスターを確立する方法
CentOS8インストールGitと基本構成
Centos7hadoopクラスターのインストールと構成
CentOS7のインストールとGitlabのメンテナンス
CentOS7.2およびNginx構成仮想ホスト
Centos6ネットワーク構成の詳細な例
CentOSでのJava-JDKのインストールと構成
Centos 7 RAID5の詳細な説明と構成
centos7でpython3環境を構成し、
CentOSNTPサーバーのインストールと構成
フラスコプロジェクトのCentOS展開方法
CentOs7のインストールと展開Zabbix3.4オリジナル
CentOS7でのErlang20.2のインストールと展開
Centos7mysqlデータベースのインストールと構成