Размещение лога загрузки

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

Отправляет пользовательские логи в Ключ-АСТРОМ.

Для этой конечной точки требуется АктивныйШлюз с включенным модулем сбора аналитики логов . Этот модуль включен по умолчанию на всех ваших АктивныхШлюзах.

Запрос использует один из следующих типов полезной нагрузки:

  • text/plain— ограничено одним событием в логе.
  • application/json— поддерживает несколько событий лога в одной полезной нагрузке.

Обязательно установите правильный заголовок Content-Type и закодируйте полезную нагрузку с помощью UTF-8 : application/json; charset=utf-8.

Этот запрос является выпуском Early Adopter и может быть изменен несовместимым образом.

POST
  • SaaS https://{идентификатор_вашей_среды}.live.кruscomtech.ru/api/v2/logs/ingest
  • Окружающая среда АктивногоШлюза https://{ваш-активный-домен}:9999/e/{идентификатор-вашей-среды}/api/v2/logs/ingest

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

Чтобы выполнить этот запрос, вам необходимо разрешение Ingest logs ( logs.ingest), назначенное вашему токену API. Чтобы узнать, как его получить и использовать, см. раздел Токены и аутентификация .

Параметры

Параметр Тип Описание In Необходимость
body LogMessageJson Тело запроса. Содержит одно или несколько событий лога для приема.

Конечная точка принимает один из следующих типов полезной нагрузки, определенных заголовком Accept :

  • text/plain: поддерживает только одно событие журнала.
  • application/json: поддерживает несколько событий журнала в одной полезной нагрузке.
body по желанию

Объекты тела запроса

Объект LogMessageJson

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

Объект может содержать следующие типы ключей без учета регистра (возможные значения ключей перечислены ниже):

  • Отметка времени:
    • Самая ранняя отметка времени для события лога — это текущее время минус 24 часа. Если событие лога содержит отметку времени раньше, чем текущее время минус 24 часа, событие отбрасывается, а универсальный API приема лога возвращает 400код ответа.
    • Последняя отметка времени для события лога — это текущее время плюс 12 часов. Если событие лога содержит отметку времени позже, чем текущее время плюс 12 часов, событие отбрасывается, а универсальный API приема лога возвращает 400код ответа.
    • Поддерживаются следующие форматы: миллисекунды UTC, RFC3339 и RFC3164. Для отсутствующей метки времени используется текущая метка времени. Для неподдерживаемого формата временной метки используется текущая временная метка, а значение неподдерживаемого формата временной метки сохраняется в неиндексированном unparsed_timestampатрибуте.
  • Строгость. Если не установлено, NONEиспользуется.
  • Содержание. Если ключ содержимого не задан, весь JSON анализируется как содержимое.
  • Семантический признак. Поддерживаются только значения этого Stringтипа. Семантические атрибуты индексируются и могут использоваться в запросах. Они также отображаются в агрегатах (фасетах). Если встречается неподдерживаемый ключ, он не индексируется и не может использоваться в индексировании и агрегировании.

Значением объекта может быть одна константа или, в случае семантического атрибута, массив констант. Длина значения ограничена. Любой контент, превышающий лимит, обрезается. Ограничения по умолчанию:

  • Атрибуты: до 50 атрибутов.
  • Содержимое: 8 192 байта.
  • Семантический атрибут: 250 байт на значение, до 32 значений атрибута

Поддерживаемые ключи отметки времени:

  • @timestamp
  • _timestamp
  • date
  • eventtime
  • published_date
  • syslog.timestamp
  • timestamp

Поддерживаемые ключи содержимого:

  • body
  • content
  • message
  • payload

Поддерживаемые ключи серьезности:

  • level
  • loglevel
  • severity
  • status
  • syslog.severity

