This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.7.4.5. Elasticsearch のルートとしての公開
デフォルトでは、クラスターロギングでデプロイされた Elasticsearch はロギングクラスターの外部からアクセスできません。データにアクセスするツールについては、Elasticsearch へ外部アクセスするために re-encryption termination でルートを有効にすることができます。
re-encrypt ルート、OpenShift Container Platform トークンおよびインストールされた Elasticsearch CA 証明書を作成して Elasticsearch に外部からアクセスすることができます。次に、以下を含む cURL 要求を持つ Elasticsearch ノードにアクセスします。
-
Authorization: Bearer ${token}
- Elasticsearch reencrypt ルートおよび Elasticsearch API 要求
内部からは、Elasticsearch クラスター IP を使用して Elastiscearch にアクセスすることができます。
以下のコマンドのいずれかを使用して、Elasticsearch クラスター IP を取得できます。
oc get service elasticsearch -o jsonpath={.spec.clusterIP} -n openshift-logging
$ oc get service elasticsearch -o jsonpath={.spec.clusterIP} -n openshift-logging
172.30.183.229
前提条件
- クラスターロギングおよび Elasticsearch がインストールされている。
- ログにアクセスできるようになるには、プロジェクトへのアクセスが必要です。
手順
Elasticsearch を外部に公開するには、以下を実行します。
openshift-logging
プロジェクトに切り替えます。oc project openshift-logging
$ oc project openshift-logging
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch から CA 証明書を抽出し、admin-ca ファイルに書き込みます。
oc extract secret/elasticsearch --to=. --keys=admin-ca
$ oc extract secret/elasticsearch --to=. --keys=admin-ca admin-ca
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Elasticsearch サービスのルートを YAML ファイルとして作成します。
以下のように YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 次の手順で Elasticsearch CA 証明書を追加するか、またはコマンドを使用します。一部の re-encrypt ルートで必要とされる
spec.tls.key
、spec.tls.certificate
、およびspec.tls.caCertificate
パラメーターを設定する必要はありません。
以下のコマンドを実行して作成したルート YAML に Elasticsearch CA 証明書を追加します。
cat ./admin-ca | sed -e "s/^/ /" >> <file-name>.yaml
$ cat ./admin-ca | sed -e "s/^/ /" >> <file-name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ルートを作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yaml route.route.openshift.io/elasticsearch created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Elasticsearch サービスが公開されていることを確認します。
要求に使用されるこの ServiceAccount のトークンを取得します。
token=$(oc whoami -t)
$ token=$(oc whoami -t)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成した elasticsearch ルートを環境変数として設定します。
routeES=`oc get route elasticsearch -o jsonpath={.spec.host}`
$ routeES=`oc get route elasticsearch -o jsonpath={.spec.host}`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ルートが正常に作成されていることを確認するには、公開されたルート経由で Elasticsearch にアクセスする以下のコマンドを実行します。
curl -tlsv1.2 --insecure -H "Authorization: Bearer ${token}" "https://${routeES}/.operations.*/_search?size=1" | jq
$ curl -tlsv1.2 --insecure -H "Authorization: Bearer ${token}" "https://${routeES}/.operations.*/_search?size=1" | jq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のような出力が表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow