Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›REST API ›API лицензирования

API обновления лицензии

Новая справка по API

Для получения самых последних данных об API обратитесь к API лицензирования.

Обновляет лицензию для вашего кластера Elasticsearch.

Запрос

PUT _license

POST _license

Предварительные условия

  • Если в Elasticsearch включены функции безопасности, вам необходимо manage право доступа к кластеру для установки лицензии.
  • Если в Elasticsearch включены функции безопасности и вы устанавливаете лицензию Gold или выше, необходимо включить TLS на транспортном уровне сети перед установкой лицензии. См. Шифрование межузлового взаимодействия с помощью TLS.
  • Если включена функция прав оператора, то использовать этот API могут только пользователи-операторы.

Описание

Вы можете обновить лицензию во время работы, не останавливая узлы. Изменения в лицензии вступают в силу немедленно. Однако, если устанавливаемая лицензия не поддерживает все функции, доступные по предыдущей лицензии, вам об этом сообщат в ответе. В таком случае необходимо повторно отправить запрос API с параметром acknowledge установленным на значение true.

Дополнительную информацию о разных типах лицензий см. на странице https://www.elastic.co/subscriptions.

Параметры запроса

acknowledge
(Необязательно, Булево) Указывает, подтверждаете ли вы изменения в лицензии. Значение по умолчанию — false.

Тело запроса

licenses
(Обязательно, массив) Последовательность одного или нескольких JSON-документов, содержащих информацию о лицензии.

Примеры

Следующий пример обновляет лицензию до базовой:

resp = client.license.post(
    licenses=[
        {
            "uid": "893361dc-9749-4997-93cb-802e3d7fa4xx",
            "type": "basic",
            "issue_date_in_millis": 1411948800000,
            "expiry_date_in_millis": 1914278399999,
            "max_nodes": 1,
            "issued_to": "issuedTo",
            "issuer": "issuer",
            "signature": "xx"
        }
    ],
)
print(resp)
const response = await client.license.post({
  licenses: [
    {
      uid: "893361dc-9749-4997-93cb-802e3d7fa4xx",
      type: "basic",
      issue_date_in_millis: 1411948800000,
      expiry_date_in_millis: 1914278399999,
      max_nodes: 1,
      issued_to: "issuedTo",
      issuer: "issuer",
      signature: "xx",
    },
  ],
});
console.log(response);
PUT _license
{
  "licenses": [
    {
      "uid":"893361dc-9749-4997-93cb-802e3d7fa4xx",
      "type":"basic",
      "issue_date_in_millis":1411948800000,
      "expiry_date_in_millis":1914278399999,
      "max_nodes":1,
      "issued_to":"issuedTo",
      "issuer":"issuer",
      "signature":"xx"
    }
    ]
}

Эти значения неверны; замените их соответствующим содержимым из вашего файла лицензии.

Вы также можете установить файл лицензии с помощью команды curl. Не забудьте добавить @ перед путем к файлу лицензии, чтобы указать curl, что он должен рассматривать его как входной файл.

curl -XPUT -u <user> 'http://<host>:<port>/_license' -H "Content-Type: application/json" -d @license.json

В Windows используйте следующую команду:

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

В этих примерах:

  • <user> — это идентификатор пользователя с соответствующими правами.
  • <host> — это имя хоста любого узла в кластере Elasticsearch (localhost, если выполняется локально)
  • <port> — это порт HTTP (по умолчанию 9200)
  • license.json — это файл лицензии в формате JSON

Если на вашем узле Elasticsearch включен SSL на HTTP-интерфейсе, вы должны начать URL с https://

Если у вас ранее была лицензия с большим набором функций, чем базовая лицензия, вы получите следующий ответ:

  {
  "acknowledged": false,
  "license_status": "valid",
  "acknowledge": {
    "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:""",
    "watcher": [
      "Watcher will be disabled"
    ],
    "logstash": [
      "Logstash will no longer poll for centrally-managed pipelines"
    ],
    "security": [
      "The following X-Pack security functionality will be disabled: ..." ]
    }
}

Для завершения обновления необходимо повторно отправить запрос API и установить параметр acknowledge на значение true. Например:

resp = client.license.post(
    acknowledge=True,
    licenses=[
        {
            "uid": "893361dc-9749-4997-93cb-802e3d7fa4xx",
            "type": "basic",
            "issue_date_in_millis": 1411948800000,
            "expiry_date_in_millis": 1914278399999,
            "max_nodes": 1,
            "issued_to": "issuedTo",
            "issuer": "issuer",
            "signature": "xx"
        }
    ],
)
print(resp)
const response = await client.license.post({
  acknowledge: "true",
  licenses: [
    {
      uid: "893361dc-9749-4997-93cb-802e3d7fa4xx",
      type: "basic",
      issue_date_in_millis: 1411948800000,
      expiry_date_in_millis: 1914278399999,
      max_nodes: 1,
      issued_to: "issuedTo",
      issuer: "issuer",
      signature: "xx",
    },
  ],
});
console.log(response);
PUT _license?acknowledge=true
{
  "licenses": [
    {
      "uid":"893361dc-9749-4997-93cb-802e3d7fa4xx",
      "type":"basic",
      "issue_date_in_millis":1411948800000,
      "expiry_date_in_millis":1914278399999,
      "max_nodes":1,
      "issued_to":"issuedTo",
      "issuer":"issuer",
      "signature":"xx"
    }
    ]
}

Или:

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

Дополнительную информацию о функциях, которые отключаются при истечении срока действия лицензии, см. в Истечение срока действия лицензии.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/update-license.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API