Поддерживаемые ключи семантических атрибутов:

  • audit.action
  • audit.identity
  • audit.result
  • aws.account.id
  • aws.arn
  • aws.log_group
  • aws.log_stream
  • aws.region
  • aws.resource.id
  • aws.resource.type
  • aws.service
  • azure.location
  • azure.resource.group
  • azure.resource.id
  • azure.resource.name
  • azure.resource.type
  • azure.subscription
  • cloud.account.id
  • cloud.availability_zone
  • cloud.provider
  • cloud.region
  • container.image.name
  • container.image.tag
  • container.name
  • db.cassandra.keyspace
  • db.connection_string
  • db.hbase.namespace
  • db.jdbc.driver_classname
  • db.mongodb.collection
  • db.mssql.instance_name
  • db.name
  • db.operation
  • db.redis.database_index
  • db.statement
  • db.system
  • db.user
  • device.address
  • dt.active_gate.group.name
  • dt.active_gate.id
  • dt.code.filepath
  • dt.code.func
  • dt.code.lineno
  • dt.code.ns
  • dt.ctg.calltype
  • dt.ctg.extendmode
  • dt.ctg.gatewayurl
  • dt.ctg.program
  • dt.ctg.rc
  • dt.ctg.requesttype
  • dt.ctg.serverid
  • dt.ctg.termid
  • dt.ctg.transid
  • dt.ctg.userid
  • dt.entity.cloud_application
  • dt.entity.cloud_application_instance
  • dt.entity.cloud_application_namespace
  • dt.entity.container_group
  • dt.entity.container_group_instance
  • dt.entity.custom_device
  • dt.entity.host
  • dt.entity.kubernetes_cluster
  • dt.entity.kubernetes_node
  • dt.entity.process_group
  • dt.entity.process_group_instance
  • dt.event.group_label
  • dt.event.key
  • dt.events.root_cause_relevant
  • dt.exception.messages
  • dt.exception.serialized_stacktraces
  • dt.exception.types
  • dt.extension.config.id
  • dt.extension.ds
  • dt.extension.name
  • dt.extension.status
  • dt.host.ip
  • dt.host.smfid
  • dt.host.snaid
  • dt.host_group.id
  • dt.http.application_id
  • dt.http.context_root
  • dt.kubernetes.cluster.id
  • dt.kubernetes.cluster.name
  • dt.kubernetes.config.id
  • dt.kubernetes.event.involved_object.kind
  • dt.kubernetes.event.involved_object.name
  • dt.kubernetes.event.reason
  • dt.kubernetes.node.name
  • dt.kubernetes.node.system_uuid
  • dt.kubernetes.topmost_controller.kind
  • dt.kubernetes.workload.kind
  • dt.kubernetes.workload.name
  • dt.network_zone.id
  • dt.os.description
  • dt.os.type
  • dt.process.commandline
  • dt.process.executable
  • dt.process.name
  • dt.source_entity
  • dt.source_entity_name
  • dt.source_entity_type
  • faas.id
  • faas.instance
  • faas.name
  • faas.version
  • gcp.instance.id
  • gcp.instance.name
  • gcp.project.id
  • gcp.region
  • gcp.resource.type
  • host.hostname
  • host.id
  • host.image.id
  • host.image.name
  • host.image.version
  • host.name
  • host.type
  • http.client_ip
  • http.flavor
  • http.host
  • http.method
  • http.route
  • http.scheme
  • http.server_name
  • http.status_code
  • http.status_text
  • http.target
  • http.url
  • k8s.cluster.name
  • k8s.container.name
  • k8s.cronjob.name
  • k8s.cronjob.uid
  • k8s.daemonset.name
  • k8s.daemonset.uid
  • k8s.deployment.name
  • k8s.deployment.uid
  • k8s.job.name
  • k8s.job.uid
  • k8s.namespace.name
  • k8s.pod.name
  • k8s.pod.uid
  • k8s.replicaset.name
  • k8s.replicaset.uid
  • k8s.statefulset.name
  • k8s.statefulset.uid
  • log.source
  • net.host.ip
  • net.host.name
  • net.host.port
  • net.peer.ip
  • net.peer.name
  • net.peer.port
  • net.transport
  • process.technology
  • service.instance.id
  • service.name
  • service.namespace
  • service.version
  • snmp.trap_oid
  • span_id
  • trace_id
  • winlog.eventid
  • winlog.level
  • winlog.opcode
  • winlog.provider
  • winlog.task

Объект не предоставляет никаких параметров.

JSON-модель тела запроса

Это модель тела запроса, показывающая возможные элементы. Его необходимо настроить для использования в реальном запросе.

[
  {
    "content": "Exception: Custom error log sent via Generic Log Ingest",
    "log.source": "/var/log/syslog",
    "timestamp": "2022-01-17T22:12:31.0000",
    "severity": "error",
    "custom.attribute": "attribute value"
  },
  {
    "content": "Exception: Custom error log sent via Generic Log Ingest",
    "log.source": "/var/log/syslog",
    "timestamp": "2022-01-17T22:12:35.0000"
  },
  {
    "content": "Exception: Custom error log sent via Generic Log Ingest",
    "log.source": "/var/log/syslog"
  },
  {
    "content": "Exception: Custom error log sent via Generic Log Ingest"
  }
]

Ответ

Коды ответов

Код Тип Описание
200 SuccessEnvelope Только часть входных событий была принята из-за ограничений размера события или проблем с анализом JSON.
204 Успех. Ответ не имеет тела.
400 ErrorEnvelope Не удалось. Ввод недействителен.
402 ErrorEnvelope Не удалось. Вы не можете добавить больше логов в хранилище, так как закончились единицы данных Дейвиса (DDU). Приобретите дополнительные DDU.
404 ErrorEnvelope Не удалось. Запрошенный ресурс не существует. Это может произойти, если АктивныйШлюз недоступен с включенным модулем Log Analytics Collector.
413 ErrorEnvelope Не удалось. Размер полезной нагрузки запроса слишком велик. Это может произойти, когда размер полезной нагрузки в байтах превышает ограничение или когда принятые полезные данные представляют собой массив JSON, размер которого превышает ограничение.
429 ErrorEnvelope Не удалось. Слишком много запросов. Это происходит, когда прием логов отключен.
501 ErrorEnvelope Не удалось. Сервер либо не распознает метод запроса, либо не может выполнить запрос. Может произойти, если не включено индексированное хранилище логов.

Объекты тела ответа

Объект SuccessEnvelope

Элемент Тип Описание
details Success -

Объект Success

Элемент Тип Описание
code integer Код состояния HTTP
message string Подробное сообщение

JSON-модель тела ответа

{
  "details": {
    "code": 1,
    "message": "string"
  }
}