Уведомления о работе кластера

Материал из Документация Ключ-АСТРОМ

Вы можете управлять следующими уведомлениями в кластере:

  • Недостаточно места на диске на ноде кластера. Запускается, когда раздел диска на узле кластера имеет меньше дискового пространства, чем требуется для данного типа хранилища. В этом случае вам необходимо расширить диск или просмотреть настройки кластера. В противном случае срок хранения данных может уменьшиться.
  • Недостаточное оборудование на ноде кластера. Запускается, когда на узле кластера недостаточно ядер ЦП и оперативной памяти для выполнения рекомендуемых требований. Дополнительные сведения см. в разделе Требования к оборудованию.
  • Хранилище метрик превышает поддерживаемый размер (4 ТБ). Запускается, когда хранилище метрик для узла кластера слишком велико. В этом случае вам необходимо просмотреть настройки мониторинга или добавить дополнительные узлы в кластер.
  • Сокращение периода хранения транзакций. Запускается, когда срок хранения данных автоматически сокращается для хранения новых данных. В этом случае мы рекомендуем настроить целевое время хранения, просмотреть параметры мониторинга или расширить диск.
  • Адаптивное снижение нагрузки. Запускается, когда узел кластера считается перегруженным и не может справиться с обработкой входящих запросов. В этом случае вам необходимо пересмотреть настройки мониторинга или увеличить количество ядер ЦП и ОЗУ на узле кластера. Дополнительные сведения см. в разделе Адаптивное управление и контроль трафика.

Настройка параметров уведомлений кластера

  1. Создайте токен кластера,
  2. (необязательно) Проверьте схему настроек уведомлений
  3. (необязательно) Проверьте текущие настройки уведомлений
  4. Создайте объект настроек уведомлений
  5. Обновите настройки уведомлений
  6. (необязательно) Удалите объект настроек уведомлений

Аутентификация

Чтобы создать токен кластера с областями параметров записи и чтения:

  1. В меню Ключ-Астром выберите Настройки -> Токены API.
  2. В разделе Токены кластера выберите Создать токен.
  3. Введите имя для вашего токена и определите области доступа к параметрам записи и чтения вашего токена API кластера.
  4. Сохраните и скопируйте токен в безопасное место.

Настройка уведомлений по электронной почте

Чтобы отправить конфигурацию в формате JSON, используйте конечную точку объекта POST с токеном кластера, который имеет соответствующие области доступа:

[
  {
    "schemaId": "builtin:cluster-events-notification-settings",
    "scope": "cluster",
    "value": {
                "insufficientDiskSpace": {
                    "sendEmail": true
                },
                "insufficientHardware": {
                    "sendEmail": true
                },
                "insufficientMetricStorage": {
                    "sendEmail": false
                },
                "transactionStorageTruncation": {
                    "sendEmail": false
                },
                "adaptiveLoadReductionActivated": {
                    "sendEmail": false
                }
            }
  }
]

Чтение схемы конфигурации

Чтобы узнать формат JSON, необходимый для публикации вашей конфигурации, используйте конечную точку схемы GET с токеном кластера, который имеет соответствующие области доступа. Идентификатор схемы конфигурации (schemaId) — builtin:cluster-events-notification-settings.

{
    "AstromKey": "1",
    "schemaId": "builtin:cluster-events-notification-settings",
    "displayName": "Cluster events notification settings",
    "description": "Configuration of emails notifications for cluster events.",
    "documentation": "Email notifications are sent to recipients defined in Settings - Emails - Email notifications.",
    "version": "0",
    "multiObject": false,
    "maxObjects": 1,
    "allowedScopes": [
        "cluster"
    ],
    "enums": {},
    "types": {
        "SingleEventSettings": {
            "version": "0",
            "versionInfo": "",
            "displayName": "Single event settings",
            "summaryPattern": "",
            "description": "Settings for a single cluster event",
            "documentation": "",
            "properties": {
                "sendEmail": {
                    "displayName": "Send email",
                    "description": "",
                    "documentation": "",
                    "type": "boolean",
                    "nullable": false,
                    "maxObjects": 1,
                    "modificationPolicy": "DEFAULT",
                    "default": true
                }
            },
            "type": "object"
        }
    },
    "properties": {
        "insufficientDiskSpace": {
            "displayName": "Insufficient disk space on a cluster node",
            "description": "Triggered when a disk partition on a cluster node has less disk space than required for a given storage type. In that case, you need to extend your disk or review cluster settings. Otherwise, data retention might be reduced.",
            "documentation": "",
            "type": {
                "$ref": "#/types/SingleEventSettings"
            },
            "nullable": false,
            "maxObjects": 1,
            "modificationPolicy": "DEFAULT"
        },
        "insufficientHardware": {
            "displayName": "Insufficient hardware on a cluster node",
            "description": "Triggered when a cluster node doesn't have enough CPU cores and RAM to meet recommended requirements.",
            "documentation": "",
            "type": {
                "$ref": "#/types/SingleEventSettings"
            },
            "nullable": false,
            "maxObjects": 1,
            "modificationPolicy": "DEFAULT"
        },
        "insufficientMetricStorage": {
            "displayName": "Metrics storage exceeds supported size (4TiB)",
            "description": "Triggered when Metrics storage a cluster node is too high. In that case, you need to review your monitoring settings or add additional nodes to the cluster.",
            "documentation": "",
            "type": {
                "$ref": "#/types/SingleEventSettings"
            },
            "nullable": false,
            "maxObjects": 1,
            "modificationPolicy": "DEFAULT"
        },
        "transactionStorageTruncation": {
            "displayName": "Transaction storage retention period truncation",
            "description": "Triggered when data retention has been automatically reduced to store new data. In that case, it is recommended to adjust target retention time, review monitoring settings or extend a disk.",
            "documentation": "",
            "type": {
                "$ref": "#/types/SingleEventSettings"
            },
            "nullable": false,
            "maxObjects": 1,
            "modificationPolicy": "DEFAULT"
        },
        "adaptiveLoadReductionActivated": {
            "displayName": "Adaptive Load Reduction activity",
            "description": "Triggered when a cluster node has been considered as overloaded and not able to keep up with processing incoming requests. In that case, you need to review monitoring settings or increase CPU cores and RAM on the cluster node.",
            "documentation": "",
            "type": {
                "$ref": "#/types/SingleEventSettings"
            },
            "nullable": false,
            "maxObjects": 1,
            "modificationPolicy": "DEFAULT"
        }
    }
}

Чтение текущих настроек

Чтобы проверить текущую конфигурацию, используйте конечную точку объектов GET (/api/cluster/v2/settings/objects?schemaIds=builtin:cluster-events-notification-settings&scopes=cluster) с токеном кластера, который имеет соответствующие права доступа.

  • Если эти настройки были ранее изменены, список элементов будет содержать один объект. Используйте objectId из списка при последующих обновлениях.
  • Если список элементов пуст, используется значение по умолчанию (не отображается в API):
{
  "value": {
            "insufficientDiskSpace": {
                "sendEmail": true
            },
            "insufficientHardware": {
                "sendEmail": true
            },
            "insufficientMetricStorage": {
                "sendEmail": true
            },
            "transactionStorageTruncation": {
                "sendEmail": false
            },
            "adaptiveLoadReductionActivated": {
                "sendEmail": false
            }
        }
}

Создание объекта настроек уведомлений

Чтобы создать объект параметров уведомлений о событиях кластера, используйте конечную точку объектов POST с токеном кластера, который имеет соответствующие области доступа. Используйте идентификатор вновь созданного объекта (настройки уведомлений о событиях) для последующего обновления настроек уведомлений. В этом примере, используя POST-вызов к API /api/cluster/v2/settings/objects и схеме builtin:cluster-events-notification-settings вы создаёте объект настроек уведомлений в кластере.

[
  {
    "schemaId": "builtin:cluster-events-notification-settings",
    "scope": "cluster",
    "value": {
                "insufficientDiskSpace": {
                    "sendEmail": true
                },
                "insufficientHardware": {
                    "sendEmail": true
                },
                "insufficientMetricStorage": {
                    "sendEmail": false
                },
                "transactionStorageTruncation": {
                    "sendEmail": false
                },
                "adaptiveLoadReductionActivated": {
                    "sendEmail": false
                }
            }
  }
]

Обновление настроек уведомлений

Существует два метода, которые можно использовать для обновления настроек уведомлений о событиях кластера после создания объекта настроек уведомлений. В любом случае убедитесь, что у вас есть токен кластера с соответствующими областями доступа.

  • Вы можете использовать тот же метод POST, который вы использовали для создания объекта настроек (Создать объект настроек уведомлений). Схема не допускает дублирования объектов настроек, поэтому, если вы попытаетесь создать другой объект настроек, вы перезапишете существующий.
  • Вы можете изменить существующий объект настроек, выполнив вызов PUT к API /api/cluster/v2/settings/objects/<objectId> конечной точки и предоставления objectId, полученного при создании объекта настроек начального уведомления о событии.

Выполните PUT-вызов к API /api/cluster/v2/settings/objects/<objectId>

{
  "value": {
            "insufficientDiskSpace": {
                "sendEmail": true
            },
            "insufficientHardware": {
                "sendEmail": true
            },
            "insufficientMetricStorage": {
                "sendEmail": false
            },
            "transactionStorageTruncation": {
                "sendEmail": false
            },
            "adaptiveLoadReductionActivated": {
                "sendEmail": false
            }
        }
}

Удалить настройки уведомлений

Вы можете удалить существующий объект настроек уведомлений, выполнив DELETE-вызов к API /api/cluster/v2/settings/objects/<objectId> конечной точки (с токеном кластера с соответствующими областями доступа) и предоставлением objectId, полученного при создании объекта настроек начального уведомления о событии. После удаления объекта поведение уведомлений возвращается к значению по умолчанию: все уведомления инициируют отправку электронной почты настроенным получателям.