ライセンスAPIの更新

Elasticsearchクラスターのライセンスを更新します。

リクエスト

PUT _license

POST _license

前提条件

  • Elasticsearchのセキュリティ機能が有効になっている場合、ライセンスをインストールするにはmanage クラスター権限が必要です。
  • Elasticsearchのセキュリティ機能が有効になっていて、ゴールドまたはそれ以上のライセンスをインストールする場合、ライセンスをインストールする前にトランスポートネットワーク層でTLSを有効にする必要があります。詳細はTLSでノード間通信を暗号化するを参照してください。
  • オペレーター権限機能が有効になっている場合、このAPIを使用できるのはオペレーターユーザーのみです。

説明

ノードをシャットダウンせずに、実行時にライセンスを更新できます。ライセンスの更新は即座に有効になります。ただし、インストールしているライセンスが以前のライセンスで利用可能だったすべての機能をサポートしていない場合、レスポンスで通知されます。その場合、acknowledgeパラメータをtrueに設定してAPIリクエストを再送信する必要があります。

さまざまなタイプのライセンスについての詳細は、https://www.elastic.co/subscriptionsを参照してください。

クエリパラメータ

  • acknowledge
  • (オプション、ブール値) ライセンスの変更を承認するかどうかを指定します。デフォルト値はfalseです。

リクエストボディ

  • licenses
  • (必須、配列) ライセンス情報を含む1つ以上のJSONドキュメントのシーケンス。

以下の例は、基本ライセンスへの更新を示しています:

Python

  1. resp = client.license.post(
  2. licenses=[
  3. {
  4. "uid": "893361dc-9749-4997-93cb-802e3d7fa4xx",
  5. "type": "basic",
  6. "issue_date_in_millis": 1411948800000,
  7. "expiry_date_in_millis": 1914278399999,
  8. "max_nodes": 1,
  9. "issued_to": "issuedTo",
  10. "issuer": "issuer",
  11. "signature": "xx"
  12. }
  13. ],
  14. )
  15. print(resp)

Js

  1. const response = await client.license.post({
  2. licenses: [
  3. {
  4. uid: "893361dc-9749-4997-93cb-802e3d7fa4xx",
  5. type: "basic",
  6. issue_date_in_millis: 1411948800000,
  7. expiry_date_in_millis: 1914278399999,
  8. max_nodes: 1,
  9. issued_to: "issuedTo",
  10. issuer: "issuer",
  11. signature: "xx",
  12. },
  13. ],
  14. });
  15. console.log(response);

コンソール

  1. PUT _license
  2. {
  3. "licenses": [
  4. {
  5. "uid":"893361dc-9749-4997-93cb-802e3d7fa4xx",
  6. "type":"basic",
  7. "issue_date_in_millis":1411948800000,
  8. "expiry_date_in_millis":1914278399999,
  9. "max_nodes":1,
  10. "issued_to":"issuedTo",
  11. "issuer":"issuer",
  12. "signature":"xx"
  13. }
  14. ]
  15. }

これらの値は無効です。ライセンスファイルから適切な内容に置き換える必要があります。

  1. #### シェル
  2. ``````shell
  3. curl -XPUT -u <user> 'http://<host>:<port>/_license' -H "Content-Type: application/json" -d @license.json
  4. `

Windowsでは、次のコマンドを使用します:

シェル

  1. Invoke-WebRequest -uri http://<host>:<port>/_license -Credential elastic -Method Put -ContentType "application/json" -InFile .\license.json

これらの例では、

  • <user>は適切な権限を持つユーザーIDです。
  • <host>はElasticsearchクラスター内の任意のノードのホスト名です(ローカルで実行する場合はlocalhost
  • <port>はhttpポートです(デフォルトは9200
  • license.jsonはライセンスJSONファイルです。

ElasticsearchノードのHTTPインターフェースでSSLが有効になっている場合、URLはhttps://で始める必要があります。

以前に基本ライセンスよりも多くの機能を持つライセンスを持っていた場合、次のレスポンスを受け取ります:

Js

  1. {
  2. "acknowledged": false,
  3. "license_status": "valid",
  4. "acknowledge": {
  5. "message": """This license update requires acknowledgement. To acknowledge the license, please read the following messages and update the license again, this time with the "acknowledge=true" parameter:""",
  6. "watcher": [
  7. "Watcher will be disabled"
  8. ],
  9. "logstash": [
  10. "Logstash will no longer poll for centrally-managed pipelines"
  11. ],
  12. "security": [
  13. "The following X-Pack security functionality will be disabled: ..." ]
  14. }
  15. }

更新を完了するには、APIリクエストを再送信し、acknowledgeパラメータをtrueに設定する必要があります。例えば:

Python

  1. resp = client.license.post(
  2. acknowledge=True,
  3. licenses=[
  4. {
  5. "uid": "893361dc-9749-4997-93cb-802e3d7fa4xx",
  6. "type": "basic",
  7. "issue_date_in_millis": 1411948800000,
  8. "expiry_date_in_millis": 1914278399999,
  9. "max_nodes": 1,
  10. "issued_to": "issuedTo",
  11. "issuer": "issuer",
  12. "signature": "xx"
  13. }
  14. ],
  15. )
  16. print(resp)

Js

  1. const response = await client.license.post({
  2. acknowledge: "true",
  3. licenses: [
  4. {
  5. uid: "893361dc-9749-4997-93cb-802e3d7fa4xx",
  6. type: "basic",
  7. issue_date_in_millis: 1411948800000,
  8. expiry_date_in_millis: 1914278399999,
  9. max_nodes: 1,
  10. issued_to: "issuedTo",
  11. issuer: "issuer",
  12. signature: "xx",
  13. },
  14. ],
  15. });
  16. console.log(response);

コンソール

  1. PUT _license?acknowledge=true
  2. {
  3. "licenses": [
  4. {
  5. "uid":"893361dc-9749-4997-93cb-802e3d7fa4xx",
  6. "type":"basic",
  7. "issue_date_in_millis":1411948800000,
  8. "expiry_date_in_millis":1914278399999,
  9. "max_nodes":1,
  10. "issued_to":"issuedTo",
  11. "issuer":"issuer",
  12. "signature":"xx"
  13. }
  14. ]
  15. }

または:

  1. curl -XPUT -u elastic 'http://<host>:<port>/_license?acknowledge=true' -H "Content-Type: application/json" -d @license.json

ライセンスが期限切れになったときに無効になる機能についての詳細は、ライセンスの期限切れを参照してください